Benchmark计算ruby代码执行时间

发表于:2012-11-06 10:24

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:罗辰    来源:TaoBao QA Team

  自动化脚本的执行时间是衡量脚本效率的一个重要手段,脚本的执行速度不能太慢,否则在脚本多的情况下就会严重影响执行的总体时间。那么,在写脚本过程中,当有多种方法都可以达到同样效果时,需要选择执行时间比较短的方法。

  那么如何来计算脚本代码执行的时间呢?在ruby中,自带的 Benchmark模块提供了测量和报告Ruby代码运行使用时间的方法。测试脚本如下:

require 'benchmark'   
Benchmark.bmbm(10) do |t| 
  t.report{ruby代码1} 
  t.report{ruby代码2} 
  t.report{ruby代码3} 
end

  bmbm是Benchmark的测试方法,这是双重测试,用来提高精确度。里面的参数10用来调节标签在结果里的显示占位宽度,不对结果产生影响。t是传递给bmbm的block,是个report对象。

  测试结果为

Rehearsal --------------------------------------------- 
            1.781000   0.016000   1.797000 (  1.953000) 
            2.297000   0.062000   2.359000 (  2.359000) 
            1.688000   0.016000   1.704000 (  1.719000) 
------------------------------------ total: 5.860000sec   
                user     system      total        real 
            1.750000   0.000000   1.750000 (  1.875000) 
            2.172000   0.015000   2.187000 (  2.297000) 
            1.469000   0.016000   1.485000 (  1.703000)

  因为使用了bmbm方式,所以会有两个结果。第一个是演习结果,第二个是真实结果。其中括号中是实际流逝的时间,一般就是我们需要比较的时间,单位是秒。

  知道ruby代码执行的时间可以选择效率更高的方法,还可以精确计算一行代码执行需要多少时间。在实际的脚本中,可以在脚本中间增加Benchmark方法,一般是在脚本调试阶段,在具体的脚本执行中应该注释掉,如下面就是测试通过ruby代码生成xml的时间(注释部分)

  通过计算相关代码执行的时间,可以查到脚本执行效率的瓶颈,从而找到解决的办法。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号