ビルドに要した時間を知りたい奇特な人がいるってさ
OmoiKondara でパッケージのビルドに要した時間を知りたい人はいるでしょうね。なんだか DB を作ろうだとかめんどくさい方向へ話が進んでいたので、完全に無視させてもらいました。まあ、以下は数分で書いたスクリプトですけど、こんなんで充分かと。この程度のハックはさっと書いてもらいたいもんです。いちいち提案するくらいであれば、コード出したほうが説得力が違うんじゃないの。
まあ、エラー処理はしてないし、構造化もしてないんで、アホコード丸出しですけどね。
#!/usr/bin/env ruby pkgname = ARGV[0] IO.popen("egrep ^--real: #{pkgname}/OmoiKondara.log | sort") { |io| real = utime = stime = 0.0 io.each { |l| if /^--real:([0-9\.]+) utime:([0-9\.]+) stime:([0-9\.]+)$/ =~ l real += $1.to_f utime += $2.to_f stime += $3.to_f end } real_sec = sprintf("%.1f", real).to_f real_min = sprintf("%d", real_sec / 60).to_i real_mod = sprintf("%d", real_sec - real_min * 60) utime_sec = sprintf("%.1f", utime).to_f utime_min = sprintf("%d", utime_sec / 60).to_i utime_mod = sprintf("%d", utime_sec - utime_min * 60) stime_sec = sprintf("%.1f", stime).to_f stime_min = sprintf("%d", stime_sec / 60).to_i stime_mod = sprintf("%d", stime_sec - stime_min * 60) puts("real time : #{real_sec}sec.\t(#{real_min}:#{real_mod})") puts("user CPU time : #{utime_sec}sec.\t(#{utime_min}:#{utime_mod})") puts("system CPU time: #{stime_sec}sec.\t(#{stime_min}:#{stime_mod})") } # [2010-09-04 Sat] This program is under Public Domain written by toshiharu.
ちなみに、上のコードを実行すると次のような結果が出ます。
$ pwd /opt/trunk-x86_64/pkgs $ elapsedtime.rb openoffice.org real time : 9404.0sec. (156:44) user CPU time : 16306.7sec. (271:46) system CPU time: 1477.5sec. (24:37)