An der Stelle musst Du halt durchhecheln und durchmessen,
define ('DEBUG', true ); # false zum Abschalten
# …
if ( DEBUG ) {
$debugName = "DER VON DIR VERGEBENE EINDEUTIGE NAME für die Aktion";
$debugStartTime[$debugName] = microtime( true );
}
### Hier Deine Aktionen (Befehlszeilen) ###
if ( DEBUG ) {
error_log("DEBUG: Aktion " . $debugName . " dauerte " . microtime( true ) - $debugStartTime[$debugName] . " Sekunden.");
}
Mit
grep "DEBUG:" /var/log/apache2/error.log
findest Du im Error-Log alle Ausgaben für alle Messungen.
Mit
grep "DER VON DIR VERGEBENE EINDEUTIGE NAME für die Aktion" /var/log/apache2/error.log
kannst Du dann nachsehen wie lange bestimmte Aktionen gedauert haben. Bei Auffälligkeiten musst Du dann tiefer einsteigen und herausfinden warum das so ist. Wie gesagt ist das für Dateisystemzugriffe, Datenbankzugriffe und alle Zugriffe auf externe Ressourcen zu machen. Was dann genau zu tun ist kann man nur im Einzelfall entscheiden und darstellen. Ein "Kochbuch" zu dem Thema mit Abdeckung von nur 5% der wahrscheinlichsten Fälle würde ich mir gut bezahlen lassen…
Update: an verschachtelte Messungen angepasst.