[PHP] Zeitverbrauch messen

Loopo

Admiral
Dabei seit
Juli 2002
Beiträge
7.610
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:

Loopo

Admiral
Ersteller dieses Themas
Dabei seit
Juli 2002
Beiträge
7.610
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:

[UPS]Erazor

Lieutenant
Dabei seit
Sep. 2002
Beiträge
753
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().
 

Loopo

Admiral
Ersteller dieses Themas
Dabei seit
Juli 2002
Beiträge
7.610
hehe die Zeilen kenne ich von wo ;) hab entsprechend auch schon nachgeguckt und es war nicht da - hilft mir aber auch nicht weiter :rolleyes:
 

[UPS]Erazor

Lieutenant
Dabei seit
Sep. 2002
Beiträge
753
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.
 

Loopo

Admiral
Ersteller dieses Themas
Dabei seit
Juli 2002
Beiträge
7.610
na das Teil muss ja irgendwie zum Laufen zu bringen sein unter Apache 2 :rolleyes:
 

ag3nt

Lieutenant
Dabei seit
Okt. 2002
Beiträge
689
was mit noch spontan einfällen würde: sind die benutzerrechte korrekt gesezt ?
 

Loopo

Admiral
Ersteller dieses Themas
Dabei seit
Juli 2002
Beiträge
7.610
im Error-Log kann ich nichts besonderes erkennen :rolleyes:
 

Loopo

Admiral
Ersteller dieses Themas
Dabei seit
Juli 2002
Beiträge
7.610
hat wer neue Erkenntnisse oder kennt ein Tool, dass mit Apache 2 läuft ?
 

</Life>

Lt. Junior Grade
Dabei seit
Apr. 2004
Beiträge
342
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.';
 

Loopo

Admiral
Ersteller dieses Themas
Dabei seit
Juli 2002
Beiträge
7.610
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:
 

</Life>

Lt. Junior Grade
Dabei seit
Apr. 2004
Beiträge
342
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...
 
Top