我们最近从版本 0.9.5.3 升级到 Castor 1.2,我们注意到在 XML 上调用 unmarshal 时性能急剧下降。在这两种情况下,我们将解组到由 castor 生成的 java 类。相比之下,使用相同的 XML,XML 解组调用的时间过去大约需要 10-20 毫秒,现在大约需要 2300 毫秒。在我们的新 castor 实现中是否有明显的我可能遗漏的东西,也许是我遗漏的属性文件,或者我应该开始考虑恢复到旧版本?也许在 java 类文件生成中有些东西正在杀死 unmarshal 调用?如果有充分的理由放弃它以支持其他东西,我也可能会考虑 Castor 替代品。我们在 weblogic 服务器中使用 java 1.5。
18Rabbit
问问题
2371 次
4 回答
3
我们在使用 castor 1.0.5 和 .castor.cdr 文件时遇到了非常严重的性能问题(解组需要几秒钟,而过去需要几毫秒)。
似乎 .castor.cdr 生成的文件包含旧的/错误的值(不存在的类型和描述符)。删除此文件中的犯罪行后,一切恢复正常。
希望这可以帮助任何有同样问题的人!
于 2011-10-13T16:23:32.933 回答
1
我们最终恢复到 Castor 版本 0.9.5.3,并且在我们从新的 XSD 重新生成 java 类之后,性能又回升了。我不确定为什么生成的 java 之间存在如此大的差异,但是 1.2 类在解组时慢了大约 2 个数量级。
**编辑:**看起来通过创建 ClassDescriptorResolvers/mapping 文件并关闭验证,我们也可以提高性能,但由于我们使用模式生成过程创建了大约 1000 个对象,从成本角度来看,这实际上并不可行。
于 2008-10-22T20:34:16.007 回答
0
我也有这个问题,在生成 XML 的基本客户/地址集时,生成包含 74 个客户的文档大约需要 3 秒。
恢复到 1.0.4(用于测试)看到这个返回到 1.4s,
但是手动滚动 XML 会在 40 毫秒以下看到输出。我知道框架会增加一些开销,但一定是有什么原因导致了这种情况。
在 Castor 上是否进行过任何分析?
我会按照 Dan 的建议去调查 JiBX。
于 2009-01-30T01:07:24.313 回答