1

我们最近从版本 0.9.5.3 升级到 Castor 1.2,我们注意到在 XML 上调用 unmarshal 时性能急剧下降。在这两种情况下,我们将解组到由 castor 生成的 java 类。相比之下,使用相同的 XML,XML 解组调用的时间过去大约需要 10-20 毫秒,现在大约需要 2300 毫秒。在我们的新 castor 实现中是否有明显的我可能遗漏的东西,也许是我遗漏的属性文件,或者我应该开始考虑恢复到旧版本?也许在 java 类文件生成中有些东西正在杀死 unmarshal 调用?如果有充分的理由放弃它以支持其他东西,我也可能会考虑 Castor 替代品。我们在 weblogic 服务器中使用 java 1.5。

4

4 回答 4

3

我们在使用 castor 1.0.5 和 .castor.cdr 文件时遇到了非常严重的性能问题(解组需要几秒钟,而过去需要几毫秒)。

似乎 .castor.cdr 生成的文件包含旧的/错误的值(不存在的类型和描述符)。删除此文件中的犯罪行后,一切恢复正常。

希望这可以帮助任何有同样问题的人!

于 2011-10-13T16:23:32.933 回答
1

您可能要考虑改用JiBX。它比 Castor 快得多(在我进行切换的一个项目上快 9 倍),而且更干净。

编辑:另见我对这个相关问题的回答。

于 2008-10-21T16:25:00.750 回答
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 回答