Rubyでちょっとしたコードを書いた時、ふと、
「実行時間はどのぐらいかかっているんだろうか?」
と思うことがあります。
この疑問への解は、既に先人の方々がまとめているため、リンクを紹介しておきます。
今回やったこと
「Time.now
でやると、コードは簡潔に書けるが、ms単位でしか測れないため、短時間で実行が終わるコードには使えない。」
「benchmark
を使うと、詳細な実行時間を取れるが、実行時間を表示するコードを書くのに数ステップ書かないといけない。」
というわけで、「1ステップで書けて」「詳細な実行時間が取得できる」ように、benchmark
の利用部をラップしたコードを書いてみました。
コード
使い方
使い方は簡単。
require
していただいた上で、
measure do { __計測したい処理__ }
を書くだけです。
ブロックで渡した処理が、そのままライブラリ側の yield
で実行されます。
ライブラリ側では Benchmark.measure do
にブロックで渡した yield
が実行されます。
(言い方を変えれば、計測区間の中に、計測したい処理を挟み込めるようにしています。)
その後、結果を出力する処理まで含めていることで、「簡潔に」「詳細な結果」を出力できるようにしています。
やっていることは単純ですが、サンドボックス的なプロジェクトに置いておくと、
簡単に実行時間計測を書くことができて便利です。