ハイパースレッディングのおかげで、4 つの論理プロセッサを備えたデュアル コア マシンを使用しています。C# で SHA1 プレイメージ ブルート フォース テストを実行しています。各スレッドでは、基本的に for ループを使用して SHA1 ハッシュを計算し、そのハッシュを探しているものと比較します。すべてのスレッドが完全に分離して実行されるようにしました。それらの間でメモリは共有されません。(1 つの変数: long カウントを除いて、次を使用して各スレッドでインクリメントします。
System.Threading.Interlocked.Increment(ref count);
2 スレッドで約 100 万 sha1/s、4 スレッドで 1.300 万 sha1/s が得られます。この場合、HT から 30% のボーナスを得る理由がわかりません。両方のコアがそれぞれの処理でビジーになるはずなので、スレッド数を 2 を超えて増やしても何のメリットもありません。誰でも理由を説明できますか?