Benchmark_Profiler

Benchmark_Profiler – Benchmark_Profiler について

Benchmark_Profiler について

このクラスの挙動は Benchmark_Timer とほとんど同じですが、 調査するコードの中で セクション を定義できるという点が異なります。 セクションマーカー とは異なり、状態を管理しています。 そして、そのセクションを何度実行したのかといった情報を記憶します。

プロファイリングの開始地点から終了地点までの経過時間情報だけでなく、 すべての セクション についての開始時と終了時の情報が記録されます。 以下の例をごらんください。

手動モードでの Benchmark_Profiler の動作

<?php

require_once 'Benchmark/Profiler.php';

$profiler = new Benchmark_Profiler;

function 
wasteTime() {
    
$j 2;
    for (
$i 0$i 100$i++) {
        
$j $j 10;
    }
    return;
}    

function 
myFunction() {
    global 
$profiler;
    
$profiler->enterSection('myFunction');
    
wasteTime();
    
$profiler->leaveSection('myFunction');
    return;
}

// 手動モードなので、手動で開始します
$profiler->start();

wasteTime();
myFunction();
myFunction();
wasteTime();

// 手動モードなので、終了と結果の表示を指示します
$profiler->stop();
$profiler->display();

?>

上の例を PHP CLI SAPI で実行すると、次のように結果を出力します。 Apache SAPI で実行した場合は、同じ結果を HTML 形式で出力します。

Benchmark_Profiler の実行結果

------------------------------------------------------------------------------------
Section             Total Ex Time         Netto Ex Time         #Calls    Percentage
------------------------------------------------------------------------------------
myFunction          5.8174133300781E-5    5.8174133300781E-5    2          17.22%
Global              0.00033783912658691   0.00027966499328613   1         100.00%

ごらんいただいてわかるとおり、デフォルトの出力結果はあまり有用ではありません。 手動モードの場合は、getSectionInformations()getAllSectionsInformations() といったメソッドを用いればセクションごとの詳細なプロファイル情報が得られます。 詳細は API ドキュメントを参照ください。

Benchmark_Timer について (Previous) Benchmark_Iterate について (Next)
Last updated: Sun, 23 Nov 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.