Share via


レジストリの記憶域スペース

アプリケーションがレジストリに格納できるデータの種類とサイズに関する技術的な制限はほとんどありませんが、システムの効率を向上させるための特定の実用的なガイドラインが存在します。 アプリケーションでは、構成と初期化のデータをレジストリに格納し、他の種類のデータを他の場所に格納する必要があります。

一般に、1 つまたは 2 つ以上のキロバイト (K) で構成されるデータは、ファイルとして格納し、値として格納するのではなく、レジストリ内のキーを使用して参照する必要があります。 アプリケーションでは、レジストリに大量のデータを複製する代わりに、データをファイルとして保存し、ファイルを参照する必要があります。 実行可能バイナリ コードをレジストリに格納しないでください。

値エントリは、キーよりもはるかに少ないレジストリ領域を使用します。 領域を節約するために、アプリケーションでは、各構造体メンバーを個別のキーとして格納するのではなく、同様のデータを構造体としてグループ化し、構造体を値として格納する必要があります。 (データをバイナリ形式で格納すると、アプリケーションは、互換性のない複数の型で構成される 1 つの値にデータを格納できます)。

レジストリ ファイルのビューは、ページ プール メモリにマップされます。

32 ビット版 Windows Server 2008、32 ビット版 Windows Vista SP1、Windows Vista、Windows Server 2003、Windows XP: レジストリ ファイルのビューは、コンピューター のキャッシュ アドレス空間にマップされます。 したがって、レジストリ データのサイズに関係なく、4 メガバイト (MB) を超える課金は行われません。

システム ハイブを除き、レジストリ ハイブの最大サイズは 2 GB です。

Windows Server 2003 SP1、Windows Server 2003、Windows XP: ページ プール メモリとディスク領域のハイブによって消費される可能性がある領域の合計に明示的な制限はありませんが、システム クォータは実際の最大サイズに影響する可能性があります。 レジストリ ハイブの最大サイズは、Windows Server 2003 Service Pack 2 (SP2) 以降では 2 GB に制限されていました。

システム ハイブの最大サイズは、次の表に示すように物理メモリによって制限されます。

システム システム ハイブの最大サイズ
x86 ベースのシステム 物理メモリの 50% (最大 400 MB)。Windows Server 2003 SP2、Windows Server 2003 SP1、Windows Server 2003、Windows XP: 物理メモリの 25%、最大 200 MB。
x64 ベースのシステム 物理メモリの 50% (最大 1.5 GB)。WINDOWS Server 2003 SP2: システム メモリの 25% (最大 200 MB)。
Windows Server 2003 SP1、Windows Server 2003、および Windows XP 64 ビット エディション: 32 MB。
Intel Itanium ベースのシステム 物理メモリの 50% (最大 1 GB)。Windows Server 2008、Windows Vista、Windows Server 2003 SP2、Windows Server 2003 SP1、Windows Server 2003、Windows XP 64-Bit Edition: 32 MB。

Windows 2000

レジストリ データは、ページ プールに格納されます。これは、使用されていないときにディスクに書き込むことができるシステム データに使用される物理メモリの領域です。 RegistrySizeLimit 値は、すべてのアプリケーションのレジストリ データで使用できるページ プールの最大量を設定します。 この値は、次のレジストリ キーにあります。

HKEY_LOCAL_MACHINE
   System
      CurrentControlSet
         Control

既定では、レジストリ サイズの制限はページ プールの 25% です。 (ページ プールの既定のサイズは 32 MB なので、これは 8 MB です)。システムは、 RegistrySizeLimit の最小値が 4 MB であり、最大値が PagedPoolSize 値の約 80% であることを確認します。 このエントリの値がページ プールのサイズの 80% を超える場合、システムはレジストリの最大サイズをページ プールのサイズの 80% に設定します。 これにより、レジストリでプロセスに必要な領域が消費されなくなります。 この値を設定しても、ページ プール内の領域は割り当てられません。また、必要に応じて領域が使用可能になることも保証されないことに注意してください。

ページ プールのサイズは、次のレジストリ キーの PagedPoolSize 値によって決まります。

HKEY_LOCAL_MACHINE
   System
      CurrentControlSet
         Control
            SessionManager
               MemoryManagement

レジストリの現在のサイズと最大サイズを決定する方法の例については、「レジストリ サイズの決定」を参照してください。

最大ページ プールは約 300,470 MB であるため、レジストリ サイズの制限は 240 から 376 MB です。 ただし、/3 GB スイッチを使用する場合、最大ページ プール サイズは 192 MB であるため、レジストリは最大 153.6 MB にすることができます。