Extended Xhprof dans PHP comment pour analyser les performances d’un projet

Source : Internet
Auteur : utilisateur
Cet article vous apporte à que le contenu est sur PHP dans l’expansion que xhprof comment analyser les performances du projet, il est une certaine valeur de référence, il y a qu'un besoin d’amis peut faire référence, je l’espère pour vous aider.

I. CONTEXTE

Projet est sujet à aller en ligne, à utiliser certains outils pour analyser la stabilité et l’efficacité du Code, pensez à l’équipe précédente, utilisé dans l’extension xhprof, en raison du changement du nouvel ordinateur, donc besoin de recompiler cette extension, l’installation et le processus de diagnostic réel est entièrement documentée, afin qu’ils puissent examiner et aider plus de lecteurs.

Deuxièmement, les étapes d’utilisation

  1. Installation d’extensions

  2. Configuration des extensions

  3. Analyse des tests

III. Installation

Xhprof étendue PHP n’apporte pas son propre, besoin l’auteur de l’installer seul, après installation peut être utilisée, l’auteur ici en utilisant la méthode d’installation de source code, le processus d’installation est la suivante

3.1 télécharger Source code

Xhprof officielles PHP PECL ci-dessus a été relativement ancien, version PHP de l’auteur pour PHP7.1 C’est pourquoi, la nécessité de télécharger le code source relativement nouveau par GitHub xhprof, commandes de référence sont les suivantes

git clone https://github.com/longxinH/xhprof

3.2 détection environnement

Allez dans le dossier compilé, reportez-vous à la commande

cd xhprof/extension/

Maintenant, l’auteur a besoin de compiler le code source, avant la compilation peut utiliser Phpze pour détecter l’environnement de PHP, la commande de référence est la suivante :

phpize

Retourne les résultats suivants

Configuring for:PHP Api Version:         20160303Zend Module Api No:      20160303Zend Extension Api No:   320160303

3.3 compiler et installer

Générer des Makefile pour se préparer à la prochaine compilation

./configure

Retourne les résultats suivants

creating libtoolappending configuration tag "CXX" to libtoolconfigure: creating ./config.statusconfig.status: creating config.hconfig.status: config.h is unchanged

Lancer la compilation et l’installer

make && make install

Retourne les résultats suivants

Build complete.Don't forget to run 'make test'.Installing shared extensions:     /usr/local/Cellar/php@7.1/7.1.19/pecl/20160303/

D’après les informations en retour, vous pouvez voir que l’installation est terminée et que l’emplacement où le fichier d’extension est stocké est affiché

IV. Configuration

Après la compilation et l’installation de code source, l’auteur doit également faire une configuration simple du dossier de configuration de PHP et le Xhprof, le processus de fonctionnement est le suivant

4.1 trouver l’emplacement de fichier de configuration

Pour modifier la configuration de PHP, vous devez d’abord savoir où est le fichier de configuration, où vous pouvez afficher l’emplacement du fichier de configuration par le biais de commandes PHP, avec la commande suivante :

php --ini

Après l’exécution de la commande, les résultats sont retournés comme suit

Configuration File (php.ini) Path: /usr/local/etc/php/7.1Loaded Configuration File:         /usr/local/etc/php/7.1/php.iniScan for additional .ini files in: /usr/local/etc/php/7.1/conf.dAdditional .ini files parsed:      /usr/local/etc/php/7.1/conf.d/ext-opcache.ini

Dans le résultat, vous pouvez voir le chemin d’accès de plusieurs fichiers de configuration, et ce que j’ai besoin est un second fichierphp.ini

Afficher l’emplacement de stockage de répertoire étendu, la référence de commande est la suivante

cat /usr/local/etc/php/7.1/php.ini | grep extension_dir

Retourne les résultats suivants

extension_dir = "/usr/local/lib/php/pecl/20160303"; extension_dir = "ext"; Be sure to appropriately set the extension_dir directive.;sqlite3.extension_dir =

4.2 modification de la configuration

Dans les résultats renvoyés, vous constatez que l’emplacement du répertoire de stockage prolongé est la suivante

/usr/local/lib/php/pecl/20160303

Maintenant vous devez copier l’extension xhprof que vous juste de compiler dans le répertoire avec la commande suivante

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/

Modifiez le fichier de configuration par le biais de l’éditeur Vim, avec la commande suivante

vim  /usr/local/etc/php/7.1/php.ini

Ajouter la configuration de la xhprof à la fin du fichier de configuration et personnaliser une configuration de référence de fichier source pour sauver la build Xhprof comme suit

[xhprof]extension=xhprof.soxhprof.output_dir=/data/www/xhprof/save_output_dir

4.3 redémarrage prend effet

