Registrierungsspeicherplatz
Obwohl es nur wenige technische Grenzen für den Typ und die Größe von Daten gibt, die eine Anwendung in der Registrierung speichern kann, gibt es bestimmte praktische Richtlinien, um die Systemeffizienz zu fördern. Eine Anwendung sollte Konfigurations- und Initialisierungsdaten in der Registrierung speichern und andere Arten von Daten an anderer Stelle speichern.
Im Allgemeinen sollten Daten, die aus mehr als einem oder zwei Kb (K) bestehen, als Datei gespeichert und mit einem Schlüssel in der Registrierung anstatt als Wert gespeichert werden. Anstatt große Datenteile in der Registrierung zu duplizieren, sollte eine Anwendung die Daten als Datei speichern und auf die Datei verweisen. Ausführbarer Binärcode sollte niemals in der Registrierung gespeichert werden.
Ein Werteintrag verbraucht viel weniger Registrierungsspeicherplatz als ein Schlüssel. Um Speicherplatz zu sparen, sollte eine Anwendung ähnliche Daten als Struktur gruppieren und die Struktur als Wert speichern, anstatt die einzelnen Strukturmember als separater Schlüssel zu speichern. (Das Speichern der Daten in binärer Form ermöglicht es einer Anwendung, Daten in einem Wert zu speichern, der andernfalls aus mehreren inkompatiblen Typen bestehen würde.)
Ansichten der Registrierungsdateien werden im ausgelagerten Poolspeicher zugeordnet.
Windows Server 2008 für 32-Bit, Windows Vista mit SP1 für 32-Bit, Windows Vista, Windows Server 2003, Windows XP: Ansichten der Registrierungsdateien werden im Adressraum des Computercaches zugeordnet. Daher werden unabhängig von der Größe der Registrierungsdaten nicht mehr als 4 Megabyte (MB) berechnet.
Die maximale Größe einer Registrierungsstruktur beträgt 2 GB, mit Ausnahme der Systemstruktur.
Windows Server 2003 mit SP1, Windows Server 2003 und Windows XP: Es gibt keine expliziten Grenzwerte für die Gesamtmenge des Speicherplatzes, der von Hives im Auslagerungspoolspeicher und im Speicherplatz belegt werden kann, obwohl Systemkontingente sich auf die tatsächliche maximale Größe auswirken können. Die maximale Größe einer Registrierungsstruktur war ab Windows Server 2003 mit Service Pack 2 (SP2) auf 2 GB beschränkt.
Die maximale Größe der Systemstruktur wird durch den physischen Arbeitsspeicher begrenzt, wie in der folgenden Tabelle gezeigt.
System | Maximale Größe der Systemstruktur |
---|---|
x86-basierte Systeme | 50 Prozent des physischen Arbeitsspeichers, bis zu 400 MB. Windows Server 2003 mit SP2, Windows Server 2003 mit SP1, Windows Server 2003 und Windows XP: 25 Prozent des physischen Arbeitsspeichers, bis zu 200 MB. |
x64-basierte Systeme | 50 Prozent des physischen Arbeitsspeichers, bis zu 1,5 GB. Windows Server 2003 mit SP2: 25 Prozent des Systemspeichers, bis zu 200 MB. Windows Server 2003 mit SP1, Windows Server 2003 und Windows XP 64-Bit Edition: 32 MB. |
Intel Itanium-basierte Systeme | 50 Prozent des physischen Arbeitsspeichers, bis zu 1 GB. Windows Server 2008, Windows Vista, Windows Server 2003 mit SP2, Windows Server 2003 mit SP1, Windows Server 2003 und Windows XP 64-Bit Edition: 32 MB. |
Windows 2000
Registrierungsdaten werden im ausgelagerten Pool gespeichert, einem Bereich des physischen Arbeitsspeichers, der für Systemdaten verwendet wird und bei Nichtverwendung auf den Datenträger geschrieben werden kann. Der Wert RegistrySizeLimit legt die maximale Menge an ausgelagerten Pools fest, die von Registrierungsdaten aus allen Anwendungen genutzt werden kann. Dieser Wert befindet sich im folgenden Registrierungsschlüssel:
HKEY_LOCAL_MACHINE
System
CurrentControlSet
Control
Standardmäßig beträgt der Grenzwert für die Registrierungsgröße 25 Prozent des ausgelagerten Pools. (Die Standardgröße des ausgelagerten Pools beträgt 32 MB, also 8 MB.) Das System stellt sicher, dass der Mindestwert von RegistrySizeLimit 4 MB und das Maximum etwa 80 Prozent des PagedPoolSize-Werts beträgt. Wenn der Wert dieses Eintrags größer als 80 Prozent der Größe des ausgelagerten Pools ist, legt das System die maximale Größe der Registrierung auf 80 Prozent der Größe des ausgelagerten Pools fest. Dadurch wird verhindert, dass die Registrierung den von Prozessen benötigten Speicherplatz belegt. Beachten Sie, dass das Festlegen dieses Werts keinen Speicherplatz im ausgelagerten Pool ordnet, und es wird auch nicht sichergestellt, dass der Speicherplatz bei Bedarf verfügbar ist.
Die Größe des ausgelagerten Pools wird durch den PagedPoolSize-Wert im folgenden Registrierungsschlüssel bestimmt:
HKEY_LOCAL_MACHINE
System
CurrentControlSet
Control
SessionManager
MemoryManagement
Ein Beispiel zum Ermitteln der aktuellen und maximalen Größe der Registrierung finden Sie unter Bestimmen der Registrierungsgröße.
Der maximale Auslagerungspool beträgt ungefähr 300.470 MB, sodass die Registrierungsgröße auf 240 bis 376 MB begrenzt ist. Wenn jedoch die Option /3GB verwendet wird, beträgt die maximale Größe des ausgelagerten Pools 192 MB, sodass die Registrierung maximal 153,6 MB betragen kann.