2014-09-05 2 views
1

При создании файла документа документа docx со встроенным изображением с несколькими сотнями страниц с использованием docx4j в WebLogic 12.1.2 производительность примерно в 5 раз медленнее той же операции в WebLogic 12.1. 3 работает на той же виртуальной машине с той же конфигурацией JVM - около 20 минут на 12.1.2 против 4 минут на 12.1.3.Проблема с выпуском JAXB с помощью EclipseLink.jar WebLogic 12.1.2

Ran top, чтобы получить статистику по процессору и памяти и jstat -gc, чтобы получить статистику сбора мусора. При генерации документа центральный процессор привязывается на 100% на 12.1.2 против 15% на 12.1.3. Использование кучи eden быстро растет на 12.1.2, и поэтому сбор мусора часто увеличивается, а медленный рост на 12.1.3. Ran jstack несколько раз, пока операция выполняется, чтобы просмотреть стек потока. Девять раз из десяти, на 12.1.2 стек показывает, что docx4j вызывает JAXB EclipseLink и что JAXB - это загрузка классов - большая загрузка класса, которая занимает много времени процессора (может быть, связана с: Do I have a JAXB classloader leak, но не имеет прямой контроль над docx4j).

Проблема была изолирована до eclipselink.jar, которая содержит библиотеки JAXB, поскольку, когда eclipselink.jar из разделяемых библиотек WebLogic 12.1.3 (EclipseLink v2.5.2) копируется через WebLogic 12.1. 2 (EclipseLink v2.4.2), а затем генерация docx работает на WebLogic 12.1.2, производительность хорошая, как и на 12.1.3.

Вопрос:

Может производительность WebLogic 12.1.2 ж/EclipseLink 2.4.2 быть улучшены без замены из библиотеки? Например, существуют ли какие-либо опции JVM, которые могут вам помочь?

Текущие параметры виртуальной машины Java:

-Xms4096m -server -Xmx4096m -XX: MaxPermSize = 512m -XX: MaxGCPauseMillis = 69 -XX: ParallelGCThreads = 8 -XX: ThreadStackSize = 2048 -XX: SurvivorRatio = 32 -XX : + DisableExplicitGC -XX: + AggressiveHeap -Xloggc: /var/tmp/gc.log -Djava.awt.headless = true

ответ

1

Вы можете попробовать создать общую библиотеку WebLogic, содержащую EclipseLink 2.5.2, и указать, что из приложения развернуто на WebLogic 12.1.2:

+0

Спасибо, Блейз. Хорошее решение. Если у вас есть другие идеи, которые не требуют развертывания, вы можете отправить сообщение? В противном случае мы перейдем к этой опции. – jlpp

Смежные вопросы