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

Ruby on rails 有没有办法在RubyonRails中检查控制台中命令的性能?,ruby-on-rails,ruby,benchmarking,Ruby On Rails,Ruby,Benchmarking,我找不到关于这是否可行的任何信息,但如果我能在rails控制台中调用一个命令的方法,并使用任何度量来确定性能,这将非常有用,但我主要考虑的是时间 例如,我试图找出其中哪一个更快: [val2,val3,val4,val5,val6].find{|x| x != val1} [val2,val3,val4,val5,val6].all?{|x| x == val1} 有这样的东西吗 [val2,val3,val4,val5,val6].find{|x| x != val1}.performan

我找不到关于这是否可行的任何信息,但如果我能在
rails控制台中调用一个命令的方法,并使用任何度量来确定性能,这将非常有用,但我主要考虑的是时间

例如,我试图找出其中哪一个更快:

[val2,val3,val4,val5,val6].find{|x| x != val1}
[val2,val3,val4,val5,val6].all?{|x| x == val1} 
有这样的东西吗

[val2,val3,val4,val5,val6].find{|x| x != val1}.performance

有!你甚至不需要栏杆。从标准库中查看

作为示例:

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} }
输出的报告将显示(以秒为单位):

  • 用户CPU时间
  • 系统CPU时间
  • 用户和系统CPU时间的总和
  • 经过的时间是实时的
看起来像这样的东西:

0.350000   0.010000   0.360000 (  0.436450)
此宝石:

不再有这样的代码:

t = Time.now
user.calculate_report
puts Time.now - t
现在您可以执行以下操作:

benchmark :calculate_report # in class
然后调用你的方法

user.calculate_report

是否可以在控制台中运行此操作?我想在项目代码本身中不一定运行特殊类型的东西。@持久性:是的,您可以从控制台直接运行该示例代码。