Leave a Comment
Борьба с утечками памяти в php
$limit = 512;
$thresholdDelta = 10;
ini_set('memory_limit', $limit . 'm');
...
$memoryThresholdReached = false;
$memoryThreshold = ( $limit - $thresholdDelta ) * 1024 * 1024;
...
while ( $user = $db->plain_fetch( $result ) )
{
...
// тут работа с данными
...
// проверка на превышение опасного порога использования памяти
if ( ! $memoryThresholdReached && memory_get_usage( true ) > $memoryThreshold )
{
$memoryThresholdReached = true;
try {
throw new SystemException( 'Превышен порог использования памяти...' );
}
catch ( Exception $e ) {}
}
}
Более серьёзные способы — просмотр стека (strace -f -p $pid) и дебаг php C-шным дебаггером DBG.
LEAVE A COMMENT
Для отправки комментария вам необходимо авторизоваться.