皆さん。
使用する設計パターン (またはそのようなもの) に関する意思決定について助けやアドバイスが必要です: 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>
問題は、アプリケーションがこの大きなデータ セットをループし、実際の xml を書き込む前にいくつかの操作を実行することによって、"section_i" のそれぞれが構築されることです。私は作戦を制御することはできません。ただし、各セクションは順番に実行されるため、リストが最初から最後までトラバースされるたびに、次々と実行されます。これをマルチスレッド化することを考えています。つまり、xml の各セクションを作成するスレッドを指定します。しかし、パフォーマンスには疑問があります。既存のシステムでは非常に時間がかかりますが、最終的には完了します。マルチスレッドに移行すると、他のアプリが実行されているサーバーで別の問題が発生するのではないかと心配しています。このような問題を解決するための既知のパターンはありますか? ArrayList の使用をハッシュ表現のセットに変更しようとしましたが、ただし、これにより、トラバーサル時間ではなく、ルックアップが高速化されます。何かアドバイスはありますか?チェックするリソースを知っている人はいますか?