Large-Page サポート

大規模なページのサポートにより、サーバーアプリケーションは大容量ページのメモリ領域を確立できます。これは、64ビットの Windows で特に便利です。 大規模な各ページ変換では、CPU 内部で1つの翻訳バッファーが使用されます。 このバッファーのサイズは、通常、ネイティブページサイズより大きい3つの順序です。これにより、変換バッファーの効率が向上します。これにより、頻繁にアクセスされるメモリのパフォーマンスが向上します。

次の手順では、大規模なページサポートを使用する方法について説明します。

大きいページのサポートを使用するには

  1. AdjustTokenPrivileges関数を呼び出して、 SeLockMemoryPrivilege 特権を取得します。 詳細については、「 アカウントへの特権の割り当て 」および「 トークンの特権の変更」を参照してください。
  2. GetLargePageMinimum関数を呼び出して、サイズの大きいページの最小サイズを取得します。
  3. VirtualAlloc関数を呼び出すときに、メモリの _ 大きい _ ページ の値を含めます。 サイズとアラインメントは、大きいページの最小値の倍数である必要があります。

大容量ページのメモリを使用するアプリケーションを作成する場合は、次の点に注意してください。

  • システムが長時間実行された後、大きなページのメモリ領域を取得するのは困難な場合があります。これは、各大きなページの物理的な領域が連続している必要があり、メモリが断片化される可能性があるためです。 これらの条件下で大きなページを割り当てると、システムのパフォーマンスに大きな影響を与える可能性があります。 そのため、アプリケーションでは、大規模なページ割り当てを繰り返すことを避ける必要があります。また、起動時にすべての大きなページを一度に割り当てます。
  • メモリは常に読み取り/書き込みおよび非ページングです (物理メモリ内に常に存在します)。
  • ワーキングセットにはページング可能なメモリしか含まれていないため、メモリはプロセスプライベートバイトに含まれますが、ワーキングセットの一部ではありません。
  • 大きなページの割り当ては、ジョブの制限の対象になりません。
  • 大きなページのメモリは、1つの操作として予約され、コミットされる必要があります。 つまり、大きいページを使用して、以前に予約されていたメモリの範囲をコミットすることはできません。
  • Intel Itanium ベースシステムの WOW64 は、この機能を使用する32ビットアプリケーションをサポートしていません。 アプリケーションは、ネイティブの64ビットアプリケーションとして再コンパイルする必要があります。