当前位置: 首页 > 知识库问答 >
问题:

com的使用和性能。太阳xml。绑定v2。字节码。班级裁缝。优化

韩麒
2023-03-14

我们遇到了一个JaxB类加载问题,正如JaxB classCastException所强调的那样。

为了解决这个问题,我添加了com。太阳xml。绑定v2。字节码。班级裁缝。noOptimize=true,这实际上解决了这个问题。

然而,我了解到,这将禁用Jaxb直接与字节码交互并通过Java反射API的能力,因此在通过“JAXBContext.newInstance”初始化新的Jaxb上下文时,可能会对性能造成轻微影响。

为了测试性能,我添加了一个简单的方法,在for循环中调用JAXBContext.new实例大约500次。我用标志=true和=false运行了这个。

在最坏的情况下,我看到每次调用的性能平均只有3.5 ms。

有没有人有类似的问题,并尝试了上述修复?你的发现是什么?我找不到太多关于com.sun.xml.bind.v2.bytecode.ClassTailor.no优化的信息。你能分享更多关于它的行为和影响的信息吗?

共有1个答案

储国发
2023-03-14

这篇来自IBM的关于JAXB上下文初始化的文档可能会帮助您:JAXBContext初始化需要很长时间

问题(摘要)

JAXBContext初始化会降低应用程序性能。

症状

WebSphere Application Server性能低下。

原因

JAXB上下文(javax.xml.bind.JAXBContext)对象实例化是一项资源密集型操作。JAXB上下文实例化涉及预加载和预创建与上下文相关联的所有包和类的上下文(称为预缓存过程),然后是静态(直接和间接)引用这些包和类的所有包和类。性能延迟将与这个预缓存过程中JAXB创建过程中传递的类数相关。

 类似资料:
  • 我正试图将类从版本更新到更新的版本,以便与兼容,因为以下消息: JAVAlang.LinkageError:您正在尝试运行JAXB 2.0运行时(从jar:file:/opt/tomcat/appName/WEB-INF/lib/JAXB-runtime-2.3.1.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class),但在类路径的前面有旧

  • 我已经从SOAP服务下载了Soap消息,并试图通过返回下载的消息来模拟Soap服务 然而,我不断得到这个随机发生的ClassCastExection。在多次测试迭代之后,它开始发生。有时清理和构建可以修复它,但有时不起作用。 我曾尝试过其他在线建议,比如恢复到旧的jaxb版本,并在maven编译器配置中使用认可的文件夹,但这种情况仍然存在 对可能的原因和可能的解决方案有什么想法吗? 谢谢你了

  • 你可能认为下面的问题很简单,但我不知道我做错了什么。我觉得我添加了必需的依赖项。我没有吗? 谁能告诉我这里出了什么问题吗? 书JAVA ReadXMLFileJaxb.java 我的书。xml 波姆。xml

  • 我正在将Spring Boot应用程序转换为Quarkus,作为概念证明。当我构建Quarkus应用程序并用Java运行它时,它运行良好,但当我尝试将其作为本机应用程序运行时,我在内部sun类(com.sun.xml.internal.ws.spi.ProviderImpl)上得到一个ClassNotFoundException,因为它在Java中运行,我希望本机应用程序也能工作。 我正在使用:

  • 问题内容: 如果我将Class声明为字段: Eclipse给我警告: 类是原始类型。对泛型类型Class的引用应参数化 在实践中这意味着什么?我为什么要这样做呢?如果我要求Eclipse提供“快速修复”,它将给我: 这似乎并没有增加太多价值,但不再发出警告。 编辑:为什么类通用?您能否举一个参数化的例子,即可以有效使用除以外的东西吗? 编辑:哇!我还没有意识到这一点。我也看过Java拼图游戏,这肯

  • 我目前正在研究从无人机拍摄的图像(附上样本图像)中裁剪太阳能电池板。我尝试过使用轮廓,但没有适当的结果。它没有检测到图像中的所有太阳能电池板,其中一些太阳能电池板丢失了。我击中了这里。如何进一步操作?请帮我解决这个问题。 谢谢你, 示例代码: