Fak*_*ken 5 c++ performance data-structures
当我使用多个嵌套结构/类(有点像使用多维堆数组)时是否有任何性能损失,或者它只是语言的一个组织特性,可以更容易地跟踪数据并且编译器实际上没有看到任何区别?
谢谢
并不真地。类/结构只是将偏移量定义到内存中,因此如果您在类内的类中有一个类,编译器只会将偏移量相加。
一旦您有了指针(每个指针取消引用都是一次内存读取和潜在的 L2 缓存未命中)或虚拟功能(非常糟糕,尤其是在较旧的 CPU 上),性能就会发挥作用。
编辑:我应该注意的一件事 - 如果您正在开发一个性能不是绝对至关重要的应用程序,请专注于良好的类设计而不是性能。当您编写需要以 60fps 运行的内容时,L2 缓存未命中之类的事情会产生很大的不同,但它在普通桌面应用程序中几乎没有相关性。