Le contenu de cet article explique comment l'extension Xhprof en PHP analyse les performances du projet. Elle a une certaine valeur de référence. J'espère que cela vous sera utile.
Le projet est sur le point d'être lancé. Je souhaite utiliser certains outils pour analyser la stabilité et l'efficacité du code. Je me suis souvenu de l'extension xhprof que j'ai utilisée dans mon équipe précédente. ; parce que j'ai changé pour un nouvel ordinateur, cette extension doit donc être recompilée. Le processus d'installation et de dépannage réel est maintenant entièrement enregistré pour faciliter votre propre révision et aider davantage de lecteurs.
Installation des extensions
Configuration des extensions
Analyse des tests
L'extension xhprof PHP n'est pas fournie avec. Je dois l'installer séparément avant de pouvoir l'utiliser après l'installation. méthode d'installation du code ici. Le processus d'installation est le suivant
xhprof est déjà relativement ancien sur la version officielle PECL de PHP. Par conséquent, vous devez télécharger la version la plus récente de xhprof sur GitHub Code source, reportez-vous aux commandes suivantes
git clone https://github.com/longxinH/xhprof
Entrez le dossier compilé, référez-vous à la commande
cd xhprof/extension/
Maintenant, je dois compiler le code source, avant de compiler. Vous pouvez utiliser phpze pour détecter l'environnement PHP. La commande de référence est la suivante :
phpize
Le résultat renvoyé est le suivant. 🎜>
Configuring for: PHP Api Version: 20160303 Zend Module Api No: 20160303 Zend Extension Api No: 320160303
./configure
creating libtool appending configuration tag "CXX" to libtool configure: creating ./config.status config.status: creating config.h config.status: config.h is unchanged
make && make install
Build complete. Don't forget to run 'make test'. Installing shared extensions: /usr/local/Cellar/php@7.1/7.1.19/pecl/20160303/
4.1 Rechercher l'emplacement du fichier de configuration
php --ini
Configuration File (php.ini) Path: /usr/local/etc/php/7.1 Loaded Configuration File: /usr/local/etc/php/7.1/php.ini Scan for additional .ini files in: /usr/local/etc/php/7.1/conf.d Additional .ini files parsed: /usr/local/etc/php/7.1/conf.d/ext-opcache.ini
php.ini
pour afficher l'emplacement de stockage du répertoire d'extension. La commande de référence est la suivante
cat /usr/local/etc/php/7.1/php.ini | grep extension_dir
extension_dir = "/usr/local/lib/php/pecl/20160303" ; extension_dir = "ext" ; Be sure to appropriately set the extension_dir directive. ;sqlite3.extension_dir =
/usr/local/lib/php/pecl/20160303
cp /usr/local/Cellar/php@7.1/7.1.19/pecl/20160303/xhprof.so /usr/local/Cellar/php@7.1/7.1.19/pecl/20160303/
.
Ajoutez la configuration xhprof à la fin du fichier de configuration et personnalisez-en une pour enregistrer le xhprof généré. La configuration de référence du fichier source est la suivantevim /usr/local/etc/php/7.1/php.ini
[xhprof] extension=xhprof.so xhprof.output_dir=/data/www/xhprof/save_output_dir
brew info php@7.1
To have launchd start php@7.1 now and restart at login: brew services start php@7.1 Or, if you don't want/need a background service you can just run: php-fpm
brew services restart php@7.1
Stopping `php@7.1`... (might take a while) ==> Successfully stopped `php@7.1` (label: homebrew.mxcl.php@7.1) ==> Successfully started `php@7.1` (label: homebrew.mxcl.php@7.1)
Exécution de la commande Après cela, le résultat de l'installation réussie de l'extension affichera xhprof, comme indiqué ci-dessous
php -m | grep xhprof
5. Test
Après l'opération ci-dessus, l'auteur l'a installé et configuré avec succès. Je dois maintenant utiliser le code PHP pour vérifier l'effet d'analyse de xhprof5.1 Créer un hôte virtuel<.>Créez d'abord un hôte virtuel, laissez les utilisateurs y accéder via un navigateur. Pour créer un hôte virtuel, vous devez disposer d'un répertoire racine et modifier le fichier de configuration nginx. Les opérations spécifiques sont les suivantes :
Créer le répertoire racine du projet, la commande de référence est la suivante
Une fois la création réussie, l'auteur doit copier une partie du code extrait par git dans le répertoire racine du projet. La commande de référence est la suivantemkdir -p /Users/song/mycode/work/test
cp -r xhprof/xhprof_html /Users/song/mycode/work/test/ cp -r xhprof/xhprof_lib /Users/song/mycode/work/test/
/usr/local/etc/nginx/nginx.conf
pour enregistrer le contenu Comme suit :
server { listen 80; server_name test.localhost; root /Users/song/mycode/work/test; index index.html index.htm index.php; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
5.2 Nouveau code de test /etc/hosts
127.0.0.1 test.localhost
examples
vim /Users/song/mycode/work/test/test.php
<?php //加载所需文件 include_once "./xhprof_lib/utils/xhprof_lib.php"; include_once "./xhprof_lib/utils/xhprof_runs.php"; //随意定义一个函数 function test($max) { for ($idx = 0; $idx < $max; $idx++) { echo ''; } } //定义测试方法 function a() { test(rand(1000,5000)); } //开始分析 xhprof_enable(); //需要分析的函数 a(); //结束分析 $xhprof_data = xhprof_disable(); //实例化xhprof类 $xhprof_runs = new XHProfRuns_Default(); //获取当前当前页面分析结果 $run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_foo"); echo "\nhttp://test.localhost/xhprof/xhprof_html/index.php?run=$run_id&source=xhprof_foo\n";
http://test.localhost/xhprof/test.php
Vous pouvez voir une adresse URL sur la page. Après avoir copié et ouvert cette adresse URL, vous pouvez voir les résultats de l'analyse de ce code, comme indiqué. ci-dessous montré
Il y a une liste sur la page, indiquant le temps consommé par chaque méthode. Si vous estimez que la liste n'est pas assez claire, cliquez sur Le lien peut générer directement une image, comme le montre la figure ci-dessousView Full Callgraph
Dans la figure, il est clair que le temps d'exécution est consommé en la méthode de test , afin que l'auteur puisse effectuer une optimisation ciblée pour cette méthode. Recommandations associées :
Extension de surveillance des performances PHP xhprof
Utiliser l'extension xhprof (PHP) pour l'analyse des performances WEB
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!