2014-01-09 76 views
1

我想知道是否有可能在c使用Linux x86強制高速緩存刷新。我已經閱讀了幾個答案,回答瞭如何在shell或asm/cache.h中執行此操作(要求我編寫一個linux模塊...)基準C代碼 - 刷新緩存

我正在使用PAPI庫,它使我可以非常接近確定的代碼塊需要執行的時鐘週期的確切數量。然而,因爲我想要一些非常短的函數,所以我需要多次運行這些函數才能獲得準確的統計信息(計時函數調用花費的時間比塊內需要執行的代碼長)。通過多次運行代碼,高速緩存正在加快同一塊代碼的連續調用的執行速度,我想阻止它!

+0

你爲什麼要測量這樣短的功能?也許我會幫助揭露「更大的圖景」 – RSFalcon7

回答

0

我不知道任何標準的方式來做到這一點,而不是加載其他東西到緩存。我通常的解決方法是簡單地處理一些足夠「冷卻」緩存的東西,比如矩陣乘法。