simplexml_load_file проблемы с памятью

Тема в разделе "PHP Pro", создана пользователем lena berkova, 19 май 2010.

Статус темы:
Закрыта.
  1. lena berkova

    lena berkova

    Регистр.:
    14 янв 2009
    Сообщения:
    441
    Симпатии:
    19
    есть пхп файл. в файле в цикле вызывается ф-я, в этой ф-ции грузятся хмл файлы через ф-ю simplexml_load_file. проблема в том, что если итераций много то скрипт валится с ошибкой
    Allowed memory size of 67108864 bytes exhausted (tried to allocate 14817 bytes)

    а если итераций 1-2 то все нормально отрабатывает. выходит что память накапливается. как быть?
    использовался даже вариант с написанием отдельного класса и вызовом unset но тоже не пашет
     
  2. Juri

    Juri

    Заблокирован
    Регистр.:
    5 окт 2007
    Сообщения:
    1.068
    Симпатии:
    197
    Покажите исходный код, так сложно сказать куда память девается... Переменную в которой лежит фаил обнуляете?
     
  3. Darkmind

    Darkmind SNMP maniac

    Регистр.:
    31 май 2006
    Сообщения:
    182
    Симпатии:
    74
    При работе с DOM через simplexml в PHP5 надо обязательно вызывать деструктор сразу же, как это только возможно. Выставить в "null" dom-дерево, все ноды и всех детей и родителей. Особенно ярко эта проблема проявляется при работе с simple_html_dom.
     
  4. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    883
    Симпатии:
    540
    ага, об этом ещё на офф сайте.
    Довольно неудобно. Рекомендую использовать phpQuery. Протестил на нескольких реальных примерах- прирост скорости раз в 5-10. Да синтаксис такой же как у его оригинала.
     
Статус темы:
Закрыта.