Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > TinyXML LoadFile() очень медленный


Автор: becks 6.2.2012, 09:33
Добрый день! Использую TinyXML для работы с XML-ками. И обнаружил, что метод LoadFile() чертовски медленный. Я понимаю, что речь идет о DOM парсере, но загружать xml размером 1.5 Мб за 4-5 сек. , это слишком долго. Есть подозрение, что во время подгрузки файла, он проверяет документ на валидность... В документации не нашел.

Кто сталкивался, подскажите.
Спасибо.

Автор: bsa 6.2.2012, 12:22
becks, TinyXML это очень маленький и простой парсер. Он предназначен для простых случаев. У тебя не такой. Меняй парсер.

Автор: becks 6.2.2012, 12:54
Цитата

becks, TinyXML это очень маленький и простой парсер. Он предназначен для простых случаев. У тебя не такой. Меняй парсер. 


Что посоветуете?
До этого пробовал expat (даже вопрос по нему тут задавал ) вроде разобрался и быстрый он, но коллега сказал, что на его xml-ке (67 Мб.) после прохождения половины, парсер не правильно читает данные. Может, конечно, проблема в коллеге ).

Автор: xvr 6.2.2012, 13:48
Цитата(becks @  6.2.2012,  12:54 Найти цитируемый пост)
До этого пробовал expat (даже вопрос по нему тут задавал ) вроде разобрался и быстрый он, но коллега сказал, что на его xml-ке (67 Мб.) после прохождения половины, парсер не правильно читает данные. 

На TinyXML задолго до 'прохождения половины' все встанет колом, так что 'не правильно читает данные' - это надо считать за счастье  smile 

Тут явно нужен парсер типа SAX, StAX или другой потоковый. Но никак не DOM

Автор: bsa 6.2.2012, 15:12
Кажется, таким является libxml2

Автор: becks 7.2.2012, 09:41
Цитата

На TinyXML задолго до 'прохождения половины' все встанет колом, так что 'не правильно читает данные' - это надо считать за счастье   


TinyXML, по словам опять же моего коллеги, разобрал его 67 Мб xml за 10 сек (тогда вопрос почему мою 1.5 Мб xml он разбирает 5 сек.), чуть меньше понадобилось expat, но он справился с ошибками.

 Тут, конечно, возникает куча вопросов, как так... Может быть мой коллега чего-то не так делает...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)