IISで32ビットアプリケーションプールがより効率的なのはなぜですか?[閉まっている]


12

IISで2つの異なるASP.NET Webアプリケーションを使用して負荷テストを実行しました。テストは、5、10、25、および250のユーザーエージェントで実行されます。8 GB RAM、Windows 7 Ultimate x64を搭載したボックスでテスト済み。IISと負荷テストプロジェクトの両方を実行する同じボックス。

何度も実行しましたが、データは非常に一貫しています。アプリケーションプールで[32ビットアプリケーションを有効にする]をTrueに設定している場合、すべてのロードで、「平均ページ時間(秒)」および「平均応答時間(秒)」が低くなります。負荷が高いほど、差はより顕著になります。非常に高い負荷で、アプリケーションプールが64ビットの場合、Webアプリケーションはエラー(503)をスローし始めますが、32ビットに設定されている場合、それらは維持できます。

32ビットアプリプールの効率が大幅に向上するのはなぜですか?アプリケーションプールのデフォルトが32ビットではないのはなぜですか?

回答:


16

64ビットのメモリポインターおよびその他の関連データ構造は、32ビットのメモリポインターの2倍の大きさです。さらに、64ビットワーカースレッドは、モードを切り替えるときに32ビットコードまたはDLLにアクセスするたびにペナルティが発生します。(研究WoW64とサンク。)

64ビットを使用することの利点最大の(だけではなく)が対処する能力がある多くのより多くのメモリを。アプリプールが2ギガバイトまたは3ギガバイトを超えるメモリを使用せず、64ビットコードを特に実行する必要がない場合、64ビットに移行する理由はおそらくありません。技術の進歩に伴い、チップメーカーはパフォーマンスを改善するために、特に64ビットプロセッサ用に追加のCPUレジスタを作成していますが、一般的に言って、より多くのビットを使用するだけで魔法のようなパフォーマンスブーストはありません。実際、目撃したばかりであるため、さらに悪化する可能性があります。

64ビット=エイブラムス戦車

32ビット=トヨタプリウス

1つはより多くの作業を行うことができますが、もう1つはマクドナルドのドライブスルーに適合できます。


4
私は軽視するのは嫌いですが、どちらもマクドナルドのドライブスルーに適合します。壁を壊さずにそれを行うだけです。
HopelessN00b

3
ピックをするのは嫌いですが、それはフィットの定義に大きく依存すると思います!マクドナルドのドライブスルー仕様で定義されているように「適切なサイズと形状にする」場合は、そうではありません:)。
GraemeMiller
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.