Prefetcher es un componente del sistema operativo Microsoft Windows que agiliza el proceso de su carga inicial , además de reducir el tiempo que se tarda en ejecutar programas. Prefetcher apareció por primera vez en el sistema operativo Windows XP . Desde Windows Vista , se ha complementado con las tecnologías SuperFetch y ReadyBoost .
El inicio de Windows y las aplicaciones va acompañado de la lectura en la memoria y el procesamiento de una gran cantidad de archivos. A menudo, el mismo archivo se abre varias veces para leer diferentes segmentos. Un acceso tan irracional a los archivos lleva mucho tiempo. Es mucho más eficiente acceder a cada archivo una sola vez, cargando información en la RAM antes de que los programas la necesiten. Prefetcher realiza un seguimiento de qué código y datos (incluida la tabla maestra de archivos NTFS ) se cargan durante el inicio del sistema operativo y las aplicaciones. Recopila esta información en archivos de seguimiento para optimizar el código y la carga de datos en ejecuciones posteriores.
Prefetcher observa el lanzamiento de cada aplicación durante los primeros 10 segundos. La supervisión del proceso de arranque del sistema está limitada en el tiempo y se detiene en los siguientes casos [1] :
Los archivos de seguimiento se almacenan en la carpeta Prefetch del directorio raíz de Windows [2] (normalmente C:\WINDOWS\Prefetch). La carga del sistema operativo se remonta a un archivo NTOSBOOT-B00DFAAD.pf. El inicio de los programas se rastrea en archivos separados cuyos nombres consisten en el nombre del archivo ejecutable del programa que se inicia, un guión, un hash hexadecimal de la ruta al archivo ejecutable y la extensión ".pf" (por ejemplo: ). Cuando se ejecutan aplicaciones que son un banco de trabajo para otros componentes (por ejemplo: , , ), el nombre del módulo cargado también se agrega al hash, como resultado, se crean diferentes archivos de rastreo para diferentes componentes (por ejemplo: , ). EXPLORER.EXE-082F38A9.pfDLLHOST.EXEMMC.EXERUNDLL32.EXEMMC.EXE-0B0171A2.pfMMC.EXE-393F4B82.pf
El servicio Programador de tareas desempeña un papel importante en el funcionamiento del componente Prefetcher . El "Programador de tareas" analiza los datos provenientes de Prefetcher y escribe los archivos de rastreo en el archivo . Si el servicio no se está ejecutando, Prefetcher no funcionará correctamente. El "Programador de tareas" también interactúa con el programa Desfragmentador de disco de Windows . Cada tres días, cuando la computadora está inactiva , se crea un archivo en la carpeta , que almacena una lista de archivos y carpetas utilizados al cargar el sistema operativo e iniciar programas. El desfragmentador de disco utiliza la información del archivo para colocar de manera óptima esos archivos físicamente en el disco. %SystemRoot%\Prefetch%SystemRoot%\PrefetchLayout.iniLayout.ini
La configuración de Prefetcher se almacena en el registro del sistema bajo la HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameterstecla [3] . El parámetro EnablePrefetcher (DWORD) puede tomar uno de los siguientes valores:
El cambio de parámetro EnablePrefetchersurte efecto inmediatamente.
RootDirPath
El archivo de captación previa de arranque del sistema se encuentra en el directorio %SystemRoot%\Prefetch y este parámetro especifica su ruta.
Valor predeterminado = captación previa
Hay varios mitos comunes sobre Prefetcher: