Rubyベンチマークモジュール:“ user”、“ system”、“ real&#8221 ;?
-
06-07-2019 - |
質問
Rubyのベンチマークモジュールで実験中...
>> Benchmark.bm(7) { |b| b.report('Report:') { s = '' ; 10000.times { s += 'a' } } }
user system total real
Report: 0.150000 0.010000 0.160000 ( 0.156361)
" user"、" system"、" real"の意味は何ですか?
解決
これらは、Unixの time
コマンドまたは他の典型的なベンチマークツールが報告するのと同じ時間です:
- user :ユーザー空間コードの実行に費やされた時間(つまり、コード)、
- システム:カーネルコードの実行に費やした時間と
- real :" real"コードの実行にかかった時間( system + user + I / O、ネットワーク、ディスク、ユーザー入力などの待機時間)。 「ウォールクロック時間」とも呼ばれます。
他のヒント
このgemを確認してください: https://github.com/igorkasyanchuk/benchmark_methods
このようなコードはこれ以上ありません:
t = Time.now
user.calculate_report
puts Time.now - t
今すぐできること:
benchmark :calculate_report # in class
そしてメソッドを呼び出すだけ
user.calculate_report
所属していません StackOverflow