2014-09-05 18 views
1

在WebLogic 12.1.2上使用docx4j在WebLogic 12.1.2上生成數百頁的帶有嵌入式映像的docx文檔文件時,性能比WebLogic 12.1上的相同操作慢大約5倍。 3運行在具有相同JVM配置的相同虛擬機上 - 12.1.2節約20分鐘,12.1.3節約4分鐘。WebLogic 12.1.2的EclipseLink.jar中的JAXB性能問題

頂層獲取CPU和內存統計信息,並使用jstat -gc獲取垃圾收集統計信息。在生成文檔的同時,CPU在12.1.2時達到100%,而在12.1.3時達到15%。伊甸園堆的使用量在12.1.2增長得很快,所以經常收集垃圾,而在12.1.3上增長緩慢。在運行操作以查看線程堆棧時,多次執行jstack。在12.1.2中,十次中有九次顯示docx4j正在調用EclipseLink的JAXB,並且JAXB是類加載 - 許多類加載需要很長的CPU時間(可能與Do I have a JAXB classloader leak有關,但沒有直接控制docx4j)。

在WebLogic 12.1.3共享庫中的eclipselink.jar(EclipseLink v2.5.2)通過WebLogic 12.1複製時,該問題已被分離到eclipselink.jar,其中包含JAXB庫。 2版本(EclipseLink v2.4.2),然後在WebLogic 12.1.2上運行docx代,性能很好,就像12.1.3一樣。

問:

能的WebLogic 12.1.2的性能W/2.4.2的EclipseLink不換出庫得到改善呢?例如,有沒有可能有幫助的JVM選項?

當前JVM選項:

-Xms4096m -server -Xmx4096m -XX:MaxPermSize參數=512米-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

您可以嘗試創建包含EclipseLink 2.5.2的WebLogic共享庫並從您的應用程序中引用該庫部署在WebLogic 12.1.2上:

+0

謝謝布萊斯。好的解決方案如果您有任何其他不需要部署的想法,請您發帖?否則,我們會選擇這個選項。 – jlpp 2014-09-05 16:50:40