对于超快速代码,我们必须保持引用的位置 - 在CPU缓存中保留尽可能多的密切使用的数据:
http://en.wikipedia.org/wiki/Locality_of_reference
有哪些技术可以实现这一目标?人们能举例吗?
我对Java和C/C++示例感兴趣.有趣的是知道人们用来阻止大量缓存交换的方式.
问候
假设我有一大堆相对较小的对象,我需要经常迭代.
我想通过提高缓存性能来优化我的迭代,所以我想在内存上连续分配对象 [而不是引用],这样我就可以减少缓存未命中数,并且整体性能可能会更好.
在C++中,我可以只分配一个对象数组,它会按照我的意愿分配它们,但在java中 - 在分配数组时,我只分配引用,并且一次只分配一个对象.
我知道如果我"一次"分配对象[一个接一个],jvm 最有可能将对象分配为尽可能连续,但如果内存是碎片的话可能还不够.
我的问题: