当我使用多个嵌套结构/类(有点像使用多维堆数组)时是否有任何性能损失,或者它只是语言的一个组织特性,可以更容易地跟踪数据而编译器不会真的看到什么区别了吗?
谢谢
最佳答案
不是真的。类/结构只是将偏移量定义到内存中,因此如果类中类中有类,编译器只会将偏移量相加。
一旦您拥有指针(每个指针取消引用都是一次内存读取和潜在的 L2 缓存未命中)或虚函数(非常糟糕,尤其是在较旧的 CPU 上),性能就会发挥作用。
编辑:不过我应该注意一件事 - 如果您正在开发一个性能不是绝对重要的应用程序,请关注良好的类设计而不是性能。当您编写需要以 60fps 运行的内容时,二级缓存未命中之类的事情会产生很大的不同,但它与普通桌面应用程序的关系不大。
关于c++ - 使用嵌套结构时是否有任何性能损失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3731623/