Rubyベンチマークモジュール:“ user”、“ system”、“ real&#8221 ;?

StackOverflow https://stackoverflow.com/questions/1616269

  •  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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top