Partager via


Espace de stockage du Registre

Bien qu’il existe peu de limites techniques quant au type et à la taille des données qu’une application peut stocker dans le registre, certaines directives 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 en tant que fichier et référencées à l’aide d’une clé dans le Registre plutôt que d’être stockées en tant que valeur. Au lieu de dupliquer des données volumineuses 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 sous forme de structure et stocker la structure sous forme de valeur plutôt que de stocker chacun des membres de la structure sous forme de 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 du 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 : Les vues des fichiers du Registre sont mappées dans l’espace d’adressage du cache de l’ordinateur. Par conséquent, quelle que soit la taille des données du Registre, elles ne sont pas facturées au-delà 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 quant à la quantité totale d’espace qui peut être consommée par les 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 à compter 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 la 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 la mémoire système, jusqu’à 200 Mo.
Windows Server 2003 avec SP1, Windows Server 2003 et Windows XP Édition 64 bits : 32 Mo.
Systèmes Intel Itanium 50 % 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 Édition 64 bits : 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 du 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, donc 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 l’espace nécessaire aux processus. Notez que la définition de cette valeur n’alloue pas d’espace dans le pool paginé et ne garantit pas que l’espace sera disponible si nécessaire.

La taille du pool paginé est déterminée par la valeur PagedPoolSize de 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 étant d’environ 300 470 Mo, la taille limite 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.