Alexandr_do
Guest
Обработчик ошибок ест память
Проблема:
При увеличении размера скрипта обработчика ошибок с определенного момента скрипт начинает серьезно есть память.
Проверял следующим образом.
В цикле генерится NOTICE, например:
-----------------------------------------------
echo("Memory:".memory_get_usage());
for ($i=0; $i<100; $i++) {
$a=b$; //использую неопределенную переменную
}
echo("Memory:".memory_get_usage());
-----------------------------------------------
Что в обработчике - роли не играет, например
function userErrorHandler () {
$err= "test_0001\n";
$err .= "test_0001\n";
$err .= "test_0001\n";
... и т.д.
return(1);
}
Но с определенного момента, у меня например, когда количество строк ($err .= "test_0001\n"; ) превышает 37.
Память начинает резко изчезать.
То есть, если до выполнения цикла memory_get_usage=197912, то после уже memory_get_usage=2285904. И это как уже было сказано, начинается только, если размер скрипта обработчика превышает определенный размер.
Может кто сталкивался. В чем может быть причина?
Есть смутное подозрение, что в самом обработчике возникает ошибка, которую он пытается обработать. Если это так, то что ему может не нравиться?
PHP - 4.3.11
Спасибо.
Проблема:
При увеличении размера скрипта обработчика ошибок с определенного момента скрипт начинает серьезно есть память.
Проверял следующим образом.
В цикле генерится NOTICE, например:
-----------------------------------------------
echo("Memory:".memory_get_usage());
for ($i=0; $i<100; $i++) {
$a=b$; //использую неопределенную переменную
}
echo("Memory:".memory_get_usage());
-----------------------------------------------
Что в обработчике - роли не играет, например
function userErrorHandler () {
$err= "test_0001\n";
$err .= "test_0001\n";
$err .= "test_0001\n";
... и т.д.
return(1);
}
Но с определенного момента, у меня например, когда количество строк ($err .= "test_0001\n"; ) превышает 37.
Память начинает резко изчезать.
То есть, если до выполнения цикла memory_get_usage=197912, то после уже memory_get_usage=2285904. И это как уже было сказано, начинается только, если размер скрипта обработчика превышает определенный размер.
Может кто сталкивался. В чем может быть причина?
Есть смутное подозрение, что в самом обработчике возникает ошибка, которую он пытается обработать. Если это так, то что ему может не нравиться?
PHP - 4.3.11
Спасибо.