Ситуация. Я загружаю и обрабатываю несколько xml файлов. Загрузите первый файл.
Откройте его с помощью $xml_file = simplexml_load_file( dirname(__FILE__). '/_downloaded_files/filename.xml' );
Go через файл, создайте переменные для вставки в mysql, вставьте в mysql. Сделайте то же самое со следующими xml файлами.
После того, как я обработал открытый файл xml, я сбросил (установил нулевые) переменные. Как $xml_file = null;
Пробовал также как unset($xml_file);
, не видел никакой разницы. Где-то нашел совет использовать gc_enable(); gc_collect_cycles();
, тоже без разницы (без эффекта).
После выполнения кода mysql также установить в ноль все используемые переменные.
В результате echo '<pre>', print_r(get_defined_vars(), true), '</pre>';
увидел как
[one_variable] =>
[another_variable] => 1
Я видел много (~ 100) переменных с пустым содержимым (или одно короткое значение для переменной).
Но с echo (memory_get_peak_usage(false)/1024/1024);
см. 38.01180267334 MiB memory used
.
Может кто-нибудь посоветовать, где проблема? ~ 100 пустых переменных не могут использовать 38 мегабайт ... Что еще может использовать память?