やかんブログ

[symfony]簡単に実行時間を測定できるsfTimerManagerクラス

2008年08月14日(木)08:50|谷口

谷口です。

今回はWebDebugの際に有用な情報を出力してくれるsfTimerManagerについて、使い方を紹介します。

sfTimerManagerはWebDebuggerで以下の図のような実行時間に関するサマリーを出してくれるクラスです。 当然ですが、WebDebuggerでの表示はカスタマイズしない限りSF_DEBUGをtrueにしていないと使えないので、 実行時間のサマリーだけログ出力したいときでもSF_DEBUGをtrueにする必要があります。

タイマー

ただ、SF_DEBUG=falseでも独自のタイマーを追加することはできますので、計測したい時間のみを出力することも可能です。 第 16 章 – アプリケーションの運用ツール 使い方も簡単です。

測定したい処理を開始する前にインスタンスを生成して、完了時に時間を取得するだけです。 例えば、下記のようにすることで、myFunctionの処理時間を計測できます。


$timer = sfTimerManager::getTimer('myTimer');

$result = myFunction(); //測定したい関数

$timer->addTime();
$elapsedTime = $timer->getElapsedTime();

なお、sfTimerManager::getTimerの引数はタイマーの名前となりますので、 別の名前をつければまた0から計測できます。

うまく設定すれば、prod環境でもログに実行時間を表示することが可能ですので、 システム開発時の負荷テストなどに使える機能だと思います。 実際は時間だけが負荷の指標ではありませんが、目安にはなるかと思います。

この記事に関するお問い合わせはこちら

ページの先頭へ