web-dev-qa-db-ja.com

シングルスレッドアプリケーションのパフォーマンスが心配な場合、ハイパースレッディングを無効にする必要がありますか?

私はi5-2410Mプロセッサを使用しています。これは、ラップトップでデフォルトでハイパースレッディングを実行するように設定されています。これが2コアプロセッサであることを考えると、これは一度に4つのスレッドを実行できることを意味します。これは、シングルスレッドアプリケーションが処理能力の最大25%しか使用しないことも意味し、代わりに最大50%にしたいです。ハイパースレッディングを無効にすると悪影響がありますか(これは開発マシンであり、デスクトップを実行します)? topを正しく読んでいますか?

4
tshepang

シングルスレッドアプリケーションを使用したハイパースレッディングでは、2つを実行している場合、速度が向上します。ハイパースレッディングとは、CPUが2番目のスレッド(マルチスレッドアプリケーションからの2つのスレッドまたは2つのシングルスレッドアプリケーション)の処理を開始してから、最初のスレッドが実行を終了することを意味します。これを効果的に無効にすると、CPU容量が半分に削減されます(実際には、HTは約30%ブーストされますが、トップが教えてくれることについて話します)。そのため、スレッドは50%と表示されます。 25%ではなくtopで。

もう少し説明

ただし、これは、今日のアプリケーションの大部分がハイパースレッディングによるメリットを享受できないことを意味するものではありません。シングルスレッドのアプリでも、複数のアプリが同時に実行されている限り(つまり、マルチタスク)、ハイパースレッディングのパフォーマンス上のメリットを享受できます。 1つのアプリケーションがそのストリーム(スレッド)を1つの論理プロセッサに送信している間、2番目のアプリケーションは同時にそのストリームを2番目の論理プロセッサに送信しています。ただし、シングルスレッドアプリケーションを1つだけ実行する場合、ハイパースレッディングによるパフォーマンスの向上は見られません。実際、ハイパースレッディングの2つの論理プロセッサの管理に関連するオーバーヘッドのため、シングルスレッドアプリのみを実行するとパフォーマンスが低下する可能性もあります。

起動したUNIXシステムでは、少なくともカーネル、init、およびシェルを実行しています。あなたはいつもマルチタスクです。すべての実用的な方法で、HTは常にあなたに利益をもたらします。

3
bahamat