какой самый эффективный анализатор XML для C ++? - PullRequest
2 голосов
/ 10 сентября 2009

Мне нужно написать приложение, которое выбирает пару значений имени элемента (данные временных рядов) из любого источника XML, будь то файл, веб-сервер или любой другой сервер. приложение будет использовать XML и извлекать значения, представляющие интерес, это должно быть очень очень быстро (скажем, 50000 событий / секунд или более), а также размер документа XML будет огромным, и частота этого документа также может быть высокой например, 2500 файлов / мин. - более 500 МБ данных / файла XML).

Я просто хочу посмотреть, как вы, опытные люди, думаете, что я должен подойти к этому. Я новичок, который только начал, хотя я могу сделать любое решение, которое вы мне предложите, независимо от того, насколько трудно / легко.

Большое спасибо.

Ответы [ 3 ]

4 голосов
/ 10 сентября 2009

Если вы используете SAX-разбор, узким местом является задействованный ввод-вывод, а не обработка строки XML. И учитывая ваш номер 500 МБ, я бы сказал, что у вас будет для выполнения SAX-анализа вместо DOM-анализа. Итак, все с интерфейсом типа SAX должно быть в порядке.

2 голосов
/ 10 сентября 2009

Я фанат Xerces , я думаю, что вам придется попробовать их, чтобы увидеть, какая из них лучше всего подходит для вашего приложения. Как сказал Уоррен, вы захотите использовать обработку SAX. Реально, если вам действительно нужна производительность, вы должны использовать специализированное устройство XML для обработки.

0 голосов
/ 10 сентября 2009

Я использую libxml2 в наших проектах. Он поддерживает как SAX, так и DOM. Как сказал Уоррен Янг, вы должны использовать SAX. Вы можете попробовать Expat.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...