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
Installation von Erweiterungen
Konfiguration von Erweiterungen
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.