有没有办法在Ruby on Rails中检查控制台中命令的性能?

per*_*nce 8 ruby benchmarking ruby-on-rails

我找不到任何关于这是否可行的信息,但是我可以在命令中调用方法rails console并使用任何测量来确定性能,但我大部分时间都在思考.

例如,我正在试图弄清楚哪些更快:

[val2,val3,val4,val5,val6].find{|x| x != val1}
[val2,val3,val4,val5,val6].all?{|x| x == val1} 
Run Code Online (Sandbox Code Playgroud)

有这样的事吗?

[val2,val3,val4,val5,val6].find{|x| x != val1}.performance
Run Code Online (Sandbox Code Playgroud)

pje*_*pje 19

有!你甚至不需要Rails.从标准库中查看基准测试.

作为样本:

require 'benchmark'

puts Benchmark.measure { [val2,val3,val4,val5,val6].find{|x| x != val1} }
puts Benchmark.measure { [val2,val3,val4,val5,val6].all?{|x| x == val1} }
Run Code Online (Sandbox Code Playgroud)

输出的报告将显示(以秒为单位):

  • 用户CPU时间.
  • 系统CPU时间.
  • 用户和系统CPU时间的总和.
  • 已过去的实时时间.

看起来像这样的东西:

0.350000   0.010000   0.360000 (  0.436450)
Run Code Online (Sandbox Code Playgroud)