性能分析

来源:互联网 发布:nginx 禁止目录浏览 编辑:程序博客网 时间:2024/05/02 00:57

一、eprof的使用 

http://www.erlang.org/doc/man/eprof.html

A. eprof可以植入到程序代码中 
过程记下: 
1. 启动eprof服务器 
Java代码  收藏代码
  1. eprof:start()  


2. 开始profiling 
Java代码  收藏代码
  1. eprof:profile([self()])  

或者 
Java代码  收藏代码
  1. eprof:start_profiling([self()])  


3.停止profing 
Java代码  收藏代码
  1. eprof:stop_profiling()  


4.现在就可以查看并分析结果了(不要停止eporf) 
Java代码  收藏代码
  1. eporf:analyse()  


B、通过eprof:profile启动待测试程序 
Java代码  收藏代码
  1. 1. eprof:start()  
  2. 2. eprof:profile([self()], Mod, Fun, Args) %启动待测试程序  
  3. 3. eprof:stop_profiling()  
  4. 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函数可用来统计某段代码的执行时间 
Java代码  收藏代码
  1. statistics(wall_clock),  
  2. ...........待统计的代码  
  3. {_, Time} = statistics(wall_clock),  

Time即为这端代码的运行时间 
单位是毫秒(ms, millisecond)