Я не нашел много способов повысить производительность Java-приложения, которое делает интенсивную обработку XML, помимо использования таких аппаратных средств, как Tarari или Datapower. Кто-нибудь знает какие-либо способы с открытым исходным кодом для ускорения разбора XML?
Существуют ли более быстрые парсер XML в Java, чем Xalan/Xerces
Ответ 1
Взгляните на синтаксические анализаторы Stax. См. справочное руководство по солнцу. Одна из реализаций - проект woodstox.
Ответ 2
VTD-XML очень быстро.
Он имеет DOM-подобный API и даже запросы XPath.
Ответ 3
Поскольку он не упоминался напрямую, я запишу Aalto, который является самым быстрым парсером java xml в соответствии с некоторыми измерениями, например:
- JVM-serializers (который сравнивает: XML, JSON, protobuf, Thrift и т.д.)
- Альтернативные методы сериализации для WSTest (веб-службы Java)
которые не написаны разработчиками Aalto.
Ответ 4
Piccolo утверждает, что довольно быстро. Не могу сказать, что я использовал его сам. Вы также можете попробовать JDOM. Как всегда, сравнительный анализ с репрезентативными данными вашей реальной нагрузки.
Отчасти это зависит от того, что вы пытаетесь сделать. Вам нужно вытащить весь документ в память или вы можете работать в потоковой передаче? Различные подходы имеют разные компромиссы и лучше подходят для разных ситуаций.
Ответ 5
В зависимости от сложности ваших XML-сообщений вы можете обнаружить, что пользовательский парсер может быть в 10 раз быстрее (хотя больше работы для написания). Однако, если производительность критическая, я бы не предложил использовать общий синтаксический анализатор. (Также я бы не предложил использовать XML, поскольку он не предназначен для производительности, но эта другая история,..;)
Ответ 6
Проверьте Javolution, а также