gpt4 book ai didi

java - JAX-WS - 创建大量 xjc java 对象时如何提高性能?

转载 作者:行者123 更新时间:2023-11-29 09:20:26 26 4
gpt4 key购买 nike

在我的架构中,我定义了一个由一系列其他元素组成的元素。我正在创建 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 元素,因此总共有将近 500,000 个对象。我做了一些分析,发现其中大约 10-15 秒是在编码对象期间,15-20 秒是将它们添加到网络流。

有没有办法减少内存使用量?为每个 MyElement 以及其中的每个 Item 元素创建所有这些 jaxb 对象实例会占用大量内存,是否有更好的方法?

谢谢你的帮助:)

最佳答案

1)看看这个blog它可能会帮助您解决问题

2)另外为什么你不尝试使用 json,它真的比 xml 更快

关于java - JAX-WS - 创建大量 xjc java 对象时如何提高性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6849813/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com