konekto Inc with PHP , MySQL コネクト株式会社 技術情報コンテンツ


Top

コードトレーシング

Zend Server Ver 5.6 のEnterprise Editionを使用すると、コードトレーシング機能を利用してスクリプト実行のボトルネックを発見できます。
イベントモニタリング機能でキャッチしたイベントに対して行うこともできます。
事前にいくつかの設定を行った後に実行してみます。

Zend Server の設定

  1. サーバー設定>コンポーネント タブにて、Zend Code Tracing および Zend Monitorを有効化します。
  2. サーバー設定>モニター タブで、一番下の「コードトレーシング設定」を行います。この例では「活動」を選びます。
  3. ルール管理>モニタリング タブで表示されるイベントにコードトレーシングと連携するための設定を追加します。
    この例では、説明を簡単にするために、追加先として、カスタムイベント(画面上はCustom Eventと表示)を選びます。
    カスタムイベントは、意図的に発生させるイベントです。
    zend_monitor_custom_event 関数を利用します。
    この関数を利用しても、プログラムの実行が停止するなどの影響はありません。
  4. 「コードトレーシングを保管」にチェックを付け、設定全体を保管します。
    「現在スタンバイモードならトレーシング機能を起動」という選択肢も表示されます。
    この選択肢は、手順の2番目で「活動」ではなく「スタンバイ」を選んだ場合に利用できます。
  5. 設定を反映するために、PHPを再起動します。

スクリプトを修正

コードトレーシングを実行するには、下記の方法があります。

  1. イベントを Zend Server のモニタリング機能でキャッチして、キャッチされたイベントに対してコードトレーシングを実行します。
    イベントには、PHPのエラーや警告などのほか、指定した関数の返り値が false の場合や実行時間の長さなどの発生条件を指定できます。
  2. 意図的にzend_monitor_custom_event 関数を用い、モニタリング機能にカスタムイベントを通知します。
    引数は3項目あり、各引数には順にイベントの種類、テキスト、任意のデータを渡せます。

この例では、2番目の方法を用います。
実行中の $myValue の値をチェックして、さらにコードトレーシングを実行するために下記の文を記述したと仮定します。

zend_monitor_custom_event('My pick up', 'myValue', $myValue);

コードトレーシングを実行

  1. PHP スクリプトを実行後、Zend Server の管理画面にログインします。
  2. zend_monitor_custom_event 関数でカスタムイベントを発生させたので、ダッシュボードにイベントが発生したPHPスクリプトがあることが表示されます。
    その表示箇所をクリックします。
  3. 発生したイベントの詳細を表示する画面が表示されます。
    zend_monitor_custom_event 関数の引数に指定した $myValue 変数の値を確認できます。
  4. 右側のやや上にある「コードトレーシングを表示」ボタンを押します。
    モニター>コードトレーシング タブで一覧の中から選択することもできます。
  5. 新規ウィンドウでコードトレーシング結果が表示されます。
    Running Time(実行時間)で、処理に要した時間を視覚的に把握することができます。
    実際の時間は、2つ右の欄の(ms)欄にミリ秒単位で表示されます。
    予想外に時間を要しているかどうかを調査できます。
  6. 必要な修正を行った後、ブラウザで再び実行して所要時間を確認します。
    確認終了後にモニター>イベント タブ上でイベントを選択してクローズします。
  7. さらに、モニター>コードトレーシング タブ上でコードトレーシング結果を選択して削除します。

最終更新のRSS