Вопрос

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

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

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

Это было полезно?

Решение

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top