如果我从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. Actionscript 2.0,测量一个函数的执行时间?
- 2. 如何在Python中自动测量函数的执行时间
- 3. 如何测量Clojure函数执行的CPU时间?
- 4. 如何测量(linux C)函数执行多长时间?
- 5. 有没有办法从一个属性测量C#函数执行时间?
- 6. 如何测量一个线程的执行时间?
- 7. 如何测量shell脚本的每个“子进程”的执行时间
- 8. 如何测量构建执行时间?
- 9. 在erlang-shell中直接测试一个自定义函数
- 10. 如何测量每一行的执行时间在C#
- 11. x时间后执行一个函数
- 12. 测量时间执行
- 13. C++测量执行时间
- 14. 测量执行时间
- 15. 测量Java执行时间
- 16. 测量执行时间短
- 17. 如何从另一个函数执行一个函数?
- 18. 如何在执行的各个阶段执行perl CGI性能测量,基准测量和时间测量?
- 19. 测量Maple函数的执行时间和CPU使用率
- 20. 测量Linux内核中函数的执行时间
- 21. 如何测量openmp中每个线程的执行时间?
- 22. 测量执行时间 - 在程序代码或shell中?
- 23. 从另一个函数返回的函数执行间谍
- 24. 如何使用vApplicationTickHook()函数来测量freeRTOS中的任务执行时间?
- 25. 如何测量'用户'在Linux和Windows中的函数执行时间
- 26. 如何以一定的时间间隔重新执行一个函数?
- 27. shell脚本查找所有测量时间的函数
- 28. 回声shell脚本的执行时间
- 29. 如何测量函数运行的时间?
- 30. 如何测量函数在Matlab中运行的时间?
你让我担心! 你必须除以10^6才能得到正确的结果。 – t0il3ts0ap 2017-02-08 13:31:05