Maison  >  Article  >  développement back-end  >  À propos de l'analyse PHP+xdebug des goulots d'étranglement des performances du code

À propos de l'analyse PHP+xdebug des goulots d'étranglement des performances du code

藏色散人
藏色散人avant
2021-02-18 17:27:212839parcourir

PHP + xdebug pour analyser les goulots d'étranglement des performances du code

Habituellement activéxdebug Les fichiers de sortie des plug-ins et des tests de performances seront générés, généralement dans des fichiers cachegrind.out.xxxx.

Ce fichier peut être utilisé pour l'analyse des performances du code via des outils tiers.

Mais s'il existe plusieurs projets/sites Web localement, tous les profils seront générés dans un seul fichier, ce qui n'est pas pratique pour une analyse ultérieure des performances.

Nom du fichier de profil personnalisé

Vous pouvez définir le nom du fichier de sortie en configurant les paramètres xdebug.profiler_output_name Certains paramètres sont les suivants :

符号 含义 配置样例 样例文件名
%c 当前工作目录的crc32校验值 cachegrind.out.%c cachegrind.out.1258863198
%p 当前服务器进程的pid cachegrind.out.%p cachegrind.out.9685
%r 随机数 cachegrind.out.%r cachegrind.out.072db0
%s 脚本文件名(注) cachegrind.out.%s cachegrind.out._home_httpd_html_test_xdebug_test_php
%t Unix时间戳(秒) cachegrind.out.%t cachegrind.out.1179434742
%u Unix时间戳(微秒) cachegrind.out.%u cachegrind.out.1179434749_642382
%H $_SERVER['HTTP_HOST'] cachegrind.out.%H cachegrind.out.localhost
%R $_SERVER['REQUEST_URI'] cachegrind.out.%R cachegrind.out._test_xdebug_test_php_var=1_var2
%S session_id (来自$_COOKIE 如果设置了的话) cachegrind.out.%S cachegrind.out.c70c1ec2375af58f74b390bbdd2a679d
%% %字符 cachegrind.out.%% cachegrind.out.%%

Modifiez le fichier de configuration : php.ini

xdebug.profiler_output_name = cachegrind.out.%H
Puis redémarrez le serveur php.

Sous Mac, les fichiers de profil sont stockés dans le répertoire

. /var/tmp/

Analyse des performances

Sous Mac, MacCallGrind et qcachegrind sont disponibles, mais le premier est payant et peut être téléchargé directement via l'Apple Store, tandis que le second est gratuit. Nécessite une installation manuelle.

Installez graphviz pour la fonction Call Graph :

$ brew install graphviz
Installez qcachegrind :

$ brew install qcachegrind
Une fois l'installation terminée, vous pouvez ouvrir l'application

L'interface graphique est la suivante. suit : qcachegrind

À propos de lanalyse PHP+xdebug des goulots détranglement des performances du code

Autres

Cependant, il convient de noter qu'après avoir activé

la sortie de fichier, s'il existe de nombreux projets locaux, il est facile pour occuper une grande surface d'espace disque, comme indiqué ci-dessous. C'est un état que je n'ai pas nettoyé depuis environ six mois : profile

À propos de lanalyse PHP+xdebug des goulots détranglement des performances du code

Vous pouvez utiliser la commande pour le nettoyer :

$ sudo rm -fr /private/var/tmp/cachegrind.out.*

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer