在我的模式中,我定义了一个由一系列其他元素组成的元素。我正在创建一个JAX-WS Web服务,所以我使用xjc从我的模式生成java类。
一旦生成了类,我在我的服务处理程序中有一个循环,它创建了这些生成的类之一的几千个实例,每个实例都有一个getItems()方法,它返回一个List,并为每个添加一些项。
响应XML看起来像这样:
<MyElement>
<Item name="item1">texthere</Item>
<Item name="item2">texthere</Item>
<Item name="item3">texthere</Item>
<Item name="item4">texthere</Item>
</MyElement>
<MyElement>
<Item name="item1">texthere</Item>
<Item name="item2">texthere</Item>
<Item name="item3">texthere</Item>
<Item name="item4">texthere</Item>
</MyElement>
等
这个元素出现了几千次。
我的问题是关于表现:
如何减少生成这些对象并返回XML响应所需的时间?目前,50,000个MyElement实例大约需要40秒。每个MyElement实际上有大约10个Item元素,因此总共有近500,000个对象。我做了一些分析,发现大约10-15秒这是在编组对象期间,15-20秒将它们添加到网络流中。
有没有办法减少内存使用量?为每个MyElement创建所有这些jaxb对象实例以及它们中的每个Item元素都会占用大量内存,还有更好的方法吗?
感谢您的帮助:)