Ruby Tips!

RubyのTipsを紹介します

スクリプトの処理時間を計測する

Process.timesでプロセス開始時から使用したCPU時間が取得できる。
Process.timesが返すStruct::Tmsオブジェクトの内容は以下の通り。

属性 意味
utime ユーザーCPU時間
stime システムCPU時間
cutime 終了した子プロセスのユーザCPU時間の合計
cstime 終了した子プロセスのシステムCPU時間の合計

以下のように計測対象の処理の前後でProcess.timesを取得し差分を取ることで計測対象の処理にどれだけのCPU時間を消費したのかを計測できる。

start = Process.times
10000000.times{} # 計測対象の処理
stop = Process.times
puts 'utime:' + (stop.utime - start.utime).to_s #=> utime:1.55
puts 'stime:' + (stop.stime - start.stime).to_s #=> stime:0.0