我正在分析一些代码,并使用cachegrind来获取执行中缓存未命中(L2和L3)的数量。
我的问题是,如何根据缓存未命中确定等待缓存准备所花费的时间?
我想能够说出类似于“我的代码获得了90%的CPU利用率”的话。
是否可能根据cachegrind输出来实现这一点?
我正在分析一些代码,并使用cachegrind来获取执行中缓存未命中(L2和L3)的数量。
我的问题是,如何根据缓存未命中确定等待缓存准备所花费的时间?
我想能够说出类似于“我的代码获得了90%的CPU利用率”的话。
是否可能根据cachegrind输出来实现这一点?
如果变量在缓存中,可以在几个时钟周期内获取。
如果不在缓存中,则需要超过一百个时钟周期才能从RAM中获取。
cachegrind
(或者是我们用来可视化数据的kcachegrind
的一个功能?)。 - AProgrammervalgrind --tool=cachegrind
的输出。 - Martin Kristiansen