2011-07-27 60 views
2

在我的模式中,我定義了一個由其他元素序列組成的元素。我正在創建一個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元素創建大量內存,是否有更好的方法?

謝謝你的幫助:)

回答

0

1)有一個在這個blog它可以幫助你解決你的問題

2)另外你爲什麼不ü嘗試JSON的它真的快不是XML

相關問題