Проблемы с производительностью Castor - PullRequest
1 голос
/ 21 октября 2008

Недавно мы обновились до Castor 1.2 с версии 0.9.5.3, и мы заметили резкое падение производительности при вызове unmarshal для XML. Мы демонтируем классы Java, которые были сгенерированы кастором в обоих случаях. Для сравнения, при использовании идентичного XML время на вызов XML-демаршала раньше занимало около 10-20 мс, а сейчас - около 2300 мс. Есть ли что-то очевидное, что я мог бы упустить в нашей новой реализации Castor, возможно, в файле свойств, который я пропустил, или я должен начать смотреть на возвращение к старой версии? Может быть, в генерации файлов классов java было что-то, что убивает вызов unmarshal? Я мог бы также рассмотреть альтернативы Кастора, если бы была веская причина отказаться от нее в пользу чего-то другого. Мы используем Java 1.5 на веб-логическом сервере.

Ответы [ 4 ]

3 голосов
/ 13 октября 2011

У нас были очень серьезные проблемы с производительностью при использовании Castor 1.0.5 с файлом .castor.cdr (несколько секунд для разархивирования, тогда как в прошлом это занимало миллисекунды).

Оказалось, что сгенерированный файл .castor.cdr содержал старые / неправильные значения (несуществующие типы и дескриптор). После удаления инкриминированных строк в этом файле все вернулось к норме.

Надеюсь, это может помочь любому, у кого такая же проблема!

1 голос
/ 23 октября 2008

Мы вернулись к версии Castor 0.9.5.3, и производительность снова возросла после того, как мы восстановили классы Java из новых XSD. Я не уверен, почему именно такая большая разница между получающейся java, но классы 1.2 были примерно на 2 порядка медленнее при демаршалинге.

** РЕДАКТИРОВАТЬ: ** Похоже, создав файл ClassDescriptorResolvers / mapping и отключив проверку, мы могли бы также повысить производительность, но поскольку мы создаем около 1000 объектов с помощью процесса генерации схемы, это на самом деле не выгодно по затратам перспектива.

1 голос
/ 21 октября 2008

Возможно, вы захотите использовать вместо JiBX . Он значительно быстрее, чем Castor (в 9 раз быстрее в одном проекте, где я сделал переход), и чище.

РЕДАКТИРОВАТЬ : См. Также мой ответ на этот связанный вопрос.

0 голосов
/ 30 января 2009

У меня тоже есть эта проблема, когда при генерации базового набора XML «клиент / адрес» для создания документа, включающего 74 клиента, требуется около 3 секунд.

При возврате к 1.0.4 (для тестирования) это возвращение к 1.4 с,

Но при ручном свертывании XML результат получается менее 40 мс ... Я знаю, что фреймворки добавляют некоторые издержки, но должно быть что-то, вызывающее это.

Был ли какой-нибудь прогон профилирования на Касторе?

Я пойду исследую JiBX, как предложено Дэном.

...