Seite wählen

Wenns mal wieder länger dauert – PHP Profiling mit KCachegrind

von | Jul 28, 2011 | Technology, Development

Beim Entwickeln von Software gilt oft der Grundsatz „Arbeitszeit ist teurer als Rechenzeit“. Was bringt es mir, wenn eine nicht performancekritische Anfrage 100ms schneller ausgeführt wird, das Projekt durch den Optimierungsaufwand aber in Verzug kommt?
Das Problem hierbei ist allerdings die Definition von „performancekritisch“. Projekte wachsen, Anwendungsumgebungen werden größer und was Anfangs eine „nicht kritische“ Methode war, bremst jetzt auf einmal die komplette Anwendung. In so einem Fall das Performanceleck zu finden kann schwierig werden – bei PHP können einem allerdings Tools wie XDebug und KCachegrind helfen.
Das Setup ist sehr einfach, einfach php5-xdebug installieren, in der xdebug.ini (oder der php.ini)
xdebug.profiler_enable=1
hinzufügen, ggf. den Webserver neu Starten und schon werden cachegrind Files im /tmp erzeugt.
Zum visualisieren der Dateien kann man jetzt das Tool KCachegrind (oder am Mac z.b. QCachegrind) verwenden – schon sieht man schön übersichtlich, welche Methoden wieviel Zeit einnehmen (absolut oder relativ zur Ausführungszeit) und wo/wie oft diese aufgerufen wurden, usw.
Ausprobieren lohnt sich – gerade wenn man fremde Frameworks verwendet findet man so schnell Performancefallen ohne sich lang durch den Code zu wühlen.

0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Mehr Beiträge zum Thema Technology | Development

Kibana Sicherheits-Updates: CVSS:Critical

Und täglich grüßt das Murmeltier. Nein nicht ganz. Heute ist es  aus der Elastic Stack Werkzeugkiste Kibana, für das es ein wichtiges Sicherheits-Update gibt. Es besteht auf jeden Fall Handlungsbedarf! IMHO auch wenn ihr die "Reporting" Funktion deaktiviert habt. Der...