![](/img/trans.png)
[英]Does initializing arrays have a significant effect on C++ performance?
[英]Is there a significant performance gap bewteen native VulkanSDK and its C++ binding?
最近我在尝试学习vulkan,我发现虽然我找到的几乎所有教程或书籍都用C++教授vulkan,但它的API风格比C++更多C。自然,我找了它的官方C++ 818130我的问题:
原生 VulkanSDK 与其 C++ 绑定之间是否存在明显的性能差距? 或者更一般地说,C 库与其 C++ 绑定之间是否存在显着的性能差距?
通常,它与性能无关,而与设计范例有关。 CPP API 显然是一个 OOP 包装器,它可能会迫使您遵循一些您不想要的不良模式。 但是如果库架构本质上具有面向 object 的设计,它可能是非常无缝的包装器。
C
和C++
编译器和链接器在这一阶段都得到了很好的优化。
一般来说 - 代码的性能是整个编程过程的结果 - 从最初的设计到编写代码的程序员,再到 CI 中部署的最后一步。 所以一般来说 - C 绑定比 C++ 快吗? 不。
关于 Vulkan - 这是一个低级库,绑定本身没有太大区别。
使用非常重要,因为Vulkan
被认为比OpenGL
更“低级”——这导致对缓冲区和整体程序流的更多控制。
Memory,IO,CPU,Graphics RAM都由开发人员控制,这是性能的主要关注点。
C
header 文件和C++ STD
在实现上可能有所不同,这是选择语言时要考虑的最大点 -生态系统为程序员提供了什么? .
因为您可能需要一些vector
和matrix
结构以及用于游戏开发的良好math
库。
这可能会影响您的选择。
没有什么是一成不变的。
如果您关心性能,那么您需要做的第一件事就是测量它。
这是一个很好的练习,你可以做 - C 绑定比 C++ 快吗?
只需在您的应用程序中使用基准测试并自行测试!
祝你好运。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.