Profiling von Anwendungen mit XHProf

Das Profiling in der Programmierung analysiert im Allgemeinen das Laufzeitverhalten von Software. Auch bei Webseiten können durch ineffektive Programmierung der eingesetzten Software, Erweiterungen und/oder Plugins Ladezeitprobleme auftreten und ein Profiler hilft dabei Problembereiche aufzudecken.

Durch die Analyse und den Vergleich der laufenden Skripte miteinander, meist durch das Messen der Geschwindigkeit und des genutzten Arbeitsspeichers auf dem Webserver, können so Bereiche isoliert werden, die einer genaueren Betrachtung seitens des Programmierers oder auch des Betreibers bedürfen. Moderne Profiler können dabei auch viele Nebenstränge abarbeiten und zeigen die Prozesse an, die nicht direkt zur Darstellung einer Webseite beitragen; beispielsweise wenn Plugins geladen werden, die erst nach dem Login erforderlich sind etc.

Dieses Profiling birgt aber auch Probleme. Durch das parallele Mitlaufen mit der Anwendung wird diese beeinflusst und im Allgemeinen verlangsamt sich deren Ausführungsgeschwindigkeit. Je nachdem, ob nur einzelne Bereiche oder der komplette Aufbau einer Seite analysiert werden, entstehen große Datenmengen und ein Profiler sollte nicht dauerhaft zum Einsatz kommen. Sinnvoll ist hierbei eher eine regelmäßige Analyse, die in festen Zeitabständen erfolgt.

Profiler im Einsatz

Im Bereich der Webserver und für PHP ist Xdebug wohl der Bekannteste und auch das am weitesten verbreitete Analysewerkzeug. Es existieren auch zahlreiche Forks für Xdebug. Ein Fork ist eine Abspaltung in einen eigenen Entwicklungszweig und damit in ein nachfolgendes oder ergänzendes Projekt.

Daneben existieren natürlich zahlreiche weitere Werkzeuge und Pakete, wovon wir an dieser Stelle eines kurz vorstellen möchten: XHProf

XHProf wurde von Facebook entwickelt und 2009 als Opensource an die Community übergeben. Leider gab es seitdem keine aktive Weiterentwicklung mehr, so dass die aktuelle Version 0.9.2 eigentlich noch als Betaversion markiert ist.

Auf diesen Profiler wirklich aufmerksam geworden sind wir übrigens auf dem letzten TYPO3Camp in Stuttgart (T3CS12), auf welchem Steffen Gebert einen interessanten Vortrag darüber gehalten und mit einer Live-Demo an einer TYPO3-Seite abgerundet hat.

Man kann Standard-PHP-Funktionen vom Profiling ebenso wie einzelne Funktionen im Skript ausschließen und die Ergebnisse via Diff-Ansicht miteinander vergleichen. Die Ausgabe enthält die aufgerufenen Funktionen sowie die Anzahl der Calls mit und ohne Unterfunktionen, die benötigte CPU-Zeit sowie den Speicherverbrauch der jeweiligen Methode.

XHProf kann, wie auch Xdebug, in allen unseren Tarifen mit PHP-Unterstützung selbst installiert werden. Ein SSH-Account ist grundsätzlich zu empfehlen, um die erhältlichen PEAR-Pakete recht einfach einzurichten.

Unsere Kunden finden eine Anleitung zur Installation von XHProf und zur Verwendung im Forum unter:

https://www.df.eu/forum/threads/66451-Anleitung-XHProf-installieren

End of article

Dietmar

Über den Autor

Dietmar

Dietmar ist seit 2005 bei domainFACTORY in wechselnden Aufgabenbereichen tätig. Seit 2013 unterstützt er als "Spezialist Qualitätssicherung Web" die Kollegen in der Entwicklungsabteilung bei allen Themen rund um Quality Assurance / Testing. Dabei kommt ihm die jahrelange Erfahrung im direkten und indirekten Kundensupport und der Begleitung bei der Einführung unseres ResellerProfessional-Systems zu Gute. Auch für viele Kollegen ist er bei Fragen dazu oder sehr alten Tarif-Konstellationen noch immer gerne eine Anlaufstelle.

1 Kommentar

Bitte füllen Sie das Captcha aus : *

Reload Image

Die von Ihnen hier erhobenen Daten werden von der domainfactory GmbH zur Veröffentlichung Ihres Beitrags in diesem Blog verarbeitet. Weitere Informationen entnehmen Sie bitte folgendem Link: www.df.eu/datenschutz