登錄儲存空間
雖然應用程式可以儲存在登錄中的資料類型和大小有一些技術限制,但有某些實際指導方針可提升系統效率。 應用程式應該將組態和初始化資料儲存在登錄中,並將其他類型的資料儲存在其他地方。
一般而言,包含一或兩 KB 以上的資料 (K) 應該儲存為檔案,並使用登錄中的機碼來參考,而不是儲存為值。 應用程式應該將資料儲存為檔案,並參考檔案,而不是複製登錄中的大量資料。 可執行檔二進位程式碼不應儲存在登錄中。
值專案使用比機碼少得多的登錄空間。 為了節省空間,應用程式應該將類似資料分組為結構,並將結構儲存為值,而不是將每個結構成員儲存為個別索引鍵。 (以二進位形式儲存資料,可讓應用程式將資料儲存在一個值中,否則會由數個不相容的類型所組成。)
登錄檔案的檢視會對應在分頁集區記憶體中。
Windows Server 2008 for 32 位、Windows Vista SP1 for 32 位、Windows Vista、Windows Server 2003、Windows XP: 登錄檔案的檢視會對應到電腦快取位址空間中。 因此,不論登錄資料的大小為何,其費用不會超過 4 MB (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。