登錄儲存空間
雖然應用程式可以儲存在登錄中的數據類型和大小技術限制很少,但有某些實際指導方針可以提升系統效率。 應用程式應該將設定和初始化數據儲存在登錄中,並將其他類型的數據儲存在其他地方。
一般而言,包含一或兩 KB 以上的數據應該儲存為檔案,並使用登錄中的機碼來參考,而不是儲存為值。 應用程式應該將資料儲存為檔案,並參考檔案,而不是複製登錄中的大量數據。 可執行檔二進位程式代碼不應該儲存在登錄中。
值專案使用比機碼少得多的登錄空間。 為了節省空間,應用程式應該將類似的數據分組為結構,並將結構儲存為值,而不是將每個結構成員儲存為個別索引鍵。 (以二進位格式儲存數據可讓應用程式將資料儲存在一個值中,否則由數個不相容的類型所組成。
登錄檔案的檢視會對應到分頁集區內存中。
Windows Server 2008 for 32 位、Windows Vista SP1 for 32 位、Windows Vista、Windows Server 2003、Windows XP: 計算機快取地址空間中對應登錄檔案的檢視。 因此,不論登錄數據的大小為何,都不會收取超過 4 MB 的費用。
登錄區的大小上限為 2 GB,但系統 Hive 除外。
Windows Server 2003 SP1、Windows Server 2003 和 Windows XP: 分頁集區內存和磁碟空間中 Hives 可能耗用的總空間量沒有明確限制,但系統配額可能會影響實際大小上限。 從 Windows Server 2003 Service Pack 2 (SP2) 開始,登錄區的大小上限限製為 2 GB。
系統Hive的大小上限受限於物理記憶體,如下表所示。
系統 | 系統 Hive 的大小上限 |
---|---|
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 位版本: 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。 不過,如果使用 /3GB 參數,則分頁集區大小上限為 192 MB,因此登錄最多可達 153.6 MB。