許多科學計算語言在絕對時間(掛鐘)和CPU時間(處理器週期)之間進行了區分。例如,在Matlab我們:在Julia中測量已用CPU時間
>> tic; pause(1); toc
Elapsed time is 1.009068 seconds.
>> start = cputime; pause(1); elapsed = cputime - start
elapsed =
0
,並在數學,我們有:計算服務器上的基準測試代碼運行時
>>In[1]:= AbsoluteTiming[Pause[1]]
>>Out[1]= {1.0010572, Null}
>>In[2]:= Timing[Pause[1]]
>>Out[2]= {0., Null}
這種區分是非常有用的,那裏可能是在絕對定時高方差結果取決於其他進程正在同時運行。
的朱莉婭標準庫通過tic()
,toc()
,@time
和其他一些功能,提供了表達的時序支持/宏都基於time_ns()
,測量絕對時間的函數。
>>julia> @time sleep(1)
elapsed time: 1.017056895 seconds (135788 bytes allocated)
我的問題:是否有一種簡單的方法來獲取在Julia中進行表達式評估所用的CPU時間?
(附註:在做一些挖掘,似乎朱莉婭定時基於從libuv的uv_hrtime()
功能,在我看來,使用uv_getrusage
來自相同的庫可能給的方式來訪問朱莉婭經過的CPU時間,但我不是專家,有沒有人嘗試過使用這樣的東西?)
這是一個偉大的建議。請提交問題或通過電子郵件發送郵件列表(或發送拉請求,如果你有一些工作!) –