$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);
Утечки памяти в PHP...
Первая:
При работе PHP - скрипта - трансформация XMLDom в выходной HTML документ в системе уменьшается память, при закрытии страницы, завершении в памяти остаются висеть процессы libhttpd.ep размером 120-150 Мб
при достижении критического момента (когда заканчивается своп) на фре выскакивают сообщения, что нельзя выделить память, процесс будет завершен.
Входной XML имеет размер порядка 7 Мб, других действий, кроме загрузки XML в XMLDom и трансформации скрипт не выполняет.
Попробовал очищать их unset-ом, присваивать переменным null - не помогает.
Пример скрипта:
Код:
Поиск утечек осложняется тем, что функция 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