Ash*_*ral 7 java xml compilation jaxb compiler-optimization
我们遇到了 JaxB 类加载问题,如Jaxb classCastException所突出显示的那样。
为了解决这个问题,我添加了com.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true,这实际上解决了问题。
然而,我读到这将禁用 Jaxb 直接与字节码交互并通过 Java Reflection API 的能力,因此在通过“ JAXBContext.newInstance ”初始化新的 Jaxb 上下文时可能会对性能产生轻微影响。
为了测试性能,我添加了一个简单的方法,该方法在 for 循环中调用 JAXBContext.newInstance 约 500 次。我用 flag=true 和 =false 运行了这个。
在最坏的情况下,我发现每次调用的平均性能影响仅为 3.5 毫秒左右。
有没有人遇到过类似的问题并尝试过上述修复?你的发现是什么?我找不到有关com.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize的太多信息。您能否分享有关其行为和影响的更多信息?
IBM 提供的有关 JAXB 上下文初始化的文档可能会对您有所帮助:JAXBContext 初始化需要很长时间
问题(摘要)
JAXBContext 初始化会降低应用程序性能。
症状
WebSphere Application Server 性能缓慢。
原因
JAXB 上下文 (javax.xml.bind.JAXBContext) 对象实例化是一项资源密集型操作。JAXB 上下文实例化涉及与上下文关联的所有包和类的上下文的预加载和预创建(称为预缓存过程),然后静态(直接和间接)引用的所有包和类那些。性能延迟将与预缓存过程中 JAXB 创建期间传递的类数量相关。