{Xhprof}
XhProf は、関数レベルのリクエスト時間と、ブロック時間、CPU 時間、メモリ使用状況などのさまざまなメトリクスをレポートする階層型 PHP パフォーマンス分析ツールです。
[状況]
上記 2 つのアプリケーション Apache + php の組み合わせは Windows では比較的一般的であり、一般に開発環境を整理するために使用されます。もちろん、デバッグ環境やテスト環境の多くは実稼働環境で使用されます。私は Windows での開発に慣れているため、Linux ベースの仮想マシンも構築しています。開発プラットフォームを使用するのは問題ありませんが、Windows 環境を手放すことはできません。
私は eclipse+xdebug を使用して開発とデバッグを行ってきましたが、あまり問題は発生せず、開発は比較的スムーズでしたが、昨日ページをテストしていたときに気づきました。 php-cgi がプロセス内でハングアップするという、ロックアップに似た現象が発生しました。CPU 消費やメモリの増加はなく、Web ページが停止したままになります。さらに、私自身の 6 コア コンピュータでテストしたところ、ファイル システムのロックは正常になりました。奇妙なこと。私自身、デバッグに Apache_1.3.37-Win32+php-5.2.6-Win32+Xdebug-2.1.2 バージョンを使用しましたが、デバッグ プロセス中に Eclipse 全体が応答しない状態になっていることがわかりました。ロックアップのようなプロパティが送信され、デバッグが続行できなくなりました。具体的な原因を考えていないので、少し休憩します。とりあえず。
検索中に偶然 Xhprof ツールを発見しました。いくつかのブロガーの記事を読んだ後、このツールはプログラムのパフォーマンスを分析できることがわかりました。しかし、それは非常に直感的で明確であり、非常に興味があるので、今開発を止めてこれについて勉強しました。
[プロセス]
いくつかのブログ投稿を参照しましたが、それらはすべて序論に基づいています。 Windows ベースの入門書を見つけたら、すぐに Linux に開発を切り替えることはできませんよね。そこで改めて調べてみると、海外のサイトでコンパイル済みのXhprofが提供されていたのですが、バージョンはphp-5.3.3-Win32版をベースにしており、コードはXhprofの0.9.2版をベースにしていたようです(笑)。はい、誰かが私と一緒にそれを考えましたが、検索結果は非常に少なく、中国語の検索結果はほとんどなく、外国語の検索結果はわずかです。
xhprof は php5 に基づいてコンパイルされているため、外国語サイトから Windows バージョンの xhprof をダウンロードし、関連する xhprof コードと関連する生成されたページ ドキュメントを元の Facebook 公開サイトからダウンロードしました。 3.3 はい、php5.3.3 を準備する必要もあります。php.net に直接アクセスして、vc6 スレッドセーフ バージョンをプルします。
Apache にはそれが用意されているので、元の http.conf を直接修正し、CGI モードで php5.3.3 を Apache に導入してデバッグしました。phpinfo の統合はすべてスムーズでした。 xdebug も正常になり、xhprof に参加するための準備が完了しました。
Windows バージョンの xhprof をインストールし、テストするページにデバッグ ページとコードを追加するだけです。
[手順]
まず、Windows バージョンの xhprof をダウンロードする必要があります。言う必要はありません。これ、アドレス: http://www.benjamin-carl.de/?download=XHProf-0.10.0-PHP-5.3.3-VC6-x86-TS、http://pan.baidu.com/share/link ?shareid=239782&uk=337775431 ダウンロードした zip ファイルは dll ファイルに解凍され、図 1 に示すように PHP の ext ディレクトリに直接配置できます。
図 1
次に、デバッグ出力ページを含む xhprof の 2 つのサブディレクトリを配置する必要があります。ここでは、それらを公開場所のルート ディレクトリに直接配置することにしました。 Web サイト (Apache のデフォルト) htdocs ディレクトリでは、ここの htdocs は別の開発用 USB フラッシュ ドライブに転送され、さまざまな場所でコードをコンパイルしやすくなります。図 2 に示すように、ここでは xhprof_html という合計 3 つのフォルダーがあります。 xhprof_lib、xhprof_log のうち、xhprof_html と xhprof_lib は、ダウンロードされた xhprof ソース コード ファイル パッケージから取得されます。パッケージ サイトは http://pecl.php.net/package/xhprof で、xhprof のダウンロード アドレスは http: //pecl.php.net/get/xhprof-0.9.2.tgz を開き、htdocs に xprof_log フォルダーを作成します。このフォルダーはページ分析データを保存するために使用されます。
図 2
Apache+php は完全にデバッグされているため、ini のみを処理する必要があります。ファイルを開くのは非常に簡単です。ファイルの最後にコード
[xhprof]
extension=php_xhprof を追加するだけです。 dll
; iXHProfRuns
インターフェイス (つまり、XHProfRuns_Default クラス) の保存用に使用されるディレクトリ。"ヒント: xhprof.output_dir=これは、パフォーマンス分析データの保存場所を設定するために使用されます。ここでは、htdocs は M ドライブ上にある必要があるため、上記のディレクトリである M:/htdocs/xhprof_log に設定されますlocation"
追加が成功したら、Apache を再起動して、phpinfo() 情報に xhprof セグメントが含まれているかどうかを確認できます。含まれていれば、インストールは成功です。ヒント: cgi を使用する PHP モードで実行中の PHP で php.ini を変更した後、Apache を再起動せずに phpinfo() を直接実行して結果を表示できます。結果を図 3 に示します。
図 3
これまでのところ、xhprof は正しくインストールされています。