Après l’enregistrement, l’auteur redémarre php-fpm laisse sa configuration prennent effet, la commande de redémarrage est consultable par le biais de la commande de l’infusion, la référence de commande est la suivante :

brew info php@7.1

Une fois la commande exécutée, vous pouvez voir les informations suivantes dans les informations renvoyées

To have launchd start php@7.1 now and restart at login:  brew services start php@7.1Or, if you don't want/need a background service you can just run:  php-fpm

Par conséquent, l’auteur construit le redémarrage PHP-FPM commande comme suit :

brew services restart php@7.1

Lorsque le redémarrage est terminé, les résultats sont retournés comme suit

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)

4.4 validation Installation

Vérifier maintenant que l’extension xhprof est installée et que la commande de référence est comme suit

php -m | grep xhprof

Une fois la commande exécutée, le résultat de l’extension d’une installation réussie s’affiche Xhprof, comme illustré dans la

V. essais

Après l’opération ci-dessus, l’auteur a correctement installé et configuré, maintenant besoin d’utiliser le code PHP pour vérifier l’effet de l’analyse de xhprof

5.1 création d’un hôte virtuel

Tout d’abord créer un hôte virtuel afin que les utilisateurs peuvent accéder à l’accès via le navigateur, créer un hôte virtuel il fallait avoir un répertoire racine et modifier le fichier de configuration Nginx, comme suit :

5.1.1 créer un catalogue de projet

Créer un répertoire racine du projet avec la commande suivante

mkdir -p /Users/song/mycode/work/test

Après que la création est réussie, l’auteur doit copier une partie du code précédemment abaissé par git pour le répertoire racine du projet, la commande de référence est la suivante

cp -r xhprof/xhprof_html /Users/song/mycode/work/test/cp -r xhprof/xhprof_lib /Users/song/mycode/work/test/

5.1.2 éditer le fichier de configuration

Ajouter des fichiers de configuration, commandes de référence

/usr/local/etc/nginx/nginx.conf

Ajoutez un fichier de configuration 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;        }    }

Dans/etc/hostsAjouter une ligne d’enregistrements analysés dans le fichier et le dossier se lit comme suit :

127.0.0.1 test.localhost

5.2 créer un nouveau code de test

Dans le dépôt Git.examplesDossier, il y a déjà un code de démonstration, mais l’annotation de ce code est en anglais, et méthode de composition n’est pas facile pour l’auteur de comprendre, donc l’auteur re-édité ce fichier, reportez-vous aux étapes de la commande suivante

Créer un nouveau fichier PHP avec vim

vim /Users/song/mycode/work/test/test.php

Ajoutez le code suivant au fichier

≪ ? Php / / charge les fichiers requis include_once «. / xhprof_lib/utils/xhprof_lib.php » ; include_once « ./xhprof_lib/utils/xhprof_    Runs.php « ; //arbitrarily définir un test de fonction de fonction ($max) {pour ($idx = 0 ; $idx le $max de la $IDX + +) {echo ' ; }} //Defines la méthode de test A function () {test (1000,5000) ;} Commencer l’analyse de Xhprof_enable () ; //function un () à analyser ; analyse //end $xhprof_data = Xhprof_disable () ; //instantiation Xhprof classe $xhprof_runs = new XHProfRuns_ Par défaut () ; //Gets le courant de la page résultats de l’analyse $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 » ;

Après avoir enregistré le code, accéder à l’adresse URL correspondante via votre navigateur, comme indiqué dans l’adresse URL ci-dessous

http://test.localhost/xhprof/test.php

5.3 résultats analyse

Post-exécution résultats, tels que

Après vous pouvez voir une adresse URL dans la page, copiez et ouvrir l’adresse URL, vous pouvez voir les résultats de l’analyse du présent code, comme illustré dans la

Il y a une liste sur la page qui affiche combien de temps chaque méthode consomme et si vous sentez que la liste n’est pas assez claire, cliquez sur leView Full CallgraphLiens peut générer une photo directement, comme illustré dans la

Dans le diagramme, il est clair que la durée d’exécution est consommée sur la méthode d’essai, donc l’auteur peut être ciblé pour optimiser cette méthode.

Nous contacter

Le contenu de cette page provient d'Internet et ne reflète pas l'opinion d'Alibaba Cloud ; les produits et services mentionnés sur cette page n'ont aucune relation avec Alibaba Cloud. Si le contenu de la page vous semble problématique, veuillez nous écrire un courriel, nous traiterons le problème dans les 5 jours suivant la réception de votre message.

Si vous constatez des cas de plagiat de la part de la communauté, veuillez envoyer un courriel à : info-contact@alibabacloud.com et fournir des preuves pertinentes. Un membre de notre équipe vous contactera dans les 5 jours ouvrables.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.