如果有人说 1000 行计算机代码,而不是独立声明变量,而是将它们组合在一起(显然这确实取决于所使用的变量大小)到类和结构中,这会直接增加缓存空间局部性吗(从而降低缓存未命中率)?
我的印象是通过在类/结构中关联变量,它们会被分配连续的内存地址?
最佳答案
如果您谈论的是方法局部变量,它们在堆栈上已经是连续的,或者严格地说在激活记录中,它们几乎总是在堆栈上。如果您谈论的是对 Java 对象的引用,或指向动态分配的 C++ 对象的指针,将它们放入包含类中不会有任何区别,原因是:相关对象仍将位于堆中的任意位置。
关于java - 使用结构/类来增加缓存空间局部性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10368906/