如果我從erlang shell運行該函數,是否有簡單的方法來測量函數的執行時間?如何測量一個函數從erlang shell執行的時間?
10
A
回答
16
請參閱trapexit.org上的文章Measuring Function Execution Time。
全部基於timer:tc/3進行測量。
3
如果要衡量一個匿名函數:
1> TC = fun(F) -> B = now(), V = F(), A = now(), {timer:now_diff(A,B), V} end.
2> F = fun() -> lists:seq(1,1000) end.
3> TC(F).
{47000,
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,
23,24,25,26,27|...]}
n的平均值運行:
4> TCN2 = fun(T,F,0) -> ok; (T,F,N) -> F(), T(T,F,N-1) end.
5> TCN = fun(F,N) -> B=now(), TCN2(TCN2,F,N), A=now(), timer:now_diff(A,B)/N end.
6> TCN(F, 1000).
63.0
0
我學習Erlang
,這是鍛鍊一人一書,在這裏它是如何我嘗試過
lib_misc.erl
time_taken_to_execute(F) -> Start = os:timestamp(),
F(),
io:format("total time taken ~f seconds~n", [timer:now_diff(os:timestamp(), Start)/1000]).
和command-line
,我做
1> lib_misc:time_taken_to_execute(fun() -> 1 end).
total time taken 0.003000 seconds
ok
2> lib_misc:time_taken_to_execute(fun() -> [Num || Num <- lists:seq(1, 100)] end).
total time taken 0.085000 seconds
ok
3> lib_misc:time_taken_to_execute(fun() -> [Num || Num <- lists:seq(1, 10000000)] end).
total time taken 9354.205000 seconds
ok
4>
是的東西,你正在尋找?
相關問題
- 1. 如何在Python中自動測量函數的執行時間
- 2. 如何測量Clojure函數執行的CPU時間?
- 3. 如何測量(linux C)函數執行多長時間?
- 4. 如何測量一個線程的執行時間?
- 5. 如何測量每一行的執行時間在C#
- 6. 測量執行時間短
- 7. 如何從另一個函數執行一個函數?
- 8. 測量Maple函數的執行時間和CPU使用率
- 9. 測量Linux內核中函數的執行時間
- 10. 如何在執行的各個階段執行perl CGI性能測量,基準測量和時間測量?
- 11. 測量執行時間 - 在程序代碼或shell中?
- 12. 如何測量openmp中每個線程的執行時間?
- 13. 如何測量'用戶'在Linux和Windows中的函數執行時間
- 14. 如何以一定的時間間隔重新執行一個函數?
- 15. shell腳本查找所有測量時間的函數
- 16. 如何測量函數運行的時間?
- 17. 如何測量函數在Matlab中運行的時間?
- 18. Erlang:我如何從身體內引用一個匿名函數?
- 19. 程序執行的C++測量時間
- 20. 測量多線程的執行時間
- 21. Arduino函數執行時間
- 22. 從一個變量對象中執行一個函數
- 23. 如何禁用jquery函數執行一定的時間
- 24. 如何測量由Java中的進程執行的代碼的執行時間?
- 25. 如何用變量調用Erlang函數?
- 26. 測量程序執行時間
- 27. 使用C#測量執行時間
- 28. CakePHP 2.1測量頁面執行時間
- 29. 測量代碼執行時間
- 30. R中測量功能執行時間
你讓我擔心! 你必須除以10^6才能得到正確的結果。 – t0il3ts0ap 2017-02-08 13:31:05