0

コードの実行時間を大まかに見積もろうとしたときに、この観察に遭遇しました。コードの最初の部分で、CPU 使用率は約 10% にとどまりました。これには、2 つの文字列のトラバースとハッシュセットへの投入が含まれていました。コードが 2 番目の部分 (ネストされた 2 つの for ループと巨大な配列割り当て) に達すると、CPU 使用率は 50% に急上昇しました。

マルチスレッドに関連することは何もしていないと思います。また、最初の部分 (別の for ループを追加するような非常に単純なもの) を少し変更すると、CPU 使用率も大幅に変化します。なぜこうなった?誰が CPU を消費しているのか気になります。

4

2 に答える 2

0

JVM はガベージ コレクションを管理している間、その時点でヒープにあるものに基づいて CPU 使用率を変動させるため、これは必ずしも実行中のコードと CPU 使用率を直接比較するものではありません。突然 50% まで上がってから下がった場合、ガベージ コレクションが同時に開始されるため、これは偶然の一致である可能性があります。

于 2013-04-03T15:02:09.507 に答える