私は、Integer:s のリストを単純に (数回) 繰り返して合計を計算する、非常に単純なシングル スレッド Java アプリケーションを作成しました。Linux マシン (Intel X5677 3.46GHz クアッドコア) でこれを実行すると、プログラムが完了するまでに約 5 秒かかります。タスクセットを使用して jvm を 2 つの特定のコアに制限すると、同じ時間になります (アプリケーションがシングル スレッドであり、CPU 負荷がすべてのコアで 0.1% 未満であるため、これは予想されていたことです)。ただし、jvm を単一のコアに制限すると、プログラムの実行が突然非常に遅くなり、終了するまでに 350 秒以上かかります。jvmがメインスレッドに加えて他のいくつかのスレッドを実行しているため、単一のコアに制限されている場合にわずかに遅くなるかどうかは理解できましたが、この極端な違いは理解できません. シングルコアの古いラップトップで同じプログラムを実行しましたが、約 15 秒で実行されます。ここで何が起こっているのかを理解している人はいますか、またはこのようなことを経験せずに jvm をマルチコアシステムのシングルコアに制限することに成功した人はいますか? ところで、ホットスポット 1.6.0_26-b03 と 1.7.0-b147 の両方でこれを試しましたが、同じ問題です。
どうもありがとう