我需要對fortran程序的一部分進行基準測試,以瞭解和量化特定更改的影響(爲了使代碼更易維護,我們希望使代碼更加面向對象,充分利用函數指針例)。基準測試fortran循環
我有一個循環調用幾次相同的子程序來執行有限元素的計算。我想看看使用函數指針而不是硬編碼函數的影響。
do i=1,n_of_finite_elements
! Need to benchmark execution time of this code
end do
什麼是一個簡單的方法來獲得這種循環的執行時間,並以一種很好的方式格式化?
你在尋找的東西,型材的需要作爲一個整體多久的代碼,或只是粗略時間?你使用的是什麼操作系統和編譯器?查看['CPU_TIME'](https://gcc.gnu.org/onlinedocs/gfortran/CPU_005fTIME.html)的簡單方法來手動檢查。另外[這個問題](http://scicomp.stackexchange.com/questions/6812/fortran-best-way-to-time-sections-of-your-code)可能會有用。 – Gabe
@加貝請不要使用'CPU_TIME'。它並不適合時間測量,特別是在[並行編程](https://stackoverflow.com/questions/25465101/fortran-parallel-programming)中。相反,使用'SYSTEM_CLOCK'。 –
作爲一個整體的時機,但基準是(我希望)不僅僅是注意系統時間。例如,[ruby基準](http://ruby-doc.org/stdlib-1.9.3/libdoc/benchmark/rdoc/Benchmark.html)提供了一些有趣的指標,如用戶,系統和總時間,在非常很好的顯示,甚至解釋了基準測試時需要採取的預防措施。 –