c++ - 使用嵌套结构时是否有任何性能损失?

标签 c++ performance data-structures

当我使用多个嵌套结构/类(有点像使用多维堆数组)时是否有任何性能损失,或者它只是语言的一个组织特性,可以更容易地跟踪数据而编译器不会真的看到什么区别了吗?

谢谢

最佳答案

不是真的。类/结构只是将偏移量定义到内存中,因此如果类中类中有类,编译器只会将偏移量相加。

一旦您拥有指针(每个指针取消引用都是一次内存读取和潜在的 L2 缓存未命中)或虚函数(非常糟糕,尤其是在较旧的 CPU 上),性能就会发挥作用。

编辑:不过我应该注意一件事 - 如果您正在开发一个性能不是绝对重要的应用程序,请关注良好的类设计而不是性能。当您编写需要以 60fps 运行的内容时,二级缓存未命中之类的事情会产生很大的不同,但它与普通桌面应用程序的关系不大。

关于c++ - 使用嵌套结构时是否有任何性能损失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3731623/

相关文章:

sql-server - 单列或多列主键的 SQL Server 性能差异?

c++ - 使用 c 的鼠标位置

c++ - 解码日期格式?

java - 代码长度对性能有影响吗?

python - 超时等待状态更改(变量更改)的有效方法?

c - 哪些教程有助于理解硬件与 C 的交互

data-structures - 为什么用二进制搜索树实现哈希表?

algorithm - 将黑盒数组排序算法更改为稳定算法

c++ - 关于C++中智能指针的问题

c++ - C/C++ : maximum size of errno-associated strings (at compile-time)