На сервере не хватает памяти...
Sumo 24.05.2013 20:48
/ 24.05.2013 20:48
С этим можно и нужно «бороться». Поскольку вы не показали код, который разбирает xml'ь, то можно порекомендовать следующее:
— Начните собирать мусор после того, как разберете очередной кусочек xml'я. Сейчас по ошибке видно, что вы вообще не освобождаете память — в Парсере это делается в ручном режиме. См.
http://www.parser.ru/docs/lang/memorycompact.htm— Не стоит собирать мусор на каждой итерации цикла — это медленно. Лучше использовать сборку на «каждом десятом» (сотом, тысячном) шаге или воспользоваться другим интеллектуальным механизмом —
http://www.parser.ru/examples/erusage/— Если массово используете xpath-выражения, то постарайтесь перейти на dom-методы. И памяти будете расходовать меньше и скорость разбора увеличится значительно.
— Иногда возможно разобрать xml регулярными выражениями, но это стоит делать только если первые предыдущие пункты не помогли. (Что для 10 мегабайтного файла вряд ли возможно.)
p.s. Для распаковки gz-файла из Паресера можно вызвать утилиту gunzip через file::exec. :)