So verwenden Sie die XHProf-Analyse in PHP7
In diesem Artikel erfahren Sie, wie Sie die xhprof-Analyse in PHP7 verwenden. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.
Dies ist ein reines Dokument. Wenn Sie es in Zukunft benötigen, können Sie es jederzeit zur Analyse nachschlagen, um Codetests und Vergleichsanalysen zu erleichtern.
Erstellen Sie einen virtuellen Docker Testumgebung im Voraus
docker run -it -p 80:80 -v /Users/xxx/Desktop/xhprof:/data phalcon /bin/bash
Kopieren Sie den Code
1. Installieren Sie xhprof
Es gibt einige xhprofs, die PHP7 unterstützen.
1.1 Ziehen Sie das Projekt herunter
git clone https://github.com/longxinH/xhprof.git
Kopieren Sie den Code
1.2 Installieren Sie das Projekt
cd xhprof/extension/ /usr/server/php7/bin/phpize ./configure --with-php-config=/usr/server/php7/bin/php-config make && make install
1.3 Fügen Sie die Erweiterung xhprof.so hinzu
Schließlich müssen wir nach der Ausführung diese SO-Datei in die php.ini-Konfiguration einfügen
Ansicht php.ini-Dateipfad
/usr/server/php7/bin/php --ini Configuration File (php.ini) Path: /usr/server/php7/etc Loaded Configuration File: /usr/server/php7/etc/php.ini Scan for additional .ini files in: /usr/server/php7/etc/php Additional .ini files parsed: (none)
编辑 /usr/server/php7/etc/php.ini [Xhprof] extension=xhprof.so xhprof.output_dir=/data/logs
Starten Sie einfach php-fpm neu.
2. Der Prozess zum Erstellen eines Falls mit xhprof
wird abgekürzt
Wir betten den folgenden Code vor der zu überwachenden Logik ein
\xhprof_enable(); ...... $order = new OrderAdepter(); $result = $order->getUserOrderByOrderNo(123); ...... $xhprof_data = \xhprof_disable(); print_r($xhprof_data);
Ausgabe:
Wir haben festgestellt, dass zwei Funktionen in der xhprof-Erweiterung vorhanden sind wurden aufgerufen, und die Bedeutung des Ausgabewerts
ct stellt die aktuelle Anzahl der Aufrufe dieser Funktion dar. In diesem Fall ist es alles 1 Mal
wt stellt die Ausführungszeit der Funktion dar, in Mikrosekunden Daher stellen wir fest, dass die Informationen, die wir erhalten, nicht sehr groß sind. Beispielsweise achten wir häufig auch auf den belegten Speicher, die CPU und andere Indikatoren
XHPROF_FLAGS_NO_BUILTINS zählt keine integrierten Funktionen, diese Ausgabe kann angezeigt werden. Da die Funktion in unserer Erweiterung ignoriert wurde
- Verwenden Sie es. 3.1 Zu diesem Zeitpunkt müssen wir die xhprof_lib-Bibliothek verwenden.
- Laden wir den xhprof-Quellcode herunter. Zu diesem Zeitpunkt enthält das Verzeichnis bereits Die Ausführung gibt eine Zeichenfolge aus, die wir als Datei verstehen können Identifikator. Wir stellen fest, dass die Methode save_run ausgeführt wird.
\xhprof_enable( XHPROF_FLAGS_MEMORY +XHPROF_FLAGS_CPU +XHPROF_FLAGS_NO_BUILTINS );
Nach dem Login kopieren - Sie erinnern sich noch daran, dass wir während der Erweiterung eine andere Konfiguration eingeführt haben. Ja, unter dem von xhprof.output_dir konfigurierten Pfad (um das Verzeichnis manuell zu erstellen)
Wenn Sie interessiert sind, können Sie es öffnen und einen Blick darauf werfen. Einige der von uns analysierten Informationen sind darin gespeichert.
3.2 Konfigurieren Sie einen separaten Dienst um auf unsere Analyseergebnisse zuzugreifen
Wir verweisen auf das Verzeichnis xhprof_html in unserem xhprof-ProjektIch glaube, Sie verstehen unseren Standpunkt hier. Die Rolle des Projekts in run_id und save_run ist
Bedeutung des Feldnamens: Anzahl der Aufrufe inkl. Wall-Zeit, berechnet in Mikrosekunden in Mikrosekunden. Der Aufruf umfasst die gesamte von der Unterfunktion verbrauchte CPU-Zeit, mit Ausnahme der Ausführungszeit des Teilbaums. Inkl. MemUse umfasst den von der Unterfunktion verwendeten Speicher -Funktionsausführung, gemessen in Bytes Excl.MemUse Der Speicher der Funktionsausführung selbst, in Bytes, der Spitzenwert von Incl.PeakMemUseIncl.MemUse, der Spitzenwert von Excl.PeakMemUseExcl.MemUseDie Spitze Teil ist eine Übersicht über die angeforderten Schnittstellenindikatoren, und im Folgenden wird die spezifische Ausführung jeder aufgerufenen Funktion beschrieben.
Die verbleibenden %-Endungen sind die entsprechenden Proportionen
3.3 [Vollständigen Callgraph anzeigen]
Sie können auch die folgenden zwei Codezeilen zur Installation ausführen
\xhprof_enable(XHPROF_FLAGS_MEMORY + XHPROF_FLAGS_CPU+XHPROF_FLAGS_NO_BUILTINS); ...... $order = new OrderAdepter(); $result = $order->getUserOrderByOrderNo(123); ...... $xhprof_data = \xhprof_disable(); include_once '/data/xhprof-master/xhprof_lib/utils/xhprof_lib.php'; include_once '/data/xhprof-master/xhprof_lib/utils/xhprof_runs.php'; $xhprof_runs = new \XHProfRuns_Default(); $run_id = $xhprof_runs->save_run($xhprof_data, 'your_project'); echo $run_id; //output 5cbf25e21fe9b
yum install -y libpng yum install -y graphviz
Der rote Teil Konzentrieren Sie sich auf den gelben Teil in eine Methode und klicken Sie dann auf [Vollständigen Aufrufgraphen anzeigen], um das Diagramm anzuzeigen
Hier können wir die Composer-Paketreferenz verwenden, um dieselbe Funktion zu erreichen. Es wird empfohlen, das Paket pbweb/xhprof einzuführen.
Empfohlenes Lernen:php-Video-Tutorial
Das obige ist der detaillierte Inhalt vonSo verwenden Sie die XHProf-Analyse in PHP7. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



So installieren Sie die Mongo-Erweiterung in PHP7.0: 1. Erstellen Sie die Mongodb-Benutzergruppe und den Mongodb-Benutzer. 2. Laden Sie das Mongodb-Quellcodepaket herunter und platzieren Sie das Quellcodepaket im Verzeichnis „/usr/local/src/“. Geben Sie das Verzeichnis „src/“ ein. 4. Entpacken Sie das Quellcodepaket. 6. Kopieren Sie die Dateien in das Verzeichnis „mongodb/“.

In PHP5 können wir die Funktion fsockopen() verwenden, um den TCP-Port zu erkennen. Mit dieser Funktion können Sie eine Netzwerkverbindung herstellen und eine Netzwerkkommunikation durchführen. In PHP7 kann die Funktion fsockopen() jedoch auf einige Probleme stoßen, z. B. dass der Port nicht geöffnet werden kann, keine Verbindung zum Server hergestellt werden kann usw. Um dieses Problem zu lösen, können wir die Funktionen socket_create() und socket_connect() verwenden, um den TCP-Port zu erkennen.

So beheben Sie das Problem, dass das Plugin in PHP 7.0 nicht installiert ist: Überprüfen Sie die Plugin-Konfiguration und aktivieren Sie das Plugin. Starten Sie PHP neu, um die Konfigurationsänderungen zu übernehmen. Überprüfen Sie die Berechtigungen der Plugin-Datei, um sicherzustellen, dass sie korrekt sind. Installieren Sie fehlende Abhängigkeiten, um sicherzustellen, dass das Plugin ordnungsgemäß funktioniert. Wenn alle anderen Schritte fehlschlagen, erstellen Sie PHP neu. Weitere mögliche Ursachen sind inkompatible Plugin-Versionen, das Laden der falschen Version oder PHP-Konfigurationsprobleme.

Zu den gängigen Lösungen für PHP-Serverumgebungen gehört die Sicherstellung, dass die richtige PHP-Version installiert ist und relevante Dateien in das Modulverzeichnis kopiert wurden. Deaktivieren Sie SELinux vorübergehend oder dauerhaft. Überprüfen und konfigurieren Sie PHP.ini, um sicherzustellen, dass die erforderlichen Erweiterungen hinzugefügt und korrekt eingerichtet wurden. Starten oder starten Sie den PHP-FPM-Dienst neu. Überprüfen Sie die DNS-Einstellungen auf Auflösungsprobleme.

So installieren und implementieren Sie PHP7.0: 1. Gehen Sie zur offiziellen PHP-Website, um die dem lokalen System entsprechende Installationsversion herunterzuladen. 2. Extrahieren Sie die heruntergeladene ZIP-Datei in das angegebene Verzeichnis. 3. Öffnen Sie das Befehlszeilenfenster und gehen Sie zu das Verzeichnis „E:\php7“ Führen Sie einfach den Befehl „php -v“ aus.

So setzen Sie die Berechtigungen von Unixsocket automatisch nach dem Neustart des Systems. Jedes Mal, wenn das System neu startet, müssen wir den folgenden Befehl ausführen, um die Berechtigungen von Unixsocket: sudo ...

Ursachen und Lösungen für Fehler Bei der Verwendung von PECL zur Installation von Erweiterungen in der Docker -Umgebung, wenn die Docker -Umgebung verwendet wird, begegnen wir häufig auf einige Kopfschmerzen ...

Im Vergleich zu PHP7 bietet PHP8 einige Vorteile und Verbesserungen in Bezug auf Leistung, neue Funktionen und Syntaxverbesserungen, Typsystem, Fehlerbehandlung und Erweiterungen. Die Wahl der zu verwendenden Version hängt jedoch von Ihren spezifischen Anforderungen und Projektumständen ab. Detaillierte Einführung: 1. Leistungsverbesserung: PHP8 führt den Just-in-Time-Compiler (JIT) ein, der die Ausführungsgeschwindigkeit des Codes verbessern kann. 2. Neue Funktionen und Syntaxverbesserungen. PHP8 unterstützt die Deklaration benannter Parameter und optionaler Parameter. Durch die flexiblere Gestaltung von Funktionen werden anonyme Klassen, Typdeklarationen von Eigenschaften usw. eingeführt.
