2008-10-21 4 views
1

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

ответ

1

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

EDIT: См. Также мой answer на этот родственный вопрос.

1

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

** EDIT: ** Похоже, создав файл ClassDescriptorResolvers/mapping и проверив проверку, что мы могли бы улучшить производительность, но поскольку мы создаем около 1000 объектов с процессом генерации схемы, это не реально жизнеспособно из с точки зрения затрат.

0

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

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

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

Прошел ли какой-либо профилирование на Castor?

Пойду исследовать JiBX, как предложил Дэн.

3

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

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

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