Werkzeuge für Analyse und Leistungssteigerung

PHP Profiler im Vergleich – Teil 3: Z-Ray
Kommentare

Profiler wie Xdebug oder Facebooks XHProf sind mächtige Werkzeuge. Letztes Jahr haben namhafte Firmen wie Qafoo, Zend und SensioLabs ihre eigenen Profiler veröffentlicht, die das Analysieren von PHP-Anwendungen revolutionieren sollten. Engpässe oder ineffizienter Code gehören somit der Vergangenheit an. Im Rahmen einer „PHP Profiler“-Woche nehmen wir dieser fünfteiligen Artikelserie fünf Profiler unter die Lupe, um herauszufinden, welcher Profiler den jeweiligen Bedürfnissen am nächsten kommt. Heute: Z-Ray

Mit Profilern wird die Leistungsfähigkeit von PHP-Anwendungen analysiert. So lassen sich z. B. SQL-Abfragen in einer Schleife oder ein nicht aktiver Cache schnell aufspüren. Nach einer Einführung und einem Fokus auf Xdebug in Teil 1, der Vorstellung von XHProf in Teil 2 ist heute Z-Ray an der Reihe.

Z-Ray

Zend lieferte seinen Profiler Z-Ray erstmals im Juli 2014 mit Zend Server 7 aus. Mit Zend Server 8 wurde eine Extension-Schnittstelle implementiert, und mit Zend Server 8.1 wird es zusätzlich eine Plug-in-Galerie geben. Plug-ins sind nämlich die neuen Extensions. Dort gibt es neben den offiziellen Plug-ins auch die der Community – und davon gibt es wirklich viele. Von bekannten Frameworks wie Zend Framework, Symfony, Laravel und Doctrine über Applikationen wie WordPress, Magento oder Drupal bis hin zu speziellen Bereichen wie OPcache, Redis oder Composer gibt es alles, was das Herz begehrt. Man kann sie direkt aus der Galerie heraus installieren; die Zend-Server-Demoseite bietet eine Livevorschau der offiziellen Plug-ins.

Z-Ray funktioniert etwas anders als die anderen Profiler. Die umfangreichen Ergebnisse des Profilings befinden sich in einer Toolbar und werden in Echtzeit direkt im Browser auf der Seite dargestellt. Im Development Profile von Zend Server wird Z-Ray automatisch aktiviert. Man muss also abgesehen von Zend Server nichts weiter installieren. Weiterhin steht ein Docker Image für Zend Server zur Verfügung – auch wenn es dem Docker-Ansatz etwas widerspricht.

Abb. 1: Z-Ray-Profiler im Einsatz

Abb. 1: Z-Ray-Profiler im Einsatz

Callers, Callees und einen Call Graph sucht man vergeblich. Zwei Requests lassen sich leider auch nicht miteinander vergleichen. Dennoch ist die Toolbar vollgestopft mit Informationen über die Anzahl der Funktionsaufrufe, Speicherverbrauch, CPU-, Datenbank-, Netzwerk- und I/O-Zeit (Abb. 1). Datenbank-Queries werden vollständig angezeigt, und es stehen umfangreiche Filter- und Sortiermöglichkeiten in den einzelnen Tabs bereit. Doch damit nicht genug, der Inhalt der PHP-Superglobal-Variablen, Request-/Response-Header, POST-Daten und der Inhalt des Response Bodys werden dargestellt. Sobald PHP-Fehler wie z. B. Undefined Index auftreten, werden sie im entsprechenden Tab angezeigt. Da sicherlich mit dem PHP Error Level E_ALL | E_STRICT gearbeitet wird, kann es hier und da mal zu einem Fehler kommen, der dann sofort behoben wird. Je nach Plug-in kommen zusätzliche Reiter dazu, die weitere Informationen bieten.

Die Plug-in-Schnittstelle ist wirklich bemerkenswert. Plug-ins sind in reinem PHP geschrieben; somit können Daten auf einfachste Art und Weise individuell gesammelt und aufbereitet werden, was eine enorme Flexibilität bietet. Dank Zend Server lassen sich Monitor Events definieren, die dann ggf. bei einem Seitenaufruf ausgelöst und in Z-Ray angezeigt werden. Natürlich kann Z-Ray auch Mobile-, CLI- und API-Requests aufzeichnen. Alle Daten befinden sich lokal auf der Zend-Server-Instanz und nicht auf einem externen Server. Z-Ray kann auch im Produktivsystem zum Einsatz kommen und ist dort natürlich nur für bestimmte Personen zugänglich. Vertrauliche Daten kann man durch Filter vom Ergebnis ausschließen. Für Zend Certified PHP Engineers ist Zend Server mit Z-Ray in der Entwicklung kostenlos. Ansonsten steht eine 30 Tage lange Testphase zur Verfügung.

In Teil 4 dieser Artikelserie werfen wir einen Blick auf die PHP Profiler Blackfire und Tideways und fassen die Ergebnisse des Fünfervergleichs in einer hilfreichen Vergleichsmatrix zusammen.

 

 

PHP Magazin

Entwickler MagazinDieser Artikel ist im PHP Magazin erschienen. Das PHP Magazin deckt ein breites Spektrum an Themen ab, die für die erfolgreiche Webentwicklung unerlässlich sind.

Natürlich können Sie das PHP Magazin über den entwickler.kiosk auch digital im Browser oder auf Ihren Android- und iOS-Devices lesen. In unserem Shop ist das Entwickler Magazin ferner im Abonnement oder als Einzelheft erhältlich.

Aufmacherbild: Workshop scene via Shutterstock / Urheberrecht: donatas1205

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -