现在的位置: 首页 > 综合 > 正文

性能分析

2012年09月05日 ⁄ 综合 ⁄ 共 808字 ⁄ 字号 评论关闭

一、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) 

抱歉!评论已关闭.