伙计们。
我需要有关使用设计模式(或类似的)决策的帮助或建议:拥有一个应用程序,通过 EJB 在 weblogic 上运行。应用程序的一部分处理非常大的对象数据集(数万或数十万)并构造一个由几个部分组成的 xml 文件。
生成的 XML 类似于:
<sect1>
<page>
<detail_1>something</detail_1>
<detail_2>something</detail_2>
... ... a lot of these
<detail_10000000>something</detail_10000000>
</page>
</sect1>
<sect2>
<page>
<detail_1>something</detail_1>
<detail_2>something</detail_2>
... ... a lot of these
<detail_10000000>something</detail_10000000>
</page>
</sect2>
<sect3>
<page>
<detail_1>something</detail_1>
<detail_2>something</detail_2>
... ... a lot of these
<detail_10000000>something</detail_10000000>
</page>
</sect3>
问题是每个“section_i”都是通过应用程序在这个大数据集上循环并在编写实际的 xml 之前对它们进行一些操作来构建的。我无法控制操作,他们要留下来。但是由于每个部分都是按顺序完成的 - 一个接一个,每次列表都从头到尾遍历。我正在考虑制作这个多线程 - 即指定一个线程来创建 xml 的每个部分。但对性能有疑问。使用现有系统需要很长时间,但最终会完成。如果我转向多线程,我担心在运行其他应用程序的服务器上这会产生其他问题。是否有任何已知模式可以解决此类问题?我试图将 ArrayList 的使用更改为哈希表示的集合,但这加快了查找速度,而不是遍历时间。有什么建议吗?有人知道要检查的任何资源吗?