設arr是維數爲16的數組x 20
這裏是所提到的代碼片段的valgrind輸出。輸出來自cachegrind。Valgrind輸出解釋
for (i = 0; i < 20; i++)
arr[0][i] = 0;
Ir I1mr I2mr Dr D1mr D2mr Dw D1mw D2mw
64 0 0 41 0 0 1 0 0
60 0 0 20 0 0 20 2 2
我已閱讀了valgrind文檔中這些單獨參數的含義。但是,我無法用上述數字來計算。像for循環一樣,我們是否真的有41個緩存數據讀取?或者對於數組arr,我們怎麼能有2個L2寫入未命中呢?
我的配置是L1d = L1I = 32KB,L2 = 2MB,64字節高速緩存行大小和8路組關聯。
您是否特指cachegrind,如果是的話那麼您可能應該指定它。我儘可能使用KCacheGrind來幫助理解cachegrind和callgrind。如果您需要其他分析,那麼顯然您需要編寫自己的腳本/圖表。 http://kcachegrind.sourceforge.net/這顯然不是你的問題,只是一個(希望)有用的評論。 – 2010-10-26 15:17:22