Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Утечки памяти в PHP...

18K
23 августа 2006 года
seagull
5 / / 14.07.2006
Проблема в следующем. Точнее, две.
Первая:
При работе PHP - скрипта - трансформация XMLDom в выходной HTML документ в системе уменьшается память, при закрытии страницы, завершении в памяти остаются висеть процессы libhttpd.ep размером 120-150 Мб
при достижении критического момента (когда заканчивается своп) на фре выскакивают сообщения, что нельзя выделить память, процесс будет завершен.
Входной XML имеет размер порядка 7 Мб, других действий, кроме загрузки XML в XMLDom и трансформации скрипт не выполняет.
Попробовал очищать их unset-ом, присваивать переменным null - не помогает.

Пример скрипта:

Код:
$xmlExcel = new DOMDocument;
    $xmlExcel->load('report.xml');
    $filename = $_GET['file'];
       
    $xmlExcelXsl = new DOMDocument;
    $xmlExcelXsl->load($filename);
    $xsltExcelProc = new XSLTProcessor;
    $xsltExcelProc->importStyleSheet($xmlExcelXsl);
    $time_start = microtime(true);
    $sExcel = $xsltExcelProc->transformToXML($xmlExcel);
    $time_end = microtime(true);
    $time = sprintf ("%6f",($time_end - $time_start));

    $xsltExcelProc = null;
    $xmlExcelXsl = null;
    $xmlExcel = null;
   
    unset($xsltExcelProc);
    unset($xmlExcelXsl);
    unset($xmlExcel);


Поиск утечек осложняется тем, что функция memory_get_usage.php отказывается работать, PHP пишет: Fatal error: Call to undefined function memory_get_usage() in /usr/local/apache/htdocs/oss/memory_get_usage.php on line 5, хотя при компиляции была указана опция --enable-memory-limit (это вторая проблема)

Конфигурация: PHP 5.1.2 + Apache 1.3.34 + FreeBSD 5.4
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог