为什么Woodstox需要这么多记忆?

时间:2015-01-15 15:33:48

标签: java spring spring-ws axiom woodstox

我正在研究基于服务器端的Spring应用程序。我们正在使用JAXB,SOAP和Axiom(包装在Spring WS中),它使用Woodstox编组/解组xml消息,但是我们的应用程序在垃圾处理方面存在问题。我们只发送165 Mb消息,但Marshaller产生大约920 Mb的垃圾。也许有人知道,为什么收集的垃圾的大小如此之大,我怎么能改善这个?

1 个答案:

答案 0 :(得分:0)

Woodstox本身并没有真正产生所有垃圾,因为它只保留一小部分状态来支持流媒体访问。生成的主要对象只是生成字符串值,甚至只有在访问时才会生成。

但是,由Axiom提供的数据绑定必须保持更广泛的状态并构建对象模型以进行公开。所以我希望它能产生很多短寿命的物体。它通常也会访问XML文档的每个值,实现所有字符串。鉴于此,我同意@SpaceTrucker认为这不是必须产生不合理数量的垃圾。与生活在老一代的长寿物相比,短期垃圾往往不成问题。

您是否尝试过进行堆转储以查看正在生成的对象类型?

相关问题