PHP のパフォーマンスの問題を迅速に診断するための効果的な手法には、Xdebug を使用してパフォーマンス データを取得し、Cachegrind の出力を分析することが含まれます。 Blackfire を使用してリクエスト トレースを表示し、パフォーマンス レポートを生成します。データベース クエリを調べて、非効率なクエリを特定します。メモリ使用量を分析し、メモリ割り当てとピーク使用量を表示します。
PHP のパフォーマンスの問題を素早く診断する方法PHP は強力で人気のあるスクリプト言語ですが、他のテクノロジーと同様に、パフォーマンスの問題が発生する可能性もあります。これらの問題を解決するには、迅速かつ正確に診断することが重要です。この記事では、PHP のパフォーマンスの問題を迅速に診断するための一連の効果的なテクニックについて説明します。 1. Xdebug を使用してパフォーマンス データを取得します Xdebug は、スクリプトの実行に関する詳細なパフォーマンス データを提供できる強力な PHP 拡張機能です。 Xdebug を使用するには、次の手順に従います。pecl install xdebug
php.ini
ファイルに追加します。 zend_extension=xdebug.so xdebug.profiler_enable=On xdebug.profiler_output_dir="/tmp" xdebug.profiler_output_name=cachegrind.out.%t.%s
php.ini
文件中:use Blackfire\Client; $client = new Client(); $client->startProfile();
运行脚本后,Xdebug 将在 /tmp
目录中生成一个 Cachegrind 输出文件(cachegrind.out.<pid>.<script-name>
)。您可以使用 KCacheGrind(一个免费的 GUI 工具)或 pprof --callgrind
命令来分析此输出文件。
Blackfire 是一个商业的 PHP 性能分析工具,提供了对请求执行的深入见解。要使用 Blackfire,请安装其 PHP 扩展并在您的脚本中添加以下代码:
blackfire report -profile=/tmp/blackfire/<profile-id>
在脚本完成后,使用以下命令生成性能报告:
rrreee数据库查询可能是 PHP 性能问题的常见源泉。要检查查询,请使用 Xdebug 或 Blackfire 来查看执行的时间和数量。您还可以使用 MySQL 查询分析工具(如 pt-query-digest
)来识别低效查询。
内存使用过高会减慢脚本的执行速度。要分析内存使用情况,请使用 Xdebug 或 Blackfire 查看内存分配和峰值使用情况。您还可以使用 memory_get_peak_usage()
PHP 函数来检查脚本的最大内存使用量。
假设您有一个运行缓慢的 WordPress 网站。通过使用 Xdebug 分析 Cachegrind 输出,您发现一个加载了大量帖子的页面特别慢。进一步调查显示,.
符号之前的数据库表链接符(.
2. Cachegrind 出力を分析します
/tmp
ディレクトリ内の Cachegrind 出力ファイル (cachegrind.out.<pid>.<script-name>
)。この出力ファイルは、KCacheGrind (無料の GUI ツール) または pprof --callgrind
コマンドを使用して分析できます。 🎜🎜3. Blackfire を使用してリクエスト トレースを表示する🎜🎜Blackfire は、リクエストの実行に関する深い洞察を提供する商用 PHP パフォーマンス分析ツールです。 Blackfire を使用するには、PHP 拡張機能をインストールし、次のコードをスクリプトに追加します: 🎜rrreee🎜 スクリプトが完了したら、次のコマンドを使用してパフォーマンス レポートを生成します: 🎜rrreee🎜4. データベース クエリを確認します。🎜🎜 PHP のパフォーマンスが問題の一般的な原因です。クエリを調べるには、Xdebug または Blackfire を使用して、クエリがいつ、何回実行されたかを確認します。 pt-query-digest
などの MySQL クエリ分析ツールを使用して、非効率なクエリを特定することもできます。 🎜🎜5. メモリ使用量を分析する🎜🎜過剰なメモリ使用量は、スクリプトの実行を遅くします。メモリ使用量を分析するには、Xdebug または Blackfire を使用してメモリ割り当てとピーク使用量を表示します。 memory_get_peak_usage()
PHP 関数を使用して、スクリプトの最大メモリ使用量を確認することもできます。 🎜🎜実践例: 遅い WordPress Web サイトの診断🎜🎜 遅い WordPress Web サイトがあるとします。 Xdebug を使用して Cachegrind 出力を分析すると、大量の投稿を読み込むページが特に遅いことがわかります。さらに調査を進めると、.
記号の前のデータベース テーブルのリンク文字 (.
) が欠落しており、これが原因で MySQL のクエリ実行が遅くなっていることが判明しました。この問題を修正した後、ページの読み込み速度が大幅に向上しました。 🎜以上がPHP のパフォーマンスの問題を迅速に診断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。