Espace de stockage du Registre
Bien qu’il existe quelques limites techniques au type et à la taille des données qu’une application peut stocker dans le Registre, certaines recommandations pratiques existent pour promouvoir l’efficacité du système. Une application doit stocker des données de configuration et d’initialisation dans le Registre et stocker d’autres types de données ailleurs.
En règle générale, les données composées de plus d’un ou deux kilo-octets (K) doivent être stockées sous forme de fichier et appelées à l’aide d’une clé dans le Registre plutôt que d’être stockées en tant que valeur. Au lieu de dupliquer de grandes parties de données dans le Registre, une application doit enregistrer les données en tant que fichier et faire référence au fichier. Le code binaire exécutable ne doit jamais être stocké dans le Registre.
Une entrée de valeur utilise beaucoup moins d’espace de Registre qu’une clé. Pour économiser de l’espace, une application doit regrouper des données similaires en tant que structure et stocker la structure en tant que valeur plutôt que de stocker chacun des membres de la structure en tant que clé distincte. (Le stockage des données sous forme binaire permet à une application de stocker des données dans une valeur qui serait autrement composée de plusieurs types incompatibles.)
Les vues des fichiers de Registre sont mappées dans la mémoire du pool paginé.
Windows Server 2008 pour 32 bits, Windows Vista avec SP1 pour 32 bits, Windows Vista, Windows Server 2003, Windows XP : vues des fichiers de Registre sont mappées dans l’espace d’adressage du cache d’ordinateur. Par conséquent, quelle que soit la taille des données du Registre, elle n’est pas facturée plus de 4 mégaoctets (Mo).
La taille maximale d’une ruche de Registre est de 2 Go, à l’exception de la ruche système.
Windows Server 2003 avec SP1, Windows Server 2003 et Windows XP : Il n’existe aucune limite explicite sur la quantité totale d’espace qui peut être consommé par des ruches dans la mémoire du pool paginé et dans l’espace disque, bien que les quotas système puissent affecter la taille maximale réelle. La taille maximale d’une ruche de Registre était limitée à 2 Go à partir de Windows Server 2003 avec Service Pack 2 (SP2).
La taille maximale de la ruche système est limitée par la mémoire physique, comme indiqué dans le tableau suivant.
Système | Taille maximale de la ruche système |
---|---|
Systèmes x86 | 50 % de la mémoire physique, jusqu’à 400 Mo.Windows Server 2003 avec SP2, Windows Server 2003 avec SP1, Windows Server 2003 et Windows XP : 25 % de mémoire physique, jusqu’à 200 Mo. |
Systèmes x64 | 50 % de la mémoire physique, jusqu’à 1,5 Go.Windows Server 2003 avec SP2 : 25 % de mémoire système, jusqu’à 200 Mo. Windows Server 2003 avec SP1, Windows Server 2003 et Windows XP 64 bits Edition : 32 Mo. |
Systèmes Intel Itanium | 50 pour cent de la mémoire physique, jusqu’à 1 Go.Windows Server 2008, Windows Vista, Windows Server 2003 avec SP2, Windows Server 2003 avec SP1, Windows Server 2003 et Windows XP 64 bits Edition : 32 Mo. |
Windows 2000
Les données du Registre sont stockées dans le pool paginé, une zone de mémoire physique utilisée pour les données système qui peuvent être écrites sur le disque lorsqu’elles ne sont pas utilisées. La valeur RegistrySizeLimit établit la quantité maximale de pool paginé qui peut être consommée par les données de Registre de toutes les applications. Cette valeur se trouve dans la clé de Registre suivante :
HKEY_LOCAL_MACHINE
System
CurrentControlSet
Control
Par défaut, la limite de taille du Registre est de 25 % du pool paginé. (La taille par défaut du pool paginé est de 32 Mo. Il s’agit donc de 8 Mo.) Le système garantit que la valeur minimale de RegistrySizeLimit est de 4 Mo et que la valeur maximale est d’environ 80 % de la valeur PagedPoolSize. Si la valeur de cette entrée est supérieure à 80 % de la taille du pool paginé, le système définit la taille maximale du Registre sur 80 % de la taille du pool paginé. Cela empêche le Registre de consommer de l’espace nécessaire par les processus. Notez que la définition de cette valeur n’alloue pas d’espace dans le pool paginé, ni ne garantit pas que l’espace sera disponible si nécessaire.
La taille du pool paginé est déterminée par la valeur PagedPoolSize dans la clé de Registre suivante :
HKEY_LOCAL_MACHINE
System
CurrentControlSet
Control
SessionManager
MemoryManagement
Pour obtenir un exemple de détermination des tailles actuelles et maximales du Registre, consultez Détermination de la taille du Registre.
Le pool paginé maximal est d’environ 300 470 Mo, de sorte que la limite de taille du Registre est de 240 à 376 Mo. Toutefois, si le commutateur /3 Go est utilisé, la taille maximale du pool paginé est de 192 Mo, de sorte que le Registre peut être un maximum de 153,6 Mo.