Benchmark_Profilerクラス
Benchmark_Profilerクラスには、フォーマットされた測定結果を返すメソッド一式があります。このクラスで最もよく使われるメソッドのプロトタイプを次に示します。
void enterSection(string $name)― コードセクションを開始します。$nameパラメータは、コードセクションの名前を示します。void leaveSection(string $name)― コードセクションを終了します。$nameパラメータは、コードセクションの名前を示します。void display([string $format = 'auto'])― フォーマットされた実行結果を返します。$formatパラメータは出力するフォーマットを表し、auto(デフォルト)、plain、またはhtmlを指定します。
フィボナッチ数列を反復または再帰で求める処理にBenchmark_Profilerクラスを適用するコードを紹介します。
<?php require_once 'Benchmark/Profiler.php'; //create an instance of Benchmark_Iterate class $profiler = new Benchmark_Profiler(TRUE); function fibonacci(){ global $profiler; $a=0;$b=1; for ($i = 0; $i < 10; $i++) { //Enters code section $profiler->enterSection('fibonacci'.$i); $s=$a+$b; $a=$b; $b=$s; //Leaves code section $profiler->leaveSection('fibonacci'.$i); } //Returns formatted profiling information $profiler->display(); return; } fibonacci(); ?>
<?php require_once 'Benchmark/Profiler.php'; //create an instance of Benchmark_Iterate class $profiler = new Benchmark_Profiler(TRUE); //this function implements the recursive solution //for the fibonacci problem function fibonacci($n){ if(($n>=0)and($n<2)) { return 1; } else { return fibonacci($n-1)+fibonacci($n-2); } } global $profiler; for ($i = 0; $i < 10; $i++) { //Enters code section $profiler->enterSection('fibonacci'.$i); fibonacci($i).'<br />'; //Leaves code section $profiler->leaveSection('fibonacci'.$i); } //Returns formatted profiling information $profiler->display(); return; ?>
それぞれの結果は次のとおりです。
| Total Ex. Time | Calls | Percentage | Callers | |
| fibonacci0 | 0.00025200843811035 | 1 | N/A | Global (1) |
| fibonacci1 | 4.6968460083008E-005 | 1 | N/A | Global (1) |
| fibonacci2 | 3.814697265625E-005 | 1 | N/A | Global (1) |
| fibonacci3 | 5.1021575927734E-005 | 1 | N/A | Global (1) |
| fibonacci4 | 5.2928924560547E-005 | 1 | N/A | Global (1) |
| fibonacci5 | 5.6028366088867E-005 | 1 | N/A | Global (1) |
| fibonacci6 | 3.7908554077148E-005 | 1 | N/A | Global (1) |
| fibonacci7 | 4.0054321289063E-005 | 1 | N/A | Global (1) |
| fibonacci8 | 3.6954879760742E-005 | 1 | N/A | Global (1) |
| fibonacci9 | 0.00029301643371582 | 1 | N/A | Global (1) |
| Total Ex. Time | Calls | Percentage | Callers | |
| fibonacci0 | 0.0001368522644043 | 1 | N/A | Global (1) |
| fibonacci1 | 0.00031614303588867 | 1 | N/A | Global (1) |
| fibonacci2 | 8.4877014160156E-005 | 1 | N/A | Global (1) |
| fibonacci3 | 7.9870223999023E-005 | 1 | N/A | Global (1) |
| fibonacci4 | 0.00011897087097168 | 1 | N/A | Global (1) |
| fibonacci5 | 0.0001227855682373 | 1 | N/A | Global (1) |
| fibonacci6 | 0.00016498565673828 | 1 | N/A | Global (1) |
| fibonacci7 | 0.00038599967956543 | 1 | N/A | Global (1) |
| fibonacci8 | 0.00036907196044922 | 1 | N/A | Global (1) |
| fibonacci9 | 0.00057005882263184 | 1 | N/A | Global (1) |
この記事は参考になりましたか?
- 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...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
