[PHP] Zeitverbrauch messen

Loopo

Admiral
Registriert
Juli 2002
Beiträge
7.617
Welche Anwendungen könnt ihr mir empfehlen, um zu messen und darzustellen, welcher Teil vom Code wie lang braucht, um dementsprechend nach Optimierungen zu suchen?
 
Zuletzt bearbeitet:
P.... wie Profiling, genau ;) wenn ich mir was merk, ist es der 1. Buchstabe eines Wortes :p mal angucken ...

Nachtrag: Irgendwie krieg ich XDebug nicht zum Laufen, wenn ich zB die Funktion xdebug_start_profiling() aufrufe, bekomme ich nur "Fatal error: Call to undefined function"

Laut HP muss man ja nur in die php.ini den Verweis auf die DLL via zend_extension_ts="C:/Programme/Server/xdebug-4.3.0-1.2.0.dll"
machen :rolleyes:
 
Zuletzt bearbeitet:
Du kannst ganz einfach nachprüfen, ob xdebug wirklich geladen wurde.

Wenn du mal in phpinfo() schaust, steht da neben dem PHP Logo recht weit oben "Zend Engine 1.3.0 with dies und das with XDebug 1.2.0 by ...."

Wenn das NICHT da steht, dann läuft auch XDebug nicht, ergo kein xdebug_start_profiling().
 
hehe die Zeilen kenne ich von wo ;) hab entsprechend auch schon nachgeguckt und es war nicht da - hilft mir aber auch nicht weiter :rolleyes:
 
1. Server neu gestartet seit dem Editieren in der php.ini?
2. Die richtige php.ini erwischt? (normalerweise unter Windows in C:\Windows bzw. %WINDIR%)
3. Sicher, dass das Modul genau da ist, stimmt der Pfad?

Sorry, sind dumme Fragen. Klingt aber auch nach nem dummen Flüchtigkeitsfehler.
Ansonsten probier mal andere Versionen von dem Xdebug aus. Ich hab für PHP 4.3.2 die 1.3.0 Version genommen. Läuft tadellos. Die 2.0dev will nicht laufen.
Vielleicht kann einfach das Modul nicht geladen werden. Dann gibts nämlich genau die gleichen Symptome.
 
na das Teil muss ja irgendwie zum Laufen zu bringen sein unter Apache 2 :rolleyes:
 
was mit noch spontan einfällen würde: sind die benutzerrechte korrekt gesezt ?
 
im Error-Log kann ich nichts besonderes erkennen :rolleyes:
 
hat wer neue Erkenntnisse oder kennt ein Tool, dass mit Apache 2 läuft ?
 
Naja... Du könntest es auch auf die alte und recht ungenaue Art mit microtime() machen:
PHP:
$profstart=array_sum(explode(' ',microtime()));
// your code
$profend=array_sum(explode(' ',microtime()));
$profduration=$profend-$profstart;
echo 'Code-Abschnitt ausgeführt in '.$profduration.' Sekunden.';
 
es geht mir ja um die Auflistung der einzelnen Prozesse im Ablauf, natürlich könnte ich jede Funktion selbst messen, aber das wäre mir zuviel Aufwand :rolleyes:
 
Hmm... dann lass es einfach? :)
Gerade bei Scriptsprachen bringt Profiling ja eh nicht soooooooo viel... Ob du nun durch die Scriptsprache 2000000 CPU-Zyklen verlierst und 200 durch unoptimierten Code oder ob du nur die 2000000 verlierst... macht irgendwie keinen grossen Unterschied...
 
Zurück
Oben