0
當我用兩個不同的部件運行一個程序時,我試圖獲取頁面錯誤。如何使用getrusage閱讀C中的頁面錯誤?
我所做的是使用兩種矩陣乘法方法的一些操作,並試圖找出導致更多頁面錯誤的操作。
/Operations for method 1
getrusage (RUSAGE_SELF, &usage);
fault1=usage.ru_minflt;
/operations for Method 2
getrusage (RUSAGE_SELF, &usage);
fault2=usage.ru_minflt-fault1;
但似乎fault2 = 0,我不認爲是正確的。如果我使用兩個不同的變量usage和usage2,似乎也不工作。 是否有任何命令開始計算每個乘法方法的故障? 我的代碼有問題嗎?
感謝您的答案
感謝您的評論,我該如何檢查緩存故障呢? – Peter 2009-12-15 22:31:49
在'cachegrind'下運行它(緩存命中和未命中發生在硬件深處,低於操作系統級別,因此操作系統不會跟蹤它們)。 – caf 2009-12-15 23:14:08