Есть ли память utlization проблема с JAXB?

Как насчет Экономия Facebook ?

Экономия является платформой программного обеспечения для масштабируемой межъязыковой сервисной разработки. Это комбинирует программный стек с механизмом генерации кода для создания сервисов, которые работают эффективно и беспрепятственно между C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Какао, Smalltalk и OCaml.

6
задан Thang Pham 22 May 2012 в 18:15
поделиться

5 ответов

Следует помнить об одном: JAXBContext.newInstance () - очень медленная операция. Здесь происходит много отражений и генерации классов, что приводит к проблемам с перманентным пространством, упомянутым duffymo. К счастью, JAXBContext является потокобезопасным, поэтому можно кэшировать один объект и повторно использовать его . В противном случае, я думаю, можно с уверенностью сказать, что использование памяти JAXB будет на уровне (или, может быть, меньше), чем полная DOM, и, конечно же, больше, чем SAX.

Если у вас есть очень большие документы, их можно обрабатывать кусками с помощью JAXB . Распределение JAXB RI включает пример потоковой передачи с JAXB.

7
ответ дан 9 December 2019 в 20:45
поделиться

JAXB страдает теми же основными проблемами, что и синтаксический анализ на основе DOM, заключающийся в том, что, вообще говоря, вся структура данных хранится в памяти одновременно. Тем не менее, он обычно менее требователен к памяти, чем DOM API (за возможным исключением XOM).

Сказав это, существуют способы использования JAXB для чтения фрагментов больших документов в потоковом режиме, если это необходимо. быть. Однако это довольно экзотическое использование.

2
ответ дан 9 December 2019 в 20:45
поделиться

JAXB имеет дополнительную проблему использования отражения для создания классов, которые добавляются в ваше пермское пространство по мере его выполнения. OutOfMemoryError может привести к хаосу.

1
ответ дан 9 December 2019 в 20:45
поделиться

Я видел, что производительность может сильно снизиться с JAXB, в отличие от более «простых» механизмов обработки XML в Java, таких как Xerces SAXParser .

0
ответ дан 9 December 2019 в 20:45
поделиться

Вы действительно можете столкнуться с проблемами производительности и памяти с привязкой данных Java XML из-за чрезмерного создания / уничтожения объектов, эта статья может помочь объясните новый метод привязки данных, который может помочь избежать этих проблем

2
ответ дан 9 December 2019 в 20:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: