El Prefetcher es un componente de Microsoft Windows que se introdujo en Windows XP . [ 1 ] Es un componente del Subsistema del Administrador de Sesiones que puede acelerar el proceso de arranque de Windows y reducir el tiempo de inicio de los programas. Lo logra almacenando en caché en la RAM los archivos que necesita una aplicación al iniciarse, consolidando así las lecturas de disco y reduciendo las búsquedas en disco. Esta característica fue protegida 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 monitorizando y adaptándose a los patrones de uso de las mismas a lo largo del tiempo, y almacenando en caché la mayoría de los archivos y datos que necesitan en la memoria con antelación para que se pueda acceder a ellos rápidamente cuando sea necesario. ReadyBoost (cuando está habilitado) utiliza memoria externa, como una unidad flash USB, para ampliar la caché del sistema más allá de la cantidad de RAM instalada en el equipo. SuperFetch 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 un sistema Windows arranca, es necesario leer y procesar componentes de muchos archivos. A menudo, distintas partes del mismo archivo (por ejemplo, subárboles del Registro) se cargan en momentos diferentes. Como resultado, se invierte una cantidad considerable de tiempo en acceder repetidamente a los archivos, aunque un único acceso sería más eficiente. El prefetcher funciona monitorizando los datos a los que 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 prefetcher seguirá monitorizando dicha actividad hasta 30 segundos después de que se haya iniciado el intérprete de comandos del usuario, hasta 60 segundos después de que todos los servicios hayan finalizado su inicialización, o hasta 120 segundos después de que el sistema haya arrancado, lo que ocurra primero. El prefetcher puede analizar la memoria virtual y el archivo de paginación para determinar qué archivos binarios deben precargarse.
Los arranques posteriores podrán utilizar la información registrada en este archivo de rastreo para cargar código y datos de una manera más eficiente (es decir, reordenando las lecturas del disco para minimizar o eliminar la necesidad de acceder al mismo archivo varias veces, minimizando así los movimientos del cabezal del disco).
La precarga de aplicaciones funciona de manera similar, pero se limita al inicio de una sola aplicación. Solo se monitorizan los primeros 10 segundos de actividad. [ 1 ] : 458
El prefetcher almacena sus archivos de rastreo en la carpeta "Prefetch" dentro de la carpeta Windows (normalmente C:\Windows\Prefetch). El nombre del archivo de rastreo de arranque siempre es NTOSBOOT-B00DFAAD.PF, y los archivos de rastreo de la aplicación son una concatenación del nombre del ejecutable de la aplicación, un guion, una representación hexadecimal del hash de la ruta donde reside el archivo y una extensión ".pf". Las aplicaciones que alojan otros componentes (por ejemplo, Microsoft Management Console o Dllhost) también incluyen el nombre del componente cargado en el hash calculado; esto da como resultado que se creen diferentes archivos de rastreo para cada componente.
Tenga en cuenta que el Programador de tareas es el proceso responsable de analizar los datos de rastreo recopilados por el prefetcher y escribir archivos en el directorio del prefetcher. Por lo tanto, el prefetcher no funcionará correctamente si el servicio del Programador de tareas no está iniciado.
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 el equipo está inactivo, se procesan las listas de archivos y directorios a los que se hizo referencia durante el proceso de arranque y el inicio de las aplicaciones. [ 1 ] : 461–462 El resultado procesado se almacena en Layout.iniel 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 los cabezales del disco duro tienen que recorrer para pasar de un archivo a otro.
Es posible activar esta reordenación (ejecutando "Defrag.exe %systemdrive% -b" desde la línea de comandos) sin realizar una desfragmentación completa.
Si el sistema está instalado en una unidad de estado sólido , ReadyBoost está desactivado.
Configuración
La configuración del Prefetcher se almacena en el Registro de Windows en HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters. El valor de EnablePrefetcher puede establecerse como uno de los siguientes: [ 5 ]
- 0 = Deshabilitado
- 1 = Precarga de la aplicación habilitada
- 2 = Precarga de arranque habilitada (predeterminado solo en Windows Server 2003 ). [ 6 ]
- 3 = Precarga de aplicaciones y arranque habilitada (predeterminado en las versiones de escritorio de Windows). [ 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 aplicación "/prefetch:1" [ 8 ] , que es un interruptor 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 precarga significativamente diferentes. [ 9 ]
Un segundo mito es que el usuario debería eliminar el contenido de la carpeta de precarga para acelerar el equipo. Si se hace esto, Windows tendrá que recrear todos los archivos de precarga, lo que ralentizará Windows durante el arranque y el inicio de los programas hasta que se creen los archivos de precarga, a menos que se desactive el prefetcher. [ 10 ] [ 11 ] [ 12 ] Windows mantiene archivos de precarga en la carpeta Prefetch para hasta los 128 programas ejecutados más recientemente. [ 13 ]
Véase también
- Windows ReadyBoost
- Tecnologías de E/S de Windows Vista
- Lista de componentes de Microsoft Windows
- Nuevas funciones de Windows XP
- leer más adelante : la tecnología Linux equivalente
- Precarga de enlaces : el equivalente para sitios web
- precarga de caché
Referencias
- 1 2 3 Russinovich, Mark ; David Solomon (2005). "Gestión de memoria". Microsoft Windows Internals (4.ª ed.). Microsoft Press. págs. 458–462 . ISBN 0-7356-1917-4.
- ↑ "Precarga de páginas antes de una secuencia de fallo de página grave" , patente estadounidense 6,633,968 , consultada el 16 de noviembre de 2023.
- ↑ "Página principal de la revista MSDN" . Archivado del original el 16 de mayo de 2008. Consultado el 23 de febrero de 2008 .
- ↑ "Dentro del núcleo de Windows Vista" . Microsoft .
- 1 2 3 4 "Mitos de XP" . Archivado del original el 8 de abril de 2009. Consultado el 17 de marzo de 2009 .
- ↑ "Centro de desarrollo de hardware de Windows" . Microsoft .
- ↑ "Desinformación y la bandera de precarga" . Microsoft . 25 de mayo de 2005. Consultado el 9 de diciembre de 2008 .
- ↑ "Desinformación y la bandera de precarga" . 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 una bandera /prefetch:# al iniciar una aplicación. [...] Algunos sitios han supuesto que este interruptor activa la precarga y sugieren agregarlo a cada ejecutable que sea importante [...]
- ↑ "Desinformación y la bandera de precarga" . 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 examina la bandera /prefetch:# cuando creamos el proceso; sin embargo, tiene un solo propósito: agregar el número pasado al hash. ¿Por qué? [~fragmento~]
- ↑ Gralla, Preston (2007). Big Book of Windows Hacks . O'Reilly Media, Inc. ISBN 978-0-596-52835-5.
- ↑ "Cuidado con los consejos falsos sobre XP" . Archivado del original el 24 de febrero de 2008. Consultado el 23 de febrero de 2008 .
- ↑ "Windows XP: Las mejoras en el núcleo crean un sistema operativo más robusto, potente y escalable" . Archivado del original el 16 de mayo de 2008. Consultado el 23 de febrero de 2008 .
- ↑ "Desinformación y la bandera de precarga" . Curioso, funcionó la última vez . Blogs de MSDN. 25 de mayo de 2005. Consultado el 9 de diciembre de 2008. Para
empezar, XP recreará esos datos de todos modos; en segundo lugar, recorta los archivos si hay más de 128 para no consumir espacio innecesariamente.
Enlaces externos
- Guía del prefetcher de Windows
- Prefetch o SuperFetch
- Analizador de prefetch de Windows Archivado el 4 de junio de 2011 en Wayback Machine Herramienta gratuita que se puede ejecutar en Windows, Linux o Mac OS-X.
- Software de gestión de memoria
- Precarga y preencuadernación
- Componentes de Windows
- Windows XP