parserALT
Страницы форума: ← Назад | 1 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 600 | Дальше →

Парсинг больших XML - проблема

#1Bitmag
08.06.09 12:00
www.parser.ru → | ответить → | в избранное →

Парсинг больших XML - проблема

Речь идет о размерах файлов 50-100 МБ.
Проблема заключается в том, что парсер после нескольких секунд работы по парсингу XML и заносу в MYSQL базу зависает, и остается в памяти, отожрав 500-700 МБ оперативы, и при этом использует 0% CPU. Решается только kill-ом...

В цикле перебора регулярно делаю memory:compact - не помогает.

При размерах файолов 5-10 МБ все работает на ура.

Подозреваю, что не предусмотрено парсером такие размеры XML обрабатывать... Может кто подскажет мудрое решение? Может тулза есть какая, которая бъет XML на куски с сохранением структуры... Или другое средство для заноса инфы в базу из XML...
#2Misha v.3
→ Bitmag [#1] | 08.06.09 12:26
www.parser.ru → | ответить → | в избранное →

«Чтение XML и запихивание в базу.»

#3Bitmag
→ Misha v.3 [#2] | 08.06.09 13:07
www.parser.ru → | ответить → | в избранное →

Спасибо! Очень толково. А можно исходник Perl-скрипта?

#4Sumo
→ Misha v.3 [#2] | 08.06.09 13:18 / 13:18
www.parser.ru → | ответить → | в избранное →

Можно попробовать использовать SAX-парсер XML'я. Бибилотеки есть для многих языков, например, для Питона.

#5Bitmag
→ Sumo [#4] | 08.06.09 13:33
www.parser.ru → | ответить → | в избранное →

Здорово конечно, было бы круто если б он был встроен в Парсер :) а так... громоздко получится

#6Bitmag
→ Bitmag [#1] | 12.06.09 15:40
www.parser.ru → | ответить → | в избранное →

Проблему решил так

Написал на паскале прогу, которая бъет XML на куски с сохранением структуры :) Парсер вызывает wget, потом мой сплиттер - и после этого обрабатывает последоватьельно все куски.
Страницы форума: ← Назад | 1 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 600 | Дальше →