【问题标题】:JAXB peformance issue with WebLogic 12.1.2's EclipseLink.jarWebLogic 12.1.2 的 EclipseLink.jar 的 JAXB 性能问题
【发布时间】:2014-09-05 15:07:53
【问题描述】:

在 WebLogic 12.1.2 上使用 docx4j 生成数百页带有嵌入图像的 docx 文档文件时,性能比在同一虚拟机上运行的 WebLogic 12.1.3 上的相同操作慢约 5 倍相同的 JVM 配置——12.1.2 大约 20 分钟,而 12.1.3 大约 4 分钟。

运行 top 获取 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 但不要' t 可以直接控制 docx4j)。

问题已被隔离到包含 JAXB 库的 eclipselink.jar,只要将 WebLogic 12.1.3 共享库 (EclipseLink v2.5.2) 中的 eclipselink.jar 复制到 WebLogic 12.1.2版本(EclipseLink v2.4.2)然后docx生成在WebLogic 12.1.2上运行,性能很好,就像在12.1.3上一样。

问题:

是否可以在不更换库的情况下提高带有 EclipseLink 2.4.2 的 WebLogic 12.1.2 的性能?例如,是否有任何 JVM 选项可能有所帮助?

当前 JVM 选项:

-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

【问题讨论】:

    标签: jaxb garbage-collection weblogic eclipselink docx4j


    【解决方案1】:

    您可以尝试创建一个包含 EclipseLink 2.5.2 的 WebLogic 共享库,并从部署在 WebLogic 12.1.2 上的应用程序中引用它:

    【讨论】:

    • 谢谢布莱斯。很好的解决方案。如果您有任何其他不需要部署的想法,您可以发布吗?否则,我们将使用此选项。
    猜你喜欢
    • 2017-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    • 2014-09-18
    相关资源
    最近更新 更多