我希望对大型C ++应用程序进行概要分析,并确定最多提取哪些数据(或内存区域)。基本上,我希望能够执行类似处理器的MFU缓存算法,以确定在L2 / L3缓存中存储什么。对于任何试图实现这一目标的人来说,网上的信息很少甚至没有。
编辑:将MRU更改为MFU
编辑2:为了澄清,我需要地址或地址所指向的数据结构。
答案 0 :(得分:2)
您可以使用Pin tool记录所有内存访问并计算缓存命中/未命中。
答案 1 :(得分:1)
valgrind可以做到这一点 - 它需要一个插件,不知道是否已有插件。
编辑:它被称为cachegrind