## PHP および DTrace への入門

DTrace は、常に使用可能で、オーバーヘッドが少なく、 Solaris、macOS、Oracle Linux および BSD を含む 多数のプラットフォーム上で使用可能なトレーシング・フレームワークです。 DTrace は、OS の挙動およびユーザー・プログラムの実行を追跡できます。 それは、引数の値を表示したり、パフォーマンス統計を推定することに使用できます。 プローブは、DTrace D スクリプト言語で書かれた ユーザー作成のスクリプトによりモニターされます。 これにより、データ・ポイントの効率的な分析が可能になります。

ユーザーの DTrace D スクリプトによりアクティブにモニターされていない PHP プローブには計装化コードを含みません。 それは、通常のアプリケーション実行中は、パフォーマンス低下がないからです。 モニターされているプローブのオーバーヘッド負荷は、 一般的に作業中の本番システム上で DTrace をモニターしてもよいほど十分な低さです。

PHP は、ランタイムで駆動された "User-level Statically Defined Tracing (USDT。ユーザーレベルの静的に定義されたトレーシング)" プローブを組み入れます。 例えば、D スクリプトが PHP の function-entry プローブをモニター中の場合、 PHP スクリプトの関数が呼ばれるたびにこのプローブは発射され、 関連付けられた D スクリプトの実行コードが実行されます。 この実行コードは、例えば PHP 関数のソースファイルの場所のような、 プローブの引数を印刷したり、 各関数が呼ばれる回数のようなデータを集計できるでしょう。

PHP USDT プローブの記述はここだけです。 任意の関数をトレースするために DTrace を使用する方法、 および OS の挙動をトレースするための使用方法については、 外部の一般および OS 固有の DTrace の文献を参照ください。 すべての DTrace の機能がすべての DTrace 実装で使用可能とは 限らないことに注意してください。

DTrace 静的プローブは、PHP 5.4 で含まれます。 これより前は、» PECL 拡張モジュールを通じて使用可能でした。 これは現在では廃止されました。

PHP での静的な DTrace プローブは、 一部の Linux ディストリビューションの SystemTap 機能に対して 代わりに使用できます。