9

これが可能かどうかについての情報は見つかりませんでしたが、のコマンドでメソッドを呼び出し、rails console任意の測定値を使用してパフォーマンスを判断できると便利ですが、ほとんどの場合、時間内に考えていました。

たとえば、私はこれらのどれが速いかを理解しようとしています:

[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
4

2 に答える 2

22

がある!そして、あなたは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} }

出力されるレポートは(秒単位で)表示されます:

  • ユーザーのCPU時間。
  • システムCPU時間。
  • ユーザーとシステムのCPU時間の合計。
  • 経過したリアルタイム。

このように見えるもの:

0.350000   0.010000   0.360000 (  0.436450)
于 2012-11-14T00:31:36.400 に答える
1

この宝石: https ://github.com/igorkasyanchuk/benchmark_methods

このようなコードはもうありません:

t = Time.now
user.calculate_report
puts Time.now - t

今、あなたはすることができます:

benchmark :calculate_report # in class

そして、あなたのメソッドを呼び出すだけです

user.calculate_report
于 2015-10-13T08:55:42.013 に答える