0

外側のループといくつかのネストされたループを持つ Java のコードがあります。パフォーマンスは満足のいくものではありません。全体的なパフォーマンスを向上させるために、どのような戦略に従うことができますか?

For(int I = 0; I < 20000000; < i++) // 20 million iterations in outer loop
{    
    For(…)

    For(…)

    For(…)

    method...

    method...    
} 
4

4 に答える 4

4

あなたは多くの詳細を省いています。でも...

4 つの異なるforループが順番に発生する必要がない場合は、各forループを別のスレッドで実行できます。

コードを実行する CPU コアが複数ある場合、全体的なパフォーマンスが向上します。

それ以外では、パフォーマンスを改善できるかどうかを知る最善の方法は、どこに時間が費やされているかを確認することです。プロファイラーでコードを実行します。

于 2012-06-28T18:55:04.467 に答える
0

を使用してC#forループのパフォーマンスを改善しましたyield return。ぜひ使ってみてください。

Javaでの使用方法を示すこのSOの質問を確認してください。

これは、Javaライブラリへの直接リンクです-答えから-:

  1. 記事
  2. としょうかん
于 2012-06-28T19:02:44.563 に答える
0

詳細を知らずに判断するのは困難です :-) for ループの実行にはそれほど時間がかかりません。

小規模な運用の場合は、マイクロベンチマークを行う必要があります(こちらこちらを参照してください)。

少し洗練されたものを作成する場合は、プロファイリングを作成する必要があります(Eclipse、NetBeans には独自のプロファイラーが付属しています。JProfilerを試すこともできますが、かなり多くの代替手段があります)。

于 2012-06-28T18:56:17.747 に答える
0

ループを並列化できる場合は、複数のコアで実行できます。または、より高速な CPU を購入することもできます。

于 2012-06-28T18:56:20.983 に答える