PHP パフォーマンス監視拡張機能 xhprof は一般に優れたツールです。このセクションでは、Ubuntu でのインストールと使用のプロセスを紹介します。
xhprof をインストールします。
-
- wget http://pecl.php.net/get/xhprof-0.9.2.tgz
-
- tar zxf xhprof-0.9.2.tgz
- cd xhprof-0.9.2/extension/
- sudo phpize
- ./configure --with-php-config=/usr/local/php/bin/php-config
- sudo make
- sudo make install
-
コードをコピー
デバッグ結果をグラフィカルに表示するには、また、graphviz ツールをインストールするには、apt-get を使用して ubuntu に直接インストールする必要があります。コマンドは sudo apt-get installgraphviz です。
別のシステムの場合は、少し工夫が必要になる場合があります。コマンドは次のとおりです。
-
- wget http://www.graphviz.org/pub/graphviz/stable/sources/graphviz-2.24.0.tar.gz
- tar zxfgraphviz-2.24.0.tar.gz
- cdgraphviz- 2.24.0
- ./configure
- make && make install
コードをコピー
次にphp.iniを設定します
php.iniを追加します:
- [xhprof]
- extension=xhprof.so;
- ; xhprofruns
- インターフェイスのデフォルト実装によって使用されるディレクトリ (つまり、xhprofruns_default クラス)
- ;
- ;xhprof.output_dir; =
- xhprof.output_dir=/tmp/xhprof
-
-
-
コードをコピー
注: 64 ビット システムの場合は、xhprof.so ファイルを関連する lib ディレクトリ (lib64) にコピーする必要があります。 )
変更後、Apacheを再起動し、phpinfoを確認すると、xhprofに関する情報が表示されるはずです。
テストするコードをphpに追加します
// cpu:xhprof_flags_cpu メモリ: xhprof_flags_memory- // 両方が一緒の場合: xhprof_flags_cpu + xhprof_flags_memory
- xhprof_enable(xhprof_flags_cpu + flags_memo ry);
-
- //テストする PHP コード
- $data = xhprof_disable(); //実行中のデータを返します
-
- // ダウンロードしたパッケージのこのディレクトリに xhprof_lib が存在します。このディレクトリを実行中の PHP コードに忘れずに含めてください
- include_once "xhprof_lib/utils/xhprof_lib.php";
- include_once "xhprof_lib / utils/xhprof_runs.php";
-
- $objxhprofrun = new xhprofruns_default();
-
- // 最初のパラメーター j は、xhprof_disable() 関数によって返される実行情報です
- // 2 番目のパラメーターは、カスタム名前空間文字列 (任意) string),
- //実行 ID を返します。この ID を使用して関連する実行結果を表示します
- $run_id = $objxhprofrun->save_run($data, "xhprof");
- var_dump($run_id);
-
-
Copyコード
実行結果を表示します:
xhprof_lib&&xhprof_html 関連ディレクトリをアクセス可能なアドレスにコピーします
php コードの実行ステータスを確認するには、xxx/xhprof_html/index.php?run=$run_id にアクセスしてください。$run_id は、上記のページに出力された内容です。必要がない場合は、xhprof_lib に忘れずに含めてください。このメソッドを使用するには、関連する印刷情報を直接出力することもできます。つまり、上記の $data の値を直接 print_r 出力します。
パラメータの説明:
包括時間には、サブ関数のすべての実行時間が含まれます。
排他的時間/自己時間 サブツリーの実行時間を除く、関数自体の実行にかかる時間。
ウォールタイム経過時間またはウォールクロック時間。
CPU時間 ユーザー時間 + カーネル時間
包括的な CPU には、サブ関数が一緒に占有する CPU が含まれます
専用CPU 関数自体が占有するCPU
|