高效的缓存和BLOB - 分析缓存命中/未命中

Tia*_*sta 5 c++ caching blob

为了使程序具有高效缓存,所使用的数据应该线性存储吗?

因此,我使用线性分配器将数据放入blob中,而不是动态分配.这是否应该提高性能?我该怎么做才能进一步提高缓存效率?

我知道这些问题不具体,但我不知道如何解释......

哪些程序可以帮助我分析缓存命中/未命中?

Nec*_*lis 5

如果您正在寻找适用于Windows的分析器,您可以尝试AMD的CodeAnalystVerySleepy,这些都是免费的,但AMD是两者中更强大的(并且适用于英特尔硬件,但是你不能使用基于硬件的分析)东西),它包括监测分支预测未命中和缓存利用率等事情.分析很棒,因为它告诉你要优化什么,但你并不总是知道如何,你应该看看Agner Fog的优化手册结合英特尔的优化手册(其中包含很多关于局部性和可扩展性的优化)