ベンチマーク結果の出力
この反復と再帰によるフィボナッチ数列プログラムは、どちらもフォーマットされたテーブルと連想配列という2つの形式で結果を出力します。
テーブル形式の結果には、各マーカーの名前と、そのマーカーに到達するまでの経過時間(Time Index)、前のマーカーからそのマーカーに達するまでに要した時間(Ex Time)、さらには総時間に対するEx Timeの割合(%)が表示されます。
反復の場合の結果は次のとおりです。
| Time Index | Ex Time | Percentage | |
| Start | 1209633208.32539500 | - | 0.00% |
| fibonacci0 | 1209633208.32546500 | 0.000070 | 22.88% |
| fibonacci1 | 1209633208.32549400 | 0.000029 | 9.48% |
| fibonacci2 | 1209633208.32551600 | 0.000022 | 7.19% |
| fibonacci3 | 1209633208.32553900 | 0.000023 | 7.52% |
| fibonacci4 | 1209633208.32556200 | 0.000023 | 7.52% |
| fibonacci5 | 1209633208.32558600 | 0.000024 | 7.84% |
| fibonacci6 | 1209633208.32560800 | 0.000022 | 7.19% |
| fibonacci7 | 1209633208.32563100 | 0.000023 | 7.52% |
| fibonacci8 | 1209633208.32565600 | 0.000025 | 8.17% |
| fibonacci9 | 1209633208.32567800 | 0.000022 | 7.19% |
| Stop | 1209633208.32570100 | 0.000023 | 7.52% |
| Total | - | 0.000306 | 100.00% |
連想配列には、同じ情報が配列形式で格納されています。
Array
(
[name] => fibonacci0
[time] => 1209633208.32546500
[diff] => 0.000070
[total] => 0.000070
)
Array
(
[name] => fibonacci1
[time] => 1209633208.32549400
[diff] => 0.000029
[total] => 0.000099
)
Array
(
[name] => fibonacci2
[time] => 1209633208.32551600
[diff] => 0.000022
[total] => 0.000121
)
再帰の場合の結果は次のとおりです。
| Time Index | Ex Time | Percentage | |
| Start | 1209633188.10306000 | - | 0.00% |
| fibonacci0 | 1209633188.10322500 | 0.000165 | 7.83% |
| fibonacci1 | 1209633188.10330500 | 0.000080 | 3.80% |
| fibonacci2 | 1209633188.10335800 | 0.000053 | 2.52% |
| fibonacci3 | 1209633188.10343000 | 0.000072 | 3.42% |
| fibonacci4 | 1209633188.10350000 | 0.000070 | 3.32% |
| fibonacci5 | 1209633188.10359200 | 0.000092 | 4.37% |
| fibonacci6 | 1209633188.10371600 | 0.000124 | 5.89% |
| fibonacci7 | 1209633188.10388300 | 0.000167 | 7.93% |
| fibonacci8 | 1209633188.10415100 | 0.000268 | 12.72% |
| fibonacci9 | 1209633188.10455300 | 0.000402 | 19.08% |
| Stop | 1209633188.10516700 | 0.000614 | 29.14% |
| Total | - | 0.002107 | 100.00% |
同様に、連想配列には同じ情報が配列形式で格納されています。
Array
(
[name] => fibonacci0
[time] => 1209633188.10322500
[diff] => 0.000165
[total] => 0.000165
)
Array
(
[name] => fibonacci1
[time] => 1209633188.10330500
[diff] => 0.000080
[total] => 0.000245
)
Array
(
[name] => fibonacci2
[time] => 1209633188.10335800
[diff] => 0.000053
[total] => 0.000298
)
ご覧のとおり、Benchmark_Timerクラスを使うと、マーカーを使って厳密な結果を得ることができます。しかし、ほとんどの場合は、個々のコード行よりも、まとまった関数のベンチマークを測定したいと思うのではないでしょうか。特に、関数自体のコードを修正せずにベンチマークを測定できれば便利です。そのためにはBenchmark_Iterateクラスを使用します。
この記事は参考になりましたか?
- japan.internet.com翻訳記事連載記事一覧
- この記事の著者
-
japan.internet.com(ジャパンインターネットコム)
japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.com や EarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
Octavia Andreea Anghel(Octavia Andreea Anghel)
経験豊富なPHP開発者。現在は、国内外のソフトウェア開発コンテストに参加するプログラミングチームの主任トレーナーを務める。国レベルの教育プロジェクト開発のコンサルティングも担当している。共著書に『XML technologies?XML in Java』があり、XML部分の執筆を担当。PHPやXML...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
