Frage

Ich mag einen Weg finden, um zu bestimmen, wie lange jede Funktion in PHP, und jede Datei in PHP laufen finden. Ich habe eine alte Legacy-PHP-Anwendung, die ich versuche, die „Störstellen“ in zu finden und so würde Ich mag zu lokalisieren, die Routinen und Seiten sind eine sehr lange Zeit, objektiv zu laden.

Gibt es irgendwelche vorgefertigten Tools, die dies ermöglichen, oder bin ich fest mit micro und den Aufbau meiner eigenen Profilierung Rahmen?

War es hilfreich?

Lösung

Ich habe tatsächlich einige Optimierungsarbeiten der vergangenen Woche getan. XDebug ist in der Tat der Weg zu gehen.

Aktivieren Sie einfach als Erweiterung (aus irgendeinem Grund nicht mit ze_extension auf meinem Windows-Rechner arbeiten), Setup-Datei php.ini mit xdebug.profiler_enable_trigger = On und rufen Sie Ihren normalen Urls mit XDEBUG_PROFILE = 1 entweder als get oder ein post-Variable, die sehr Anfrage profilieren. Es gibt nichts einfacher!

Auch kann ich wirklich reccommend webgrind , ein webbasiertes (php) Google Summer of Code Projekt, das Ihre Debug-Output-Dateien lesen und analysieren kann!

Andere Tipps

Hier ist eine schöne Spitze.

Wenn Sie XDebug benutzen, um Ihre PHP zu profilieren, die profiler_trigger und nutzen diese in einem Bookmarklet eingerichtet, um die XDebug Profiler auszulösen;)

javascript:if(document.URL.indexOf('XDEBUG_PROFILE')<1){var%20sep=document.URL.indexOf('?');sep%20=%20(sep<1)?'?':'&';window.location.href=document.URL+sep+'XDEBUG_PROFILE';}

werfen Sie einen Blick in xdebug , die Profilierung in-Tiefe erlaubt. Und hier ist eine Erklärung , wie xdebug zu verwenden.

  

Xdebug des Profiler ist ein leistungsfähiges Werkzeug   das gibt Ihnen die Möglichkeit, zu analysieren   Ihre PHP-Code und bestimmen   Engpässe oder im Allgemeinen sehen die   Teile des Codes sind langsam und konnte   verwenden, um einen Geschwindigkeitsschub. Der Profiler in   Xdebug 2 gibt Informationen Profilierungs   in Form eines cachegrind kompatibel   Datei.

Ein großes Lob an SchizoDuckie erwähnen Webgrind . Dies ist das erste ich habe davon gehört. Sehr nützlich (+1).

Sie können aber verwenden kcachegrind auf Linux oder seiner geringeren Derivat WinCacheGrind . Diese beiden Anwendungen werden xdebug Profiler Ausgabedateien und zusammenfassen sie für Ihre Sehvergnügen lesen.

Ich sah einmal ein Bildschirm-Cast für Zend Core . Sieht ziemlich gut, aber es tatsächlich kostet Geld, ich weiß nicht, ob das ein Problem für Sie ist.

XDebug ist schön, aber es ist nicht so einfach, IMO zu verwenden oder Setup.

Der Profiler in Zend Studio gebaut ist sehr einfach zu bedienen. Sie drücken Sie einfach auf einen Knopf auf einer Browser-Toolbar und BAM Sie Ihren Code Profil haben. vielleicht nicht so indepth als Cachegrind Dump ts, aber es ist immer gut genug für mich.

Sie müssen tun, um Setup zu Zend Platform, aber das ist einfach und kostenlos für die Entwicklung verwenden - Sie würden immer noch, obwohl für die Zend Studio Lizenz bezahlen.

xdebug die Profilierungsfunktionen sind ziemlich gut. Wenn Sie es erhalten, die Ausgabe in valgrind-Format zu speichern, können Sie dann so etwas wie KCachegrind oder WinCacheGrind verwenden Sie den Anruf-Diagramm zu sehen, und wenn Sie eine visuelle Art von Person sind, trainieren leichter, was los ist.

Neben mit ernsthaft leistungsstarke Echtzeit-Debugging-Funktionen, PhpED von NuSphere (www.nusphere.com) verfügt über einen eingebauten in Profiler, die mit einem einzigen Klick aus der IDE ausgeführt werden können.

Wenn Sie die xdebug Erweiterung installieren können Sie es einrichten ausführen Profile exportieren, dass Sie in WinCacheGrind (unter Windows) lesen kann. Ich kann nicht den Namen des App erinnert, dass die Dateien auf Linux liest.

Die einfachste Lösung Zend Profiler zu verwenden ist, brauchen Sie nicht Zend Platform zu verwenden ist, können Sie es direkt von Ihrem Browser ausgeführt werden kann, ist es ganz richtig ist und hat die meisten Funktionen, die Sie brauchen, und es ist in der Zend Studio integriert

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top