Ruby Benchmark 模块提供了测量和报告Ruby代码运行使用时间的方法。

 

Ruby Benchmark


 

ruby 默认带的 Benchmark模块提供了测量和报告Ruby代码运行使用时间的方法。


1、用给定的表达式"a"*1_000_000构造字符串来测量时间:

 

 

 

 

在我们的机器上 (FreeBSD 3.2 on P5, 100MHz) 生成的结果:

1.166667 0.050000 1.216667 ( 0.571355)

 

这个报告显示我们的CPU时间,系统CPU时间,用户和系统CPU时间总数,和流逝的真正时间。时间单元是秒。


2、使用bm方法进行同样的实验:

 

结果是:

user system total real

 

1.033333 0.016667 1.016667 ( 0.492106)

 

1.483333 0.000000 1.483333 ( 0.694605)

 

1.516667 0.000000 1.516667 ( 0.711077)

 

 

3、继续前面的例子,在每行报告前放个标签:

 

结果是:

user system total real

 

for: 1.050000 0.000000 1.050000 ( 0.503462)

 

times: 1.533333 0.016667 1.550000 ( 0.735473)

 

upto: 1.500000 0.016667 1.516667 ( 0.711239)

 

 

4、一些时间的花费依赖于它执行的次数。这些差别是由内存分配和垃圾回收的花费产生的。要避              免这些差异,提供了bmbm方法。例如,排序一个浮点数组的比较方式:

 

结果是:

Rehearsal -----------------------------------------

 

sort! 11.928000 0.010000 11.938000 ( 12.756000)

 

sort 13.048000 0.020000 13.068000 ( 13.857000)

 

------------------------------- total: 25.006000sec

 

 

 

 

user system total real

 

sort! 12.959000 0.010000 12.969000 ( 13.793000)

 

sort 12.007000 0.000000 12.007000 ( 12.791000)

 

 

5、用唯一标签的连续试验的统计报告,使用benchmark方法:

 

结果是:

user system total real

 

for: 1.016667 0.016667 1.033333 ( 0.485749)

 

times: 1.450000 0.016667 1.466667 ( 0.681367)

 

upto: 1.533333 0.000000 1.533333 ( 0.722166)

 

>total: 4.000000 0.033333 4.033333 ( 1.889282)

 

>avg: 1.333333 0.011111 1.344444 ( 0.629761)

 

 

 

 

 

Ruby 內提供 Benchmark 讓你可以測量程式執行花費時間
  1. Benchmark.realtime
    
    require 'benchmark'
    
    COUNT = 500_000
    puts "Benchmark.realtime" 
    puts Benchmark.realtime {
      1.upto(COUNT) do 
        a = "1"; 
      end
    }
    
  2. Benchmark.measure
    
    require 'benchmark'
    
    COUNT = 500_000
    puts Benchmark.measure {
      1.upto(COUNT) do 
        a = "1"; 
      end
    } 


原文: http://my4java.itpub.net/post/9983/66956

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值