2012-01-20 10 views
3

私は、金融アプリケーションであるため、一度に1000人のユーザーがアクセスするWebServiceを開発しました。ビューのコードポイントから java:ArrayListを構築するさまざまな方法

List Items = new ArrayList(); 

を示すよう は、コードの中に、私は、私は、STAXパーサーを使用してXMLファイルを解析するXMLの構文解析、XMLからオブジェクトを構築し、(このArrayListの中にそれを入れていますArrayListのを作成しましたアイテム)。

最後に、このArrayListをリクエストオブジェクト内に設定して使用しています。

このすべてが正常に動作している、今、私の質問は、パフォーマンスの観点から、またはのいずれかの違いがあるならば、私はスレッドセーフのArrayListをこのように構築し、この

List Items = (List) Collections.synchronizedList(new ArrayList()); 

を使用している場合は教えてください何、ですどんな場合?どのアプローチが最適です

あなたの経験と意見をお寄せください。

おかげ

+2

は、あなたが本当に同期しなければならないの '一覧'? –

+0

命名規則に従ってください。変数名を 'items'に変更してください。 – adarshr

答えて

5

リストを同期する必要がない場合、同期リストを作成しても意味がありません。また、同期が必要な場合は、パフォーマンスが重要ではありません。なぜなら、より高速で間違ったプログラムよりも、遅くて正しいプログラムを使用する方が望ましいからです。

パフォーマンスの考慮事項に基づいて同期リストを使用することは選択しません。並行環境での正確性の考慮に基づいて選択します。

スレッドセーフティの問題がある場合は、同期をランダムに追加してよりうまくいくわけではありません。これがどのように機能するのかを理解しなければなりません。 Java tutorial about concurrency(少なくとも)を読んでください。 CPUとメモリ上の非常に重いです

0

を考えると、あなたが解析しているXML、それはあまり重要どのようなコレクションは、あなたが使用していないだろう - それはパフォーマンスの測定可能な違いを生むんだろう

関連する問題