ich versuche mich gerade ein wenig an Serveroptimierungen und da hatte ich die Idee am Ende der page_tail.php das einzubauen vor "exit;":
Code: Alles auswählen
function bytesUmrechnen($bytes = 0, $mode='')
{
global $board_config;
$size = '';
if( $bytes >= pow(2,10) )
{
if( $bytes >= pow(2,20) )
{
$size = number_format(($bytes / pow( 2,20)), 2);
if ( $size > 8 )
{
$mem_body = "Der Arbeitsspeicher von 8 MB wurde überschritten!!!\r\n";
$mem_body .= "Ausgelöst wurde dies am $mode mit $size MB.\r\n";
$mem_body .= "Verfügbare globale Variablen zu diesem Zeitpunkt waren:\r\n";
foreach ($GLOBALS as $key => $value)
{
if ( is_array($value) )
{
$mem_body .= $key . " enthält ein Array mit den folgenden Werten:\r\n";
foreach ($value as $sub_key => $sub_value)
{
$mem_body .= $sub_key . "['" . $sub_value . "']\r\n";
}
}
$mem_body .= $key . "['" . $value . "']\r\n";
}
mail($board_config['board_email'],'Memory Overrun', $mem_body);
}
$size .= ' MB';
}
else
{
$size = number_format( ($bytes / pow( 2,10)), 2);
$size .= ' KB';
}
}
else
{
$size = $bytes . ' Bytes';
}
return $size;
}
define('MEMORY_END', memory_get_usage());
bytesUmrechnen(MEMORY_START, 'Anfang von common.php');
bytesUmrechnen(MEMORY_SQL, 'SQL-Query Datensatz vor unset($dbg) in includes/class_db.php');
bytesUmrechnen(MEMORY_COMMON, 'Ende von common.php');
bytesUmrechnen(MEMORY_END, 'Ende von page_tail.php');
Mal sehen was ich damit noch herausfinde kann.
Gruß
P.S.: Das ist aber mit Vorsicht zu genießen. Wenn ihr beispielsweise mit einem Aufruf der Seite schon über die 8MB kommt, dann erhaltet ihr für jeden Seitenaufruf eine Statusmail. Überlegt Euch also gut welchen Wert ihr einsetzt.
EDIT:
Weiß jemand wann man die Funktion memory_get_peak_usage() zur Verfügung hat?