我们最近从0.9.5.3版本升级到Castor 1.2,并且我们注意到在XML上调用unmarshal时性能有了显著的下降。在这两种情况下,我们都将解组到由castor生成的java类。相比之下,使用相同的XML,XML解组调用的时间过去大约需要10-20ms,现在大约需要2300ms。在我们的新castor实现中,有没有明显的东西我可能遗漏了,也许在我遗漏的属性文件中,或者我应该开始考虑恢复到旧版本?也许在java类文件生成中有什么东西终止了unmarshal调用?如果有充分的理由放弃Castor,转而使用其他东西,我可能也会考虑Castor替代方案。我们在weblogic服务器上使用java1.5。
发布于 2011-10-14 00:23:33
使用castor 1.0.5和.castor.cdr文件时,我们有非常严重的性能问题(解组只需要几秒钟,而过去只需要几毫秒)。
似乎.castor.cdr生成的文件包含旧的/错误的值(不存在的类型和描述符)。删除此文件中有问题的行后,一切都恢复正常。
希望这篇文章能对有同样问题的人有所帮助!
发布于 2008-10-21 16:25:01
您可能会考虑改用JiBX。它比Castor快得多(在我切换的一个项目中,速度快了9倍),而且更干净。
编辑:另请参阅此相关问题的我的answer。
发布于 2008-10-22 20:34:16
我们最终恢复到Castor版本0.9.5.3,在我们从新的XSD重新生成java类后,性能又回升了,我不确定为什么最终得到的java之间会有这么大的差异,但在解组时1.2类的速度要慢2个数量级。
**编辑:**通过创建ClassDescriptorResolvers/映射文件并关闭验证,我们似乎也可以提高性能,但由于我们使用模式生成过程创建了大约1000个对象,从成本的角度来看,这并不是真正可行的。
https://stackoverflow.com/questions/222444
复制相似问题