Archive for the ‘memory_get_peak_usage’ tag
Maximaler Arbeitsspeicherverbrauch mehrerer Funktionen
Normalerweise misst man den aktuellen und maximalen Speicherverbrauch eines Scripts mit den Funktionen memory_get_usage() und memory_get_peak_usage(). Nun habe ich allerdings das Problem dass ich 3 Stellen innerhalb eines Scripts auf den maximalen Speicherverbrauch überprüfen muss, mit nur einem Aufruf. Da es keine Reset-Funktion gibt um den Peak-Verbrauch zurückzusetzen (oder übersehe ich was?) ist das also nicht möglich, bzw. nur möglich wenn die zweite Funktion einen höheren Peak-Verbrauch hat als die erste und die dritte einen höheren als die zweite.
Frühzeitig Memory Limit Probleme entdecken
Vorausschauendes oder defensives Programmieren wird häufig vernachlässigt. Man geht allzu häufig davon aus, dass die Umgebung immer die selbe ist und wenn es einmal funktioniert, dann funktioniert es immer. Zum defensiven Programmieren gehört aber nicht nur, alle möglichen Fälle von Parametern abzufangen die jemand in eine Methode reinstopfen könnte, sondern auch die Prüfung der Webservereigenschaften. Denn wer weiß, ob das Projekt in einigen Monaten oder Jahren nicht auf einen anderen Webserver (z.B. IIS -> Apache) umgezogen wird, oder bei der Installation einer neuen PHP-Version vergessen wurde, die php.ini korrekt anzupassen.
Häufig gibt es aus diesem Grund in einem Initialisierungsscript oder einer Bootstrap-Datei Prüfungen zur verwendeten ZendFramework-Version, PHP-Version, register_globals, magic_quotes_gpc, memory_limit usw. Diese sind recht einfach zu schreiben (häufig Dreizeiler), und ich möchte hier noch eine weitere kleine Prüfung vorstellen die sicherlich die wenigsten haben.
Es geht um das Memory-Limit, also den maximalen Speicherverbrauch eines PHP-Scriptes. Diesen kann man auf 3 verschiedene Arten setzen:
Weiterlesen »