ホームページ  >  記事  >  バックエンド開発  >  PHP性能解析ツールxhprofのインストールと使用方法と注意事項

PHP性能解析ツールxhprofのインストールと使用方法と注意事項

jacklove
jackloveオリジナル
2018-07-05 17:46:221861ブラウズ

xhprof は、Facebook のエンジニアによって開発および保守されている PHP パフォーマンス分析およびデバッグ ツールです。xdebug と比較して、軽量でリソースの節約に優れています。誰でも使用することを強くお勧めします。以下の記事では、PHP パフォーマンス解析ツール xhprof のインストールと使い方を中心に紹介していますので、困っている方は参考にしてみてください。

まえがき

xhprof は、Facebook によってオープンソース化された PHP パフォーマンス監視ツールです。必要なリソースはほとんどなく、本番環境。 。

コードの実行時間を画像で直感的に表示できるgraphvizと併用できます。

#以下では主にインストールと使用プロセスについて説明します

1. インストール

(1) ダウンロードして解凍

##

wget http://pecl.php.net/get/xhprof-0.9.4.tgz
tar zxvf xhprof-0.9.4.tgz

## (2) コンパイルして実行

#

cd xhprof-0.9.4/extension/
phpize //此语句编译PHP扩展的工具,主要是根据系统信息生成对应的configure文件,一般存放在/usr/local/php/bin/目录下
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
mkdir /tmp/xhprof

#(3) php.ini を編集します:

[xhprof]
extension = xhprof.so
xhprof.output_dir=/tmp/xhprof

xhprof.output_dir は、分析で生成されたログの保存パスです。

(4) プラグインをインストールします

最後に返される配列は、プラグインがインストールされていることを意味します。以下に UI 構成があるため、特定の値が何を意味するかについては心配する必要はありません。とても直感的に操作できるでしょう!

yum -y install libjpeg freetype freetype-devel libjpeg-devel liberation-sans-fonts.noarch

自動インストール

yum -y install graphviz

(5)コードを挿入

//找到你要分析的代码,在代码开始处添加,start profiling,将会统计内存占用情况
xhprof_enable(XHPROF_FLAGS_MEMORY);
//具体代码
//在代码结束位置添加
$xhprof_data = xhprof_disable(); // stop profiler, display raw xhprof data for the profiler run
include_once ("/usr/local/src/xhprof-0.9.4/xhprof_lib/utils/xhprof_lib.php"); # 请注意设置站点 include_path 权限
include_once ("/usr/local/src/xhprof-0.9.4/xhprof_lib/utils/xhprof_runs.php");
$xhprof_runs = new \XHProfRuns_Default();
// Save the run under a namespace "xhprof_foo".
// **NOTE**:
// By default save_run() will automatically generate a unique
// run id for you. [You can override that behavior by passing
// a run id (optional arg) to the save_run() method instead.]
$xhprof_runs->save_run($xhprof_data, "xhprof_foo");

(6) (2) の xhprof の

を表示 - 0.9 .4/xhprof_html アクセス可能なサイトを設定するには、PHP の組み込みサーバー

cd xhprof-0.9.4/xhprof_html
php -S 0.0.0.0:8990

を使用し、レポートする IP ポートにアクセスするだけです。

2. 使用方法

関数名: メソッド名。

  • Calls: メソッドが呼び出された回数。

  • Calls%: 同じレベルのメソッド呼び出しの総数に対する割合としてのメソッド呼び出しの数。

  • Incl.Wall Time(microsec): サブメソッドの実行時間を含む、メソッドの実行にかかる時間。 (単位: マイクロ秒)

  • IWall%: メソッドの実行に費やされた時間の割合。

  • Excl. Wall Time (microsec): サブメソッドの実行時間を除く、メソッド自体の実行にかかる時間。 (単位: マイクロ秒)

  • EWall%: メソッド自体の実行に費やされた時間の割合。

  • CPU を含む (マイクロ秒): サブメソッドの実行時間を含む、メソッドの実行に費やされた CPU 時間。 (単位: マイクロ秒)

  • ICpu%: メソッドの実行に費やされた CPU 時間の割合。

  • Excl. CPU (microsec): サブメソッドの実行時間を除く、メソッド自体の実行に費やされた CPU 時間。 (単位: マイクロ秒)

  • ECPU%: メソッド自体の実行に費やされた CPU 時間の割合。

  • Incl.MemUse(bytes): メソッドの実行によって占有されるメモリ (サブメソッドの実行によって占有されるメモリを含む)。 (単位: バイト)

  • IMemUse%: メソッドの実行によって占有されているメモリの割合。

  • Excl.MemUse(bytes): サブメソッドの実行によって占有されるメモリを除く、メソッド自体の実行によって占有されるメモリ。 (単位: バイト)

  • EMUse%: メソッド自体が占有するメモリの割合。

  • Incl.PeakMemUse(バイト): Incl.MemUse ピーク値。 (単位: バイト)

  • IPeakMemUse%:MemUse のピーク割合を含みます。

  • Excl.PeakMemUse(バイト): Excl.MemUse のピーク値。単位: (バイト)

  • EPeakMemUse%: Excl.MemUse ピークのパーセンテージ。

  • 注:

# 1. 正式にアクティブ化する前に、正しくアクティブ化されないことを必ず確認してください。通常の動作に影響を与えるデータ出力。出力内容が同じであることを確認後、再度オンラインに接続してください。
2. 各 URL の max_time を小さく設定しすぎないでください。


3. xhprof はオンライン サービスのパフォーマンスに影響を与えるため、1 台のマシンでのみ監視するか、リクエストをランダムに監視するように xhprof.php コードを変更することをお勧めします。


概要

興味があるかもしれない記事:

php は db をカプセル化しますsqlite3データベースへの接続方法の例説明

PHPでhttpリクエストをシミュレートする方法の解析と説明

php はソケットを実装します プッシュ技術の例の説明


以上がPHP性能解析ツールxhprofのインストールと使用方法と注意事項の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。