在我的模式中,我定義了一個由其他元素序列組成的元素。我正在創建一個JAX-WS webservice,所以我使用xjc從我的模式生成java類。JAX-WS - 如何在創建大量xjc java對象時提高性能?
一旦類生成的,我有我的服務處理一個循環創建這些生成的類之一的幾千實例,每個實例有一個getItems()方法返回一個列表,我添加一些項目到每個。
響應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元素,因此總共有近50萬個對象。我已經做了一些分析,發現大約10-15秒這是在編組對象和15-20秒將它們添加到網絡流。
有沒有辦法減少內存使用量?爲每個MyElement創建所有這些jaxb對象實例,併爲它們中的每個Item元素創建大量內存,是否有更好的方法?
謝謝你的幫助:)