Maison > développement back-end > tutoriel php > Comment diagnostiquer rapidement les problèmes de performances PHP

Comment diagnostiquer rapidement les problèmes de performances PHP

WBOY
Libérer: 2024-06-03 10:56:57
original
822 Les gens l'ont consulté

Les techniques efficaces pour diagnostiquer rapidement les problèmes de performances PHP incluent l'utilisation de Xdebug pour obtenir des données de performances, puis l'analyse de la sortie Cachegrind. Utilisez Blackfire pour afficher les traces des demandes et générer des rapports de performances. Examinez les requêtes de base de données pour identifier les requêtes inefficaces. Analysez l'utilisation de la mémoire, affichez les allocations de mémoire et l'utilisation maximale.

如何快速诊断 PHP 性能问题

Comment diagnostiquer rapidement les problèmes de performances PHP

PHP est un langage de script puissant et populaire, mais comme toute autre technologie, il peut également rencontrer des problèmes de performances. Afin de résoudre ces problèmes, il est crucial de les diagnostiquer rapidement et précisément. Cet article vous guidera à travers un ensemble de techniques efficaces pour diagnostiquer rapidement les problèmes de performances PHP.

1. Utilisez Xdebug pour obtenir des données de performances

Xdebug est une puissante extension PHP qui peut fournir des données de performances détaillées sur l'exécution de scripts. Pour utiliser Xdebug, suivez ces étapes :

pecl install xdebug
Copier après la connexion

Après l'installation, ajoutez ce qui suit à votre fichier php.ini : php.ini 文件中:

zend_extension=xdebug.so
xdebug.profiler_enable=On
xdebug.profiler_output_dir="/tmp"
xdebug.profiler_output_name=cachegrind.out.%t.%s
Copier après la connexion

2. 分析 Cachegrind 输出

运行脚本后,Xdebug 将在 /tmp 目录中生成一个 Cachegrind 输出文件(cachegrind.out.<pid>.<script-name>)。您可以使用 KCacheGrind(一个免费的 GUI 工具)或 pprof --callgrind 命令来分析此输出文件。

3. 使用 Blackfire 查看请求跟踪

Blackfire 是一个商业的 PHP 性能分析工具,提供了对请求执行的深入见解。要使用 Blackfire,请安装其 PHP 扩展并在您的脚本中添加以下代码:

use Blackfire\Client;

$client = new Client();
$client->startProfile();
Copier après la connexion

在脚本完成后,使用以下命令生成性能报告:

blackfire report -profile=/tmp/blackfire/<profile-id>
Copier après la connexion

4. 检查数据库查询

数据库查询可能是 PHP 性能问题的常见源泉。要检查查询,请使用 Xdebug 或 Blackfire 来查看执行的时间和数量。您还可以使用 MySQL 查询分析工具(如 pt-query-digest)来识别低效查询。

5. 分析内存使用情况

内存使用过高会减慢脚本的执行速度。要分析内存使用情况,请使用 Xdebug 或 Blackfire 查看内存分配和峰值使用情况。您还可以使用 memory_get_peak_usage() PHP 函数来检查脚本的最大内存使用量。

实战案例:诊断缓慢的 WordPress 网站

假设您有一个运行缓慢的 WordPress 网站。通过使用 Xdebug 分析 Cachegrind 输出,您发现一个加载了大量帖子的页面特别慢。进一步调查显示,.符号之前的数据库表链接符(.rrreee

2 Analysez la sortie de Cachegrind 🎜🎜Après avoir exécuté le script, Xdebug générera. un fichier de sortie Cachegrind (cachegrind.out.<pid>.<script-name>) dans le répertoire /tmp. Vous pouvez analyser ce fichier de sortie à l'aide de KCacheGrind (un outil GUI gratuit) ou de la commande pprof --callgrind. 🎜🎜3. Afficher les traces des requêtes à l'aide de Blackfire🎜🎜Blackfire est un outil commercial d'analyse des performances PHP qui fournit des informations approfondies sur l'exécution des requêtes. Pour utiliser Blackfire, installez son extension PHP et ajoutez le code suivant à votre script : 🎜rrreee🎜Une fois le script terminé, générez un rapport de performances à l'aide de la commande suivante : 🎜rrreee🎜4. Vérifiez la requête de base de données 🎜🎜La requête de base de données peut. être Performances PHP Une source courante de problèmes. Pour examiner la requête, utilisez Xdebug ou Blackfire pour voir quand et combien de fois elle a été exécutée. Vous pouvez également utiliser des outils d'analyse de requêtes MySQL tels que pt-query-digest pour identifier les requêtes inefficaces. 🎜🎜5. Analyser l'utilisation de la mémoire🎜🎜Une utilisation excessive de la mémoire ralentira l'exécution du script. Pour analyser l'utilisation de la mémoire, utilisez Xdebug ou Blackfire pour afficher les allocations de mémoire et l'utilisation maximale. Vous pouvez également utiliser la fonction PHP memory_get_peak_usage() pour vérifier l'utilisation maximale de la mémoire de votre script. 🎜🎜Exemple pratique : diagnostiquer un site Web WordPress lent🎜🎜Disons que vous avez un site Web WordPress lent. En utilisant Xdebug pour analyser la sortie de Cachegrind, vous découvrez qu'une page qui charge un grand nombre de publications est particulièrement lente. Une enquête plus approfondie a révélé que le caractère de lien vers la table de base de données (.) avant le symbole . était manquant, ce qui obligeait MySQL à exécuter des requêtes lentes. Après avoir résolu ce problème, la vitesse de chargement des pages s'est considérablement améliorée. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal