转载:http://cryolite.iteye.com/blog/242933
一、eprof的使用
A. eprof可以植入到程序代码中
过程记下:
1. 启动eprof服务器
- eprof:start()
2. 开始profiling
- eprof:profile([self()])
或者
- eprof:start_profiling([self()])
3.停止profing
- eprof:stop_profiling()
4.现在就可以查看并分析结果了(不要停止eporf)
- eprof:analyse()
B、通过eprof:profile启动待测试程序
- 1. eprof:start()
- 2. eprof:profile([self()], Mod, Fun, Args) %启动待测试程序
- 3. eprof:stop_profiling()
- 4. eprof:analyse()
二、timer工具
timer模块中有tc函数用来测试某函数的执行时间,调用
timer:tc(Mod, Fun, Args)
即可测试Mod:Fun函数的执行时间,注意结果单位是微秒(μs,microsecond),而不是毫秒(ms,millisecond)
1s=1000ms,1 ms=1000μs
不过很好奇这个微秒是怎么得出来的,计算机有这么高的精度吗,存疑。
三、erlang:statistics函数
statistics函数可用来统计某段代码的执行时间
- statistics(wall_clock),
- ...........待统计的代码
- {_, Time} = statistics(wall_clock),
Time即为这端代码的运行时间
单位是毫秒(ms, millisecond)