El Prefetcher es un componente de Microsoft Windows que se introdujo en Windows XP . [1] Es un componente del Administrador de memoria que puede acelerar el proceso de inicio de Windows y acortar la cantidad de tiempo que lleva iniciar los programas. Para ello, almacena en caché los archivos que necesita una aplicación en la RAM cuando se inicia la aplicación, consolidando así las lecturas del disco y reduciendo las búsquedas en el disco. Esta característica está cubierta por la patente estadounidense 6.633.968. [2] [3]
Desde Windows Vista , el Prefetcher se ha ampliado con SuperFetch y ReadyBoost . SuperFetch intenta acelerar los tiempos de inicio de las aplicaciones monitoreando y adaptándose a los patrones de uso de las aplicaciones durante períodos de tiempo, y almacenando en caché la mayoría de los archivos y datos que necesitan en la memoria con anticipación para que se pueda acceder a ellos muy rápidamente cuando sea necesario. ReadyBoost (cuando está habilitado) usa una memoria externa como una unidad flash USB para extender el caché del sistema más allá de la cantidad de RAM instalada en la computadora. ReadyBoost también tiene un componente llamado ReadyBoot que reemplaza al Prefetcher para el proceso de arranque si el sistema tiene 700 MB o más de RAM. [4]
Descripción general
Cuando se inicia un sistema Windows, los componentes de muchos archivos deben leerse en la memoria y procesarse. A menudo, diferentes partes del mismo archivo (por ejemplo, secciones del registro) se cargan en momentos diferentes. Como resultado, se gasta una cantidad significativa de tiempo 'saltando' de un archivo a otro y viceversa varias veces, aunque un solo acceso sería más eficiente. El prefetcher funciona observando a qué datos se accede durante el proceso de arranque (incluidos los datos leídos de la tabla maestra de archivos NTFS ) y registrando un archivo de seguimiento de esta actividad. El buscador de arranque continuará observando dicha actividad hasta 30 segundos después de que se haya iniciado el shell del usuario, o hasta 60 segundos después de que todos los servicios hayan terminado de inicializarse, o hasta 120 segundos después de que el sistema se haya iniciado, lo que ocurra primero.
Los inicios futuros pueden usar la información registrada en este archivo de seguimiento para cargar código y datos de una manera más eficiente (es decir, reordenar las lecturas del disco para minimizar o eliminar la necesidad de acceder al mismo archivo varias veces, minimizando así los movimientos de la cabeza del disco).
La captación previa de aplicaciones funciona de manera similar, pero en cambio se localiza para el inicio de una sola aplicación. Solo se controlan los primeros 10 segundos de actividad. [1] : 458
El prefetcher almacena sus archivos de seguimiento en la carpeta "Prefetch" dentro de la carpeta de Windows (normalmente C:\Windows\Prefetch
). El nombre del archivo de seguimiento de inicio es siempre NTOSBOOT-B00DFAAD.PF
, y los archivos de seguimiento de la aplicación son una concatenación del nombre ejecutable de la aplicación, un guión, una representación hexadecimal del hash de la ruta en la que reside el archivo y una extensión ".pf". Las aplicaciones que albergan otros componentes (es decir, Microsoft Management Console o Dllhost) también tienen el nombre del componente cargado incluido en el hash calculado; esto da como resultado la creación de diferentes archivos de seguimiento para cada componente.
Tenga en cuenta que el Programador de tareas es el proceso responsable de analizar los datos de seguimiento recopilados por el prefetcher y escribir archivos en el directorio del prefetcher. Como resultado, el buscador previo no funcionará correctamente si no se inicia el servicio Programador de tareas.
Para mejorar aún más los tiempos de acceso, el Programador de tareas llama al Desfragmentador de disco de Windows cada tres días. Cuando la máquina está inactiva, se procesan las listas de archivos y directorios a los que se hizo referencia durante el proceso de arranque y los inicios de la aplicación. [1] : 461–462 El resultado procesado se almacena en Layout.ini
el directorio Prefetch y posteriormente se pasa al Desfragmentador de disco, indicándole que reordene esos archivos en posiciones secuenciales en el disco duro físico.
Esto mejorará aún más el rendimiento al minimizar la distancia que las cabezas del disco duro deben moverse de un archivo a otro.
Es posible activar este reordenamiento (ejecutando "Defrag.exe% systemdrive% -b" desde la línea de comandos) sin ejecutar una desfragmentación completa. [ cita requerida ]
Si el sistema está instalado en una unidad de estado sólido , Superfetch está deshabilitado pero la precarga regular se deja habilitada. [ cita requerida ]
Configuración
La configuración de Prefetcher se almacena en el Registro de Windows en HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
. El valor de EnablePrefetcher se puede establecer en uno de los siguientes: [5]
- 0 = deshabilitado
- 1 = Precarga de aplicaciones habilitada
- 2 = Precarga de arranque habilitada (predeterminado solo en Windows Server 2003). [6]
- 3 = Precarga de aplicaciones y arranque habilitada (predeterminado). [5]
El valor recomendado es 3 . [5] Los valores superiores a 3 no aumentan el rendimiento y cambiar el valor a 2 no hará que Windows arranque más rápido. [5]
Ajuste incorrecto del prefetcher
A menudo se encuentra en Internet [7] el ajuste de la aplicación "/ prefetch: 1", [8] que es un cambio válido pero mal entendido. Se utiliza para distinguir entre diferentes modos de funcionamiento de un ejecutable en caso de que esos diferentes modos tengan trazas de captación previa significativamente diferentes. [9]
Un segundo mito es que el usuario debe eliminar el contenido de la carpeta de captación previa para acelerar la computadora. Si se hace esto, Windows tendrá que volver a crear todos los archivos de captación previa, lo que ralentizará Windows durante el arranque y el programa se iniciará hasta que se creen los archivos de captación previa, a menos que se deshabilite la captación previa. [10] [11] [12] Windows mantiene archivos de captación previa en la carpeta de captación previa para hasta los 128 programas lanzados más recientemente. [13]
Ver también
- Windows ReadyBoost
- Tecnologías de E / S de Windows Vista
- Lista de componentes de Microsoft Windows
- Funciones nuevas en Windows XP
- readahead - la tecnología Linux equivalente
- Búsqueda previa de enlaces : el equivalente para sitios web
- Precarga de caché
Referencias
- ^ a b c Russinovich, Mark ; David Solomon (2005). "Gestión de la memoria". Internos de Microsoft Windows (4ª ed.). Microsoft Press. págs. 458–462 . ISBN 0-7356-1917-4.
- ^ Patente de EE. UU. 6,633,968
- ^ "Copia archivada" . Archivado desde el original el 16 de mayo de 2008 . Consultado el 23 de febrero de 2008 .CS1 maint: copia archivada como título ( enlace )
- ^ Dentro del kernel de Windows Vista
- ^ a b c d http://home.comcast.net/~SupportCD/XPMyths.html#Optimization
- ^ http://www.microsoft.com/whdc/archive/XP_kernel.mspx
- ^ "Información errónea y la bandera de captación previa" . Es curioso, funcionó la última vez . Blogs de MSDN. 25 de mayo de 2005 . Consultado el 9 de diciembre de 2008 .
[...] esto ha aparecido en lo que muchos , muchos , muchos sitios a ser leyenda urbana.
- ^ "Información errónea y la bandera de captación previa" . Es curioso, funcionó la última vez . Blogs de MSDN. 25 de mayo de 2005 . Consultado el 9 de diciembre de 2008 .
En segundo lugar, se puede especificar un / prefetch: #flag al iniciar una aplicación. [...] Algunos sitios han adivinado que este modificador activa la búsqueda previa y sugieren que lo agregue a todos los ejecutables que le interesan [...]
- ^ "Información errónea y la bandera de captación previa" . Es curioso, funcionó la última vez . Blogs de MSDN. 25 de mayo de 2005 . Consultado el 9 de diciembre de 2008 .
Ambas suposiciones son incorrectas . El sistema operativo mira el indicador / prefetch: # cuando creamos el proceso; sin embargo, tiene un propósito (y solo uno). Agregamos el número pasado al hash. ¿Por qué? [~ recorte ~]
- ^ Gralla, Preston (2007). Gran Libro de Hacks de Windows . "O'Reilly Media, Inc.". ISBN 978-0-596-52835-5.
- ^ "Cuidado con los consejos falsos de XP" .
- ^ "Windows XP: las mejoras del kernel crean un sistema operativo más robusto, potente y escalable" . Archivado desde el original el 16 de mayo de 2008 . Consultado el 23 de febrero de 2008 .
- ^ "Información errónea y la bandera de captación previa" . Es curioso, funcionó la última vez . Blogs de MSDN. 25 de mayo de 2005 . Consultado el 9 de diciembre de 2008 .
Por un lado, XP simplemente volverá a crear esos datos de todos modos; en segundo lugar, recorta los archivos de todos modos si hay más de 128 de ellos para que no consuma espacio innecesariamente.
enlaces externos
- La guía de Prefetcher de Windows
- Prefetch o SuperFetch
- Windows Prefetch Parser Herramienta gratuita que se puede ejecutar en Windows, Linux o Mac OS-X.