Erweiterte Xhprof in PHP wie zum Analysieren der Leistung eines Projekts

Quelle: Internet
Autor: Benutzer
Dieser Artikel bringt Ihnen der Inhalt über PHP in den Ausbau ist Xhprof wie zum Analysieren der Leistung das Projekt dort einen bestimmten Referenzwert ist es, dass ein Bedarf an Freunde zu finden, ich hoffe, Ihnen zu helfen.

I. HINTERGRUND

Projekt geht es um online gehen, wollen einige Tools verwenden, um die Stabilität und Effizienz des Codes zu analysieren, denken Sie an das bisherige Team verwendet in der Xhprof Verlängerung, wegen des Wechsels des neuen Computers, so müssen diese Erweiterung neu zu kompilieren, die Installation und die tatsächliche Problembehandlungsprozess ist vollständig dokumentiert, so dass sie überprüfen können und helfen, mehr Leser.

Zweitens die Bedienungsschritte

  1. Installation von Erweiterungen

  2. Konfiguration von Erweiterungen

  3. Testauswertung

III. Installation

Xhprof erweitert PHP bringt keine eigene, Notwendigkeit den Autor, es allein zu installieren nach Installation verwendet werden kann, der Autor hier mit der Source Code Installationsmethode, die Installation ist wie folgt

3.1 Quellcode herunterladen

Xhprof in PHP PECL offiziellen oben schon relativ alt, des Autors PHP-Version für PHP7.1 darum, die Notwendigkeit zum download auf GitHub Xhprof relativ neuen Quellcode, Referenz-Befehle sind wie folgt

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

3.2 Erkennung Umwelt

Öffnen Sie den kompilierten Ordner, beziehen sich auf den Befehl

cd xhprof/extension/

Jetzt der Autor muss um den Quellcode zu kompilieren, bevor kompilieren Phpze verwenden kann, um die Umgebung von PHP zu erkennen, ist der Referenz-Befehl wie folgt:

phpize

Die folgenden Ergebnisse zurück

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

3.3 kompilieren und installieren

Zur Vorbereitung der nächsten Kompilierung Makefile zu erzeugen

./configure

Die folgenden Ergebnisse zurück

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

Starten Sie die Zusammenstellung und installieren Sie es

make && make install

Die folgenden Ergebnisse zurück

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

Von der Rückkehr Informationen können Sie sehen, dass die Installation abgeschlossen ist und der Speicherort für die Datei-Erweiterung angezeigt wird

IV. Konfiguration

Nach dem Kompilieren und installieren den Quellcode, der Autor muss auch einige einfache Konfiguration der PHP-Konfiguration-Ordner und die Xhprof machen, der Vorgang läuft wie folgt

4.1 finden Sie den Speicherort der Konfiguration-Datei

Um die PHP-Konfiguration zu ändern, müssen Sie zuerst wissen, wo die Konfigurationsdatei ist, wo Sie den Speicherort der Konfigurationsdatei durch PHP-Befehle, mit dem folgenden Befehl anzeigen können:

php --ini

Nach den Befehl ausführen, werden die Ergebnisse wie folgt zurückgegeben.

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

Das Rückgabeergebnis finden Sie den Weg der mehrere Konfigurationsdateien, und was ich brauche, ist eine zweite Dateiphp.ini

Anzeigen den erweiterten Verzeichnisspeicherort, der Referenz-Befehl lautet wie folgt

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

Die folgenden Ergebnisse zurück

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 Änderung der Konfiguration

Die zurückgegebenen Ergebnisse sehen Sie, dass die längere Lagerung Verzeichnis wie folgt ist

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

Sie müssen nun die Xhprof-Erweiterung, die Sie gerade kompiliert in das Verzeichnis mit dem folgenden Befehl Kopieren

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/

Bearbeiten Sie die Konfigurationsdatei durch den Vim Editor, mit dem folgenden Befehl

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

Fügen Sie die Konfiguration der Xhprof am Ende der Konfigurationsdatei hinzu und passen Sie einer Quelle Datei Referenzkonfiguration um Xhprof Build wie folgt zu speichern an

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

4.3 Neustart tritt in Kraft

Nach dem Speichern der Autor Neustarts Php-fpm lassen seine Konfiguration wirksam, der Neustart-Befehl über den Brauen Befehl eingesehen werden, die Referenz-Befehl lautet wie folgt:

brew info php@7.1

Nachdem der Befehl ausgeführt wird, sehen Sie die folgende Informationen in die zurückgegebenen Informationen

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

Deshalb baut der Autor den Neustart PHP-FPM-Befehl wie folgt:

brew services restart php@7.1

Wenn der Neustart abgeschlossen ist, werden die Ergebnisse wie folgt zurückgegeben.

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 Validierung Installation

Nun prüfen Sie, ob die Xhprof-Erweiterung installiert ist und, dass der Verweis-Befehl wie folgt

php -m | grep xhprof

Nachdem der Befehl ausgeführt wird, wird das Rückgabeergebnis der erfolgreichen Installation Erweiterung Xhprof, anzeigen, wie in der

V. testen

Nach den obigen Vorgang der Autor wurde erfolgreich installiert und konfiguriert, müssen nun PHP-Code verwenden, um die Analyse-Wirkung der Xhprof überprüfen

5.1 Erstellen eines virtuellen Hosts

Erstellen Sie zunächst einen virtuellen Host, so dass Benutzer können den Zugriff über den Browser zugreifen, virtuellen Host müssen ein Root-Verzeichnis zu erstellen und die Nginx-Konfiguration-Datei wie folgt bearbeiten:

5.1.1 einen Projektkatalog erstellen

Ein Projekt-Root-Verzeichnis zu erstellen, mit dem folgenden Befehl

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

Nachdem die Einrichtung erfolgreich war, der Autor muss der Code zuvor abgerissen von Git das Projekt Root-Verzeichnis kopieren, die Referenz-Befehl lautet wie folgt

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

5.1.2 bearbeiten Sie Konfigurationsdatei

Konfigurationsdateien, Referenz Befehle hinzufügen

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

Fügen Sie eine Konfigurationsdatei wie folgt

    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;        }    }

In/etc/hostsDie Datei eine Zeile der analysierten Datensätze hinzufügen und der Datensatz lautet wie folgt:

127.0.0.1 test.localhost

5.2 einen neuen Testcode erstellen

Im Git-Repository.examplesOrdner, gibt es bereits ein Demo-Code, aber die Anmerkung dieses Codes ist in Englisch und Schriftsatz Methode ist nicht einfach für den Autor zu verstehen, so dass der Autor dieser Datei neu bearbeitet, beziehen sich auf die Schritte des folgenden Befehls

Erstellen Sie eine neue PHP-Datei mit vim

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

Fügen Sie den folgenden Code in die Datei

≪? Php / / lädt die benötigten Dateien Include_once ". / xhprof_lib/utils/xhprof_lib.php"; Include_once "./xhprof_lib/utils/xhprof_    Runs.php "; //arbitrarily definieren einen Funktion Funktionstest ($max) {für ($idx = 0; $idx der $max von der $IDX + +) {Echo"; {}} //Defines Test Methode Funktion A () {Test (1000,5000);} Starten Sie Analyse (Xhprof_enable), //function (ein) analysiert werden, //end Analyse $xhprof_data = Xhprof_disable (); //instantiation Xhprof Klasse $xhprof_runs = new XHProfRuns_ (Standard), //Gets der aktuellen Seite Analyseergebnisse $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";

Nachdem Sie den Code zu speichern, zugreifen Sie die entsprechende URL-Adresse über Ihren Browser, wie in der unten angegebenen URL-Adresse

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

5.3 Ergebnisermittlung

Post-Ergebnisse, wie z. B. laufen

Nachdem Sie eine URL-Adresse auf der Seite sehen können, kopieren und öffnen Sie die URL-Adresse, Sie sehen die Ergebnisse der Analyse des Codes, wie entnehmen Sie bitte der

Gibt es eine Liste auf der Seite, die jede Methode, wie viel Zeit zeigt verbraucht, und wenn Sie das Gefühl, dass die Liste nicht klar genug, klicken Sie auf dieView Full CallgraphLinks erzeugen ein Bild direkt, wie in der

Im Diagramm ist es klar, dass die Ausführungszeit auf die Testmethode verbraucht wird, so dass der Autor ausgerichtet werden kann, um diese Methode zu optimieren.

Kontaktiere uns

Die Inhaltsquelle dieser Seite ist aus dem Internet, und vertritt nicht die Meinung von Alibaba Cloud; auf dieser Seite erwähnte Produkte und Dienstleistungen haben keine Beziehung zu Alibaba Cloud. Wenn der Inhalt der Seite Ihrer Meinung nach verwirrend ist, schreiben sie uns bitte eine E-Mail. Wir werden das Problem innerhalb von 5 Tagen nach Erhalt Ihrer E-Mail bearbeiten.

Wenn Sie Fälle von Plagiaten aus der Community feststellen, senden Sie bitte eine E-Mail an info-contact@alibabacloud.com und legen Sie entsprechende Beweise vor. Ein Mitarbeiter wird Sie innerhalb von 5 Werktagen kontaktieren.

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.