Imprimir
Categoría: Entendiendo El registro de Windows
En prácticamente cualquier foro relacionado con Windows se pueden leer con frecuencia preguntas relacionadas con el rendimiento de Windows y si un registro de gran tamaño (fruto de múltiples instalaciones y desinstalaciones, muchas veces no muy bien diseñadas) puede afectar al desempeño de nuestro ordenador. Intentaré clarificar la cuestión de una manera teórica.

En primer lugar, describiré brevemente en qué consiste el Registro. Si se desea una descripción más global con aclaraciones sobre los conceptos básicos, recomiendo visitar el siguiente artículo de la KB de Microsoft: pincha aquí o el siguiente artículo de Fernando Muñoz (Fermu): pincha aquí. Creo que es importante partir de una serie de conceptos que nos ayudarán a entender mejor cómo funciona toda esa maraña de claves, valores, subclaves, etc.

El registro es un conjunto de ficheros (llamados técnicamente hives) alojados en diversas ubicaciones de Windows. Realmente estos archivos no presentan la aparente correlatividad que se manifiesta cuando son mostrados en un editor del Registro (como Regedit o Regedt32, por ejemplo); como simple curiosidad las ubicaciones en las que se alojan las distintas hives del registro son las siguientes:

HKEY_CLASSES_ROOT

Realmente es un enlace a esta otra clave: HKEY_LOCAL_MACHINE\SOFTWARE\Classes.
HKEY_CURRENT_USERRealmente es un enlace a la subclave del usuario en curso dentro de la clave: HKEY_USERS.
HKEY_LOCAL_MACHINE\SYSTEMX:\Windows\System32\Config\System
HKEY_LOCAL_MACHINE\SAMX:\Windows\System32\Config\Sam
HKEY_LOCAL_MACHINE\SECURITYX:\Windows\System32\Config\Security
HKEY_LOCAL_MACHINE\SOFTWAREX:\Windows\System32\Config\Software
HKEY_LOCAL_MACHINE\HARDWARENo se almacena en disco, se crea y elimina de la memoria en cada inicio de Windows.
HKEY_USERS\X:\Documents and Settings\Usuario\Ntuser.dat
HKEY_USERS\_ClassesX:\Documents and Settings\Usuario\Configuración local\Application Data\Microsoft\Windows\Usrclass.dat
HKEY_USERS\.DEFAULTX:\Windows\System32\Config\Default

Nota: “X” representa la letra de la unidad donde está instalado Windows y “Usuario” es el nombre de cada usuario que tiene acceso al sistema operativo.

UN LÍMITE A TENER EN CUENTA

En lo que a hives se refiere, existen algunas limitaciones respecto a su tamaño. El ejemplo más claro es HKEY_LOCAL_MACHINE\SYSTEM, que está limitada en Windows XP a 200 MB o a un cuarto del tamaño total de la memoria instalada en el sistema, lo que sea menor. Esta limitación viene impuesta porque esa hive es cargada por Ntldr en un momento en el cual no está activado el mecanismo de paginación de Windows.

WINDOWS 2000 Y XP, UN CAMBIO IMPORTANTE

Pese a que se diga en muchos sitios que Windows 2000 y Windows XP son prácticamente iguales, en lo que a alojamiento de hives del registro se refiere no se parecen demasiado:

Windows 2000 emplea parte de la memoria del núcleo para alojar los datos del registro. La memoria del núcleo la crea un subsistema de Windows llamado Memory Manager y para ello se basa en el tamaño total de la RAM (entre otros aspectos a cada cual más complejo) a la hora de alojar más o menos espacio para la memoria del núcleo.

Conforme se va llenando este tipo de memoria, puede llegar un momento en el cual el sistema operativo no disponga de suficiente memoria de núcleo para realizar sus tareas internas. Por este motivo, Windows 2000 limita el espacio máximo que puede ocupar el registro. Windows 2000 deja visualizar el tamaño total del registro desde el panel Memoria Virtual de Propiedades del sistema (consúltese la documentación de Windows 2000 para más información).

En Windows XP, por el contrario, no hay límite para el tamaño del registro. Este sistema operativo ya no almacena íntegramente el registro en memoria de núcleo, sino que delega en el subsistema de administración de memoria el traer en cada momento las hives del registro que están en uso por las aplicaciones de terceros y servicios de Windows; podríamos decir que el mecanismo se asemeja a la paginación que realiza Windows trayendo datos del disco a la RAM y guardando ciertas páginas de ésta en el disco cuando se requiere.

¿POR QUÉ NO EXISTE DEGRADACIÓN EN EL RENDIMIENTO?

Partiendo del esquema anterior, podríamos decir que los sistemas que hacen uso constante de la memoria del núcleo para almacenar datos del registro (Windows XP también lo hace pero de una manera muchísimo menos constante y sólo bajo ciertas condiciones muy concretas) sufren de una pérdida de rendimiento importante cuando el registro se va llenando; sin embargo, el límite que impone Windows 2000 de aproximadamente un 80 por ciento del total de la memoria de núcleo hace que el rendimiento no se vea afectado en absoluto por un registro de gran tamaño. En Windows XP el problema se reduce aún más puesto que en memoria sólo se alojan las hives del registro que están en uso, manteniéndose en el disco las demás claves. Esto optimiza muchísimo los tiempos de acceso al registro a la vez que minimiza el consumo de memoria.

Así pues, en el caso de que queden claves de aplicaciones que ya no están instaladas en el PC, éstas no supondrán ningún problema de rendimiento, pues por lo general ninguna otra aplicación, servicio o el propio Windows accede a las mismas así que se quedarán en el disco pero no se cargarán en ningún momento en la RAM.

Además de eso, debemos tener en cuenta que el “freno” más importante que se le puede hacer al rendimiento del sistema (refiriéndonos al registro de Windows) es el acceso constante e injustificado al mismo por parte de ciertas aplicaciones. Muchas aplicaciones -algo mal diseñadas- se dedican intensivamente a revisar los valores de ciertas claves del registro con el fin de encontrar algún cambio en las mismas (en lugar de emplear ciertas funciones que proporciona Windows, léase la siguiente página para más información).

CONCLUSIÓN

Con este artículo querría desde aquí desterrar el mito de limpiar el registro para obtener un mejor rendimiento. La limpieza del registro es un proceso bastante arriesgado incluso si se hace sabiendo lo que se toca, y las aplicaciones que aparentemente limpian el registro no tienen constancia plena de las claves que están en uso o no, las claves que son de Windows o de una aplicación de terceros, etc. Lo más probable es que, tras ejecutar alguna de estas herramientas, Windows quede dañado de una u otra manera. Recordad que Windows es un poco “tonto” y requiere de un registro para saber qué hardware cargar, cómo cargarlo, qué interfaz mostrar, qué programas tiene instalados o qué conexiones de red tiene agregadas. Si Windows no obtiene un dato correcto desde este registro, el sistema operativo funcionará incorrectamente incluso hasta tal punto que tengamos que reinstalarlo de nuevo. Mi consejo más bien es que se sea cauto/a con las aplicaciones a instalar, ya que muchas de ellas acceden intempestivamente al registro y degradan así el rendimiento del sistema. Si queréis profundizar sobre este tema tenéis más información (en inglés) en la siguiente página web.

Daniel Martín, 2005

Revisión: 1.2 (19 de diciembre de 2005)

Visto: 26518