この記事では、php7 で xhprof 解析を使用する方法を紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。
これは純粋なドキュメントです。将来必要になった場合はいつでも参照でき、分析に xhprof を使用して、コードのテストと比較分析を容易にすることができます ( php7 をサポートします)。 php7、ここでは github.com/longxinH /xh… このプロジェクトを使用します。
docker run -it -p 80:80 -v /Users/xxx/Desktop/xhprof:/data phalcon /bin/bash
コードをコピーします
git clone https://github.com/longxinH/xhprof.git
1.3 xhprof.so 拡張を追加します
実行を終了します。この so ファイルを php.ini 設定に導入する必要があります。
php.ini ファイルのパスを確認してください
cd xhprof/extension/ /usr/server/php7/bin/phpize ./configure --with-php-config=/usr/server/php7/bin/php-config make && make install
/usr/server/php7/bin/php --ini Configuration File (php.ini) Path: /usr/server/php7/etc Loaded Configuration File: /usr/server/php7/etc/php.ini Scan for additional .ini files in: /usr/server/php7/etc/php Additional .ini files parsed: (none)
php-fpm を再起動します。
2. xhprof を使用してケースを構築するプロセス
監視対象のロジックの前に次のコードを埋め込みます
编辑 /usr/server/php7/etc/php.ini [Xhprof] extension=xhprof.so xhprof.output_dir=/data/logs
出力:
xhprof 拡張内の 2 つの関数が呼び出されたことがわかりました。出力値の意味ct は、この関数の現在の呼び出し数を表します。この場合、すべて 1 回ですwt は関数の実行時間の消費時間を表します。単位はマイクロ秒です。##これを見ると、取得できる情報はそれほど多くないことがわかります。たとえば、占有メモリ、CPU、その他の指標も気にすることがよくあります。
\xhprof_enable(); ...... $order = new OrderAdepter(); $result = $order->getUserOrderByOrderNo(123); ...... $xhprof_data = \xhprof_disable(); print_r($xhprof_data);
XHPROF_FLAGS_CPU は CPU 使用量をカウントします
\xhprof_enable( XHPROF_FLAGS_MEMORY +XHPROF_FLAGS_CPU +XHPROF_FLAGS_NO_BUILTINS );
ご興味がございましたら、開いてご覧ください。これには、分析したシリアル化されたオブジェクト情報が含まれています。##3.2 分析結果にアクセスするための別のサービスを構成するはい、xhprof.output_dir で構成されたパスの下にあります (ディレクトリを自分で手動で作成する必要があります)
#xhprof プロジェクトの xhprof_html ディレクトリを指します
##そう思いますこれで、save_run での run_id とプロジェクトの役割が理解できました。このセクションの上部は、要求されたインターフェイス インジケーターの概要であり、以下は各呼び出し関数の具体的な実行です。 フィールド名は、コール数を意味します。ウォールタイム呼び出しを含む。ウォールタイム呼び出しを除く、サブ関数によって費やされたすべての時間がマイクロ秒単位で測定されます。ウォールタイムを除くサブツリーの実行時間を除く、関数自体の実行に費やされた時間。マイクロ秒単位で測定 Calculate Inclu. CPU 呼び出しには、サブ関数によって費やされるすべての CPU 時間が含まれます Excl. サブツリー実行時間を除く、CPU 関数の実行自体によって費やされる CPU 時間 (マイクロ秒単位で計算されます) Incl.MemUse にはメモリが含まれますサブ関数の実行によって使用される (バイト単位) Excl.MemUse 関数の実行自体のメモリを計算し、Incl.PeakMemUseIncl.MemUse のピーク値をバイト単位で計算します。Excl.PeakMemUseExcl.MemUse
# のピーク値##残りの % 末尾は対応する割合です。
3.3 [コールグラフ全体を表示]次の 2 行のコードを実行して
\xhprof_enable(XHPROF_FLAGS_MEMORY + XHPROF_FLAGS_CPU+XHPROF_FLAGS_NO_BUILTINS); ...... $order = new OrderAdepter(); $result = $order->getUserOrderByOrderNo(123); ...... $xhprof_data = \xhprof_disable(); include_once '/data/xhprof-master/xhprof_lib/utils/xhprof_lib.php'; include_once '/data/xhprof-master/xhprof_lib/utils/xhprof_runs.php'; $xhprof_runs = new \XHProfRuns_Default(); $run_id = $xhprof_runs->save_run($xhprof_data, 'your_project'); echo $run_id; //output 5cbf25e21fe9b
呼び出しプロセスを表示したい場合は、graphviz グラフィック ライブラリをインストールする必要があります。ここでは、graphviz 2.24 .0 このバージョンを手動でインストールすることをお勧めします (個人的にピットに足を踏み入れます。2.40 はサポートされていません)
yum install -y libpng yum install -y graphviz
と思われる場合は、赤と黄色の部分に注目してください。特定のプロセスを分析したい場合は、メソッドをクリックして、 [View Full Callgraph] でチャートを表示します
上記の xhprof を使用するときに、強い依存関係があり、xhprof インストール パッケージ内のいくつかのクラスがコードに導入されていることがわかりました。4. 問題
yum -y install libtool-ltdl-devel cd /data/graphviz-2.24.0 ./configure make make install
php ビデオ チュートリアル
以上がphp7でxhprof分析を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。