2015-09-16 43 views
0

我想分析一個C++應用程序。我試過gprof,HPCToolkit和ScoreP。我的問題是,對於不同的運行,我獲得不同的運行時間,從一次執行到另一次執行(例如2.5和2.7秒)有大約10%的差異。爲什麼?我記得當我在Cray系統上使用CrayPat時,不同處決之間完全沒有區別。 感謝爲什麼我在Profiler中運行C++的時間不準確?

PS:我在Debian 8

+0

那些分析器給你* CPU *時間而不是*運行*時間?此外,大多數普通家庭計算機上的分析器通過*採樣*工作,並且任何採樣方法都不準確,取決於採樣率。 –

+0

,你知道我怎麼能提高精度? – rosilho

+0

@rosilho:如果您不希望牆鍾運行時間的精確重複性更好,因爲除了最簡單的計算機以外,其他所有計算機一次只能執行一個以上的操作。如果你這樣做的原因是爲了找到加速,有一個[*更好的方法*](http://stackoverflow.com/a/378024/23771)。 –

回答

0

安德烈Alexandrescu的在一次講話中說,這些天,與現代的處理器,你不能指望在基準重複性提及。我認爲有兩件事可以讓事情變得更可預測。首先,在足夠長的時間內運行你的基準測試(我會建議類似或接近一分鐘的內容)。還有一件事:確保電源管理關閉(如果你在操作系統和使用它的機器上)。

相關問題