Compartir a través de


Ofrecer una excelente experiencia de inicio y apagado

En esta sección se proporciona información general sobre la experiencia de inicio rápido y nuestras recomendaciones a los partners para ofrecer la mejor experiencia de encendido y apagado para los clientes.

Los equipos se pueden activar y desactivar muchas veces al día. Según los patrones de uso y la capacidad de duración de la batería del dispositivo, un equipo podría apagarse, dormir o hibernar. El arranque del sistema es la primera experiencia que los usuarios tienen con su dispositivo y es una experiencia recurrente durante la vigencia del dispositivo. La telemetría del cliente nos indica que los usuarios arrancan y apagan su PC al menos una vez al día. Aunque la funcionalidad en espera conectada reduce la frecuencia con la que se debe arrancar un dispositivo, es posible que el arranque siga siendo necesario para las actualizaciones de software y firmware, los estados de batería bajos y los cambios de configuración principales en el dispositivo.

A partir de Windows 8.x, la velocidad de la transición de encendido/apagado es significativamente más rápida que las versiones anteriores de Windows. El modelo de interacción del usuario usado anteriormente era interrumpir un arranque con pulsaciones de teclas para indicar rutas de acceso de arranque alternativas. Con un tiempo de arranque mucho más rápido, las interrupciones de arranque no son prácticas y afectan negativamente a la experiencia de arranque. En versiones anteriores, era importante detener el proceso de arranque lo antes posible para los puntos de decisión, como el arranque en un sistema operativo alternativo, porque el movimiento hacia atrás era un proceso largo y lento. También era mucho más fácil con tiempos de arranque lentos para crear períodos de tiempo en los que se podían detectar y activar las pulsaciones de teclas. En Windows 8.x y Windows 10, este ya no es el caso.

El rendimiento de arranque predeterminado ha mejorado considerablemente con el aprovechamiento de la tecnología de hibernación. Para obtener información sobre las mejoras realizadas en el rendimiento de la experiencia de encendido y apagado, vea Hibernate (S4) suspend and resume. Las consideraciones de este tema describen el modelo de usuario para las transiciones rápidas de activación y desactivación, las opciones relacionadas con esas transiciones y los componentes requeridos por los OEM/ODM para ofrecer la experiencia.

Consideraciones

La principal fuente de retrasos de arranque es la precarga del software OEM. El inicio rápido representa aproximadamente el 50 % del tiempo de arranque general y se ve directamente afectado por los siguientes procesos de primera y de terceros iniciados en el arranque:

  • Servicios que se reanuda

  • Aplicaciones de inicio, como accesos directos en ejecución de bandejas, indicadores de estado oem, etc.

  • Actividad antivirus

Estos procesos consumen recursos del sistema de CPU y disco y pueden provocar cuellos de botella, lo que puede hacer que el dispositivo deje de responder, retrasar los tiempos de inicio de la aplicación o hacer que las aplicaciones se ejecuten lentamente.

Al optimizar el rendimiento de encendido y apagado, tenga en cuenta las siguientes sugerencias:

  • Determine qué procesos que no son de la bandeja de entrada o de terceros se cargan y ejecutan en los sistemas.

  • Determine qué se inicia en el arranque mediante claves de ejecución del Registro; Normalmente, se trata de procesos relacionados con hardware de IHV.

  • Evite incluir procesos de código administrado en la ruta de acceso de arranque.

  • Use técnicas para retrasar los procesos de inicio en el arranque.

  • Considere la posibilidad de convertir aplicaciones de escritorio tradicionales en aplicaciones de Microsoft Store, que no provocan un impacto en el arranque. Trabaje con IHD para aprovechar las aplicaciones de dispositivo de Microsoft Store.

  • Comprenda cómo afecta el consumo de memoria a los tiempos de transición y apagado y siga estas sugerencias:

    • Optimice el consumo de memoria para reducir el tamaño del archivo hiberfile.

    • Use el nuevo modo de diagnóstico de Hiberfile.

    • Evite habilitar suspensión híbrida en portátiles y ultraportables, ya que genera un hiberfile en suspensión en espera (S3).

  • Migre los procesos del actualizador para usar AM para reducir el número de procesos cargados.

  • Comprenda que el rendimiento del disco es fundamental para el rendimiento activado y desactivado. Por ejemplo:

    • En promedio, los tiempos de lectura y escritura de hiberfile representan el 50 % del arranque en el tiempo de pantalla inicio.

    • La mayoría de los sistemas están enlazados al disco en el arranque.

    • Un HDD/SSD más rápido puede mitigar el efecto de una carga previa de software significativa que se está cargando e inicializando en el arranque.

    • Considere la posibilidad de equilibrar la CPU, el rendimiento del disco y la capacidad de memoria.

  • Comprenda que las unidades híbridas son beneficiosas para el rendimiento activado y desactivado y considere la posibilidad de usar la nueva característica de sugerencias de unidad híbrida.

Inicio rápido

A partir de Windows 8.x, el escenario de apagado y reinicio predeterminado se ha actualizado y denominado inicio rápido. El inicio rápido comienza con el proceso de apagado e incluye la escritura de datos en disco similar al proceso de hibernación. Una diferencia clave es que todas las sesiones de usuario (sesión 1) están desactivadas y la información restante se escribe en el archivo hiberfile. Al arrancar el equipo desde este estado, Windows carga el estado inicializado anteriormente leyendo desde el archivo hiberfile, en lugar de ejecutar el proceso de arranque completo en el que se inicializan Windows, controladores, dispositivos y servicios. Este método acelera el proceso de inicialización del bloqueo o la pantalla Inicio.

Además, el uso de la tecnología de hibernación se ha ampliado para crear una nueva experiencia de inicio y apagado predeterminadas que es mucho más rápida que un arranque completo. Para obtener más información, consulte el diagrama siguiente:

Diagrama de las fases de inicio rápido y apagado

La secuencia de inicio y apagado más rápida usa la infraestructura de hibernación para colocar el equipo en hibernación. A diferencia del apagado completo y el arranque, la sesión del usuario se cierra y se realiza una hibernación. Como resultado, el archivo de hibernación es mucho más pequeño, lo que garantiza que el proceso de hibernación y reanudación sea más rápido. Esta secuencia también aprovecha las optimizaciones de paralelización.

Los desarrolladores que crean controladores o aplicaciones con un servicio del sistema y los integradores de sistemas deben supervisar los problemas de calidad de los controladores, como pérdidas de memoria. Aunque la calidad del controlador siempre ha sido importante, tenga en cuenta que el tiempo de actividad entre los reinicios del kernel podría ser significativamente mayor que en versiones anteriores de Windows porque durante los apagados iniciados por el usuario, el kernel, los controladores y los servicios se conservan y restauran, no solo se reinician.

Arranque completo

Para obtener la mejor experiencia de inicio, tenga en cuenta las siguientes sugerencias:

  • Equilibre el rendimiento de la CPU, el rendimiento del disco y la capacidad de memoria.

  • Optimice el rendimiento del enrutamiento de lectura de UEFI.

  • Asegúrese de que los controladores de los dispositivos de nodo hoja sigan las directrices de reanudación rápida.

  • Asegúrese de que los controladores completen sus IRP de potencia establecida en S0 lo antes posible para evitar que otros dispositivos inicien sus IRP de configuración de S0.

  • Valide los controladores y servicios frente a pérdidas de memoria.

  • Evite registrar un servicio para recibir notificaciones de eventos de administración de energía, a menos que sea absolutamente necesario.

  • Asegúrese de que los controladores no esperen a completar su S_IRP hasta que se complete su D_IRP. Si lo hace, impedirá que otros dispositivos reciban su S_IRPs, lo que provocará retrasos en la serialización y aumentará el tiempo total de suspensión.

Comportamiento de la API de apagado

Para garantizar la mejor compatibilidad con las aplicaciones a la vez que se habilita la mejor experiencia posible para las nuevas aplicaciones, se han creado nuevas marcas para solicitar un apagado para el inicio rápido. En la tabla siguiente se describen las nuevas marcas y el comportamiento de las API de apagado. Los detalles sobre estas API y marcas están disponibles en MSDN.

API Comportamiento de apagado
InitiateSystemShutdownEx Realiza siempre un apagado completo.
InitiateSystemShutdown Realiza siempre un apagado completo.
InitiateShutdown Realiza un apagado para un inicio rápido con el uso de la marca SHUTDOWN_HYBRID
ExitWindowsEx Realiza un apagado para el inicio rápido con el uso de la marca EWX_HYBRID_SHUTDOWN

Distinguir cuándo se produce una hibernación o un apagado para el inicio rápido

Los controladores de dispositivos recibirán una notificación para realizar la transición a un estado de alimentación de destino S5 al apagarse en lugar de un estado de hibernación de S4, que es el estado de energía real. Esto permite a los controladores establecer un comportamiento de reactivación diferente para el inicio rápido después de un apagado. Los estados de destino y efectivo se encuentran en la estructura System_Power_State_Context.

Para la mayoría de los dispositivos, la distinción entre el comportamiento de reactivación S4 y S5 se controla en la capa del controlador de bus. Si implementa su propio controlador de autobús y necesita distinguir entre estos dos comportamientos, póngase en contacto con su representante de Microsoft para obtener información adicional. Para ofrecer una experiencia de inicio rápida, siga estos procedimientos recomendados:

  • Equilibre el rendimiento de la CPU, el rendimiento del disco y la capacidad de memoria.

  • Optimice el rendimiento del enrutamiento de lectura de UEFI.

  • Asegúrese de que los controladores de los dispositivos de nodo hoja deben reanudar rápidamente las directrices.

  • Asegúrese de que los controladores completen sus IRP de configuración de energía S0 lo antes posible para evitar que otros dispositivos obtengan sus IRP de potencia establecida en S0.

  • Evite iniciar aplicaciones en el arranque, excepto las aplicaciones antimalware y de dispositivo.

  • Nunca inicie aplicaciones en el arranque mediante RunOnce.

  • Evite las aplicaciones de código administrado en la ruta de acceso de arranque.

  • Retrasar el inicio de aplicaciones no críticas mediante el Programador de tareas.

  • Valide los controladores y servicios frente a pérdidas de memoria.

  • Registre un servicio para recibir notificaciones de eventos de administración de energía solo si es absolutamente necesario.

  • Asegúrese de que los controladores no esperen a completar su S_IRP hasta que se complete su D_IRP. Si lo hace, impedirá que otros dispositivos reciban su S_IRPs, lo que provocará retrasos en la serialización y aumentará el tiempo total de suspensión.

Hibernación (S4) suspender y reanudar

En una transición de hibernación, todo el contenido de la memoria se escribe en un archivo de la unidad del sistema principal. Este proceso conserva el estado de Windows, las aplicaciones y los dispositivos. Si la superficie de memoria combinada consume toda la memoria física, el archivo de hibernación debe ser lo suficientemente grande como para asegurarse de que haya suficiente espacio para ahorrar todo el contenido de la memoria física. Dado que los datos se escriben en almacenamiento no volátil, el DRAM no necesita mantener la actualización automática y se puede apagar. Este comportamiento da como resultado un consumo de energía muy bajo, similar al equipo que está en estado apagado.

Escenarios de usuario para hibernar

Estos son los escenarios críticos que requieren tecnología de hibernación en equipos que ejecutan la versión moderna de Windows:

  • Posponer a hibernar: Un sistema se deja inactivo y pasa a hibernar automáticamente.

  • Batería crítica: Windows hiberna automáticamente el equipo para evitar la pérdida de datos cuando se agota la energía de la batería.

  • Condición térmica: Un sistema alcanza una temperatura predefinida que requiere apagado automático del sistema para proteger los circuitos.

  • Iniciado por el usuario: Un usuario selecciona hibernar para guardar el estado de usuario actual con un consumo de energía muy mínimo.

Aunque esta lista puede evolucionar a medida que evolucionan las necesidades y funcionalidades de los equipos, se espera que muchos equipos sigan usando hibernación, especialmente cuando no es posible el modo de espera conectado.

Fase de hibernación

Diagrama de la fase de hibernación

En la fase de hibernación, Windows notifica a los distintos componentes que se está produciendo una fase de hibernación y, a continuación, guarda el contexto del usuario y el estado del sistema. Los datos se comprimen y escriben en el disco; el sistema usa todos los núcleos de procesador del sistema para comprimir los datos en la memoria y usa un procesador al escribir los datos en el disco. Una vez escritos todos los datos en el disco, Windows notifica al firmware que está listo para apagarse.

La notificación de firmware se realiza escribiendo en los registros de tipo de suspensión con valores proporcionados en el objeto S4 tal como se define en ACPI 4, Sección 4.5, Tabla 4-13 y Sección 7.3.4. Esto indica al firmware que, en el siguiente encendido, se intentará una reanudación en lugar de un arranque completo.

Fase de reanudación

Diagrama de la fase de reanudación

La reanudación de hibernación comienza con el firmware POST, que es similar a un arranque completo. El administrador de arranque de Windows detecta que se requiere una reanudación de la hibernación mediante la detección de un archivo de hibernación válido y dirige al sistema para que se reanude, restaurando el contenido de la memoria y todos los registros arquitectónicos. En el caso de una reanudación de hibernación, el contenido de la memoria se lee desde el disco, se descomprime y restaura, colocando el sistema en el estado exacto en el que estaba hibernado. Una vez restaurado el contenido de la memoria, los dispositivos se reinician y la máquina vuelve a un estado en ejecución, listo para el inicio de sesión.

Tenga en cuenta que, aunque se notifican los controladores y servicios de dispositivos, no se reinician; se restauran al estado en el que estaban cuando se produjo la fase de hibernación.

La restauración de la memoria del sistema se divide en dos fases. La primera fase se realiza para restaurar una parte mínima del kernel, que luego se usa para completar la restauración de memoria para el resto del sistema. La primera fase debe realizarse con un único núcleo de entorno de procesador. Sin embargo, después de restaurar la parte mínima de la memoria del sistema, se pueden usar todos los núcleos del procesador para paralelizar la descompresión y la restauración de los datos durante el resto de la reanudación, lo que acelera significativamente el proceso.

El proceso se mejora aún más mediante el ajuste del tamaño correcto del algoritmo de cifrado y descifrado, en función de las funcionalidades del procesador.

Las optimizaciones de paralelización solo están disponibles en sistemas en los que el sistema puede garantizar que tendrá todos los datos que podría necesitar del entorno mínimo disponible. Por lo tanto, no se puede usar si los componentes agregados a la pila de volcado de memoria, que se usa durante la operación de reanudación de hibernación, tampoco se han declarado como parte de ese entorno mínimo. Si va a crear este tipo de componente, como un controlador de filtro de volcado de memoria o un dispositivo que usa una ruta de volcado de memoria independiente, póngase en contacto con Microsoft para que pueda llevarle a través de este proceso.

Firmware POST

Los tiempos POST más rápidos reducen el tiempo total de encendido al estado utilizable. Dado que el inicio rápido de Windows es significativamente más rápido, el tiempo post puede convertirse en una proporción más significativa del tiempo de arranque total. La información adicional sobre los requisitos de hora POST se documenta en los requisitos de certificación de hardware de Windows. El análisis muestra que los requisitos de tiempo POST son factibles en plataformas que enumeran completamente y permiten un complemento completo de los componentes de hardware en el entorno del sistema operativo previo.

Dado que Windows 8, todos los equipos deben enviar su firmware en función de la especificación Unified Extensible Firmware Interface (UEFI) 2.3.1 o posterior. Dado que muchos sistemas se basan en diseños de firmware antiguos y heredados, hay oportunidades de optimizar el diseño de firmware para adaptarse mejor a tiempos POST más rápidos.

Diagrama del flujo de inicialización a través de la arquitectura UEFI

La arquitectura UEFI fluye a través de varias fases de inicialización de firmware y plataforma. En función de estas fases bien definidas, hay varias consideraciones de diseño que podrían reducir el tiempo POST.

Seguridad (SEC)

En la fase sec, una plataforma realiza la extracción, descompresión y validación del microcódigo de plataforma almacenado en un flash SPI NOR. En este punto de encendido, la plataforma tiene ram de inicialización y su bus. En la lista siguiente se incluyen algunas preguntas que se deben tener en cuenta para esta fase:

  • ¿Es el microcódigo específico de la SKU o general para varias plataformas? El tamaño del microcódigo afectará a la transferencia de descompresión a la RAM y a la validación.

    Considere la posibilidad de refactorizar el microcódigo para que sea lo más pequeño posible.

  • ¿Se puede aumentar la velocidad del bus flash SPI NOR? Muchas plataformas admiten varias velocidades de reloj para la parte flash SPI NOR. A menudo funcionan con una frecuencia de reloj inferior (por ejemplo, 16 MHz) y se pueden aumentar.

    Considere la posibilidad de aumentar la velocidad del bus para reducir la latencia en la transferencia de microcódigo de memoria flash NOR a RAM.

  • ¿La plataforma tiene suficiente memoria FLASH NOR? Para ahorrar costos, muchas plataformas están diseñadas con la parte NOR mínima, lo que da lugar a una mayor compresión de microcódigo y mayor costo para la descompresión.

  • Considere una parte flash NOR más grande para almacenar código con menos compresión.

El equilibrio de compresión, diseño y transferencia de microcódigo podría mejorar el rendimiento de los tiempos POST. Al final de SEC, el microcódigo validado copia el resto del kernel de UEFI y el entorno de NOR flash en RAM.

Inicialización previa a EFI (PEI)

Una vez que el kernel está en RAM, la plataforma inicializa el kernel y comienza a validar la integridad del código, la tabla del sistema y otros elementos. Considere la posibilidad de diseñar un kernel UEFI optimizado para la plataforma en lugar de un kernel genérico no optimizado. Las optimizaciones pueden incluir:

  • Compilación de marcas durante compilaciones de kernel que optimizan los búferes de memoria

  • Vinculación a módulos que no son necesarios para la inicialización de la plataforma

Consulte con los diseñadores de firmware para obtener ideas sobre cómo optimizar el kernel de UEFI.

Entorno de ejecución de controladores (DXE)

En este punto de inicialización, se cargan los controladores DE UEFI principales y los controladores DXE de terceros. Con las herramientas proporcionadas por los diseñadores de firmware, el propietario puede identificar cuáles son los controladores DXE de menor rendimiento y evaluar si ese código se puede optimizar.

Otra consideración en esta fase es el número de controladores DXE cargados. La plataforma solo debe cargar los controladores que necesita para garantizar un arranque y no depender del hardware opcional. El diseño final depende de la selección de arranque de destino.

Selección de dispositivos de arranque (BDS)

La selección del dispositivo de arranque es el paso final de la inicialización de la plataforma antes de pasar a Windows. Durante este paso, el firmware determina qué dispositivos de arranque están presentes y cuáles se van a entregar a la ejecución. El diseño y las optimizaciones cuidadosos de las variables de arranque afectarán a la transición al cargador de arranque de Windows.

Enumeración USB

La parte de enumeración USB de POST puede tardar mucho tiempo. Con los nuevos cambios introducidos en Windows 8, la enumeración USB ya no será necesaria en el caso de arranque predeterminado. Para obtener optimizaciones de tiempo POST adicionales, póngase en contacto con el proveedor de silicio y firmware. Se recomienda enumerar el USB si la secuencia de arranque está establecida en arrancar en cualquier otra ruta de acceso, como en los escenarios siguientes:

  • Hay otras opciones más altas en el orden de arranque, como cuando Las opciones de inicio de Windows To Go insertan una entrada de arranque de clase USB en la parte superior del orden de arranque.

  • Se establece una variable de arranque siguiente, lo que hace que se use un dispositivo de arranque diferente.

  • Los errores se producen en los arranques inmediatamente anteriores.

Aplicaciones

Las aplicaciones de escritorio que se encuentran en la ruta de arranque afectarán a la transición o desactivada y la eficiencia energética. El Administrador de tareas marcará las aplicaciones de escritorio que tienen un alto impacto y notificarán al usuario sobre las aplicaciones de escritorio que siempre se ejecutan. Para obtener más información, consulte Aplicaciones de inicio. En lugar de iniciar automáticamente las aplicaciones de escritorio, se recomienda encarecidamente usar el mantenimiento automático y ejecutarlas solo cuando sea necesario.

Importante

Todos los objetivos definidos excluyen el tiempo de inicialización del BIOS.

Para ofrecer una excelente experiencia de encendido y apagado, se recomienda que un equipo cumpla los objetivos de las tablas siguientes.

Escenario Tableta (CS) Descapotable Cuaderno Todo en uno
Inicio rápido (segundos) < 25 <= 15 <= 15 <= 15
Tamaño de hiberfile (MB) < 300 <= 300 <= 300 <= 300
Reanudación en espera (segundos) No aplicable <= 7 <= 7 <= 5

Métrica Unidad Objetivo

Número de procesos iniciados a través de claves de ejecución del Registro

Se define como el número total de procesos iniciados en cada arranque mediante claves de ejecución. Tiene un impacto directo en el uso de recursos posteriores o desactivados (CPU y disco).

Se puede encontrar examinando algunos eventos ETW en los seguimientos de inicio rápido (mediante la tabla Eventos genéricos):

Nombre del proveedor: Microsoft-Windows-Shell-CoreTask: Explorer_ExecutingFromRunKeyOpcode: win:Start

El campo 1 del evento (Comando) proporciona la línea de comandos que se usa para iniciar los procesos.

count

< 10

E/S de disco de lectura de prioridad normal durante el inicio rápido Después de activar/desactivar

Esta métrica se puede obtener directamente de los resultados de la evaluación en la Consola de evaluación de Windows, en:

Total Boot > Post On/Off > Total Disk Usage > Normal Priority Reads (Bytes)

MB

< 30

Validación y pruebas

Puedes usar windows Assessment Toolkit para mejorar el rendimiento de tu EQUIPO más allá de los requisitos mínimos. Las evaluaciones de Windows relacionadas con la experiencia de on/off incluyen:

  • Evaluación de inicio rápido

  • Evaluación de arranque y apagado completo

  • Evaluación en espera

  • Evaluación de hibernación

Las nuevas versiones de las evaluaciones de inicio rápido e hibernación incluyen un modo de diagnóstico hiberfile . Este modo ayuda a detectar controladores y aplicaciones que contribuyen al tamaño de hiberfile grande y detecta controladores de almacenamiento que no implementan la reanudación de varias fases.

Hay dos categorías principales de páginas de memoria que se almacenan en el archivo hiberfile con respecto a la evaluación del sistema: páginas de grupo no paginadas del controlador y páginas de conjuntos de trabajo privados de aplicaciones o servicios.

El nuevo modo le ayudará a comprender qué componentes de software se deben mejorar para el uso de memoria.

Herramientas y referencia técnica

Puede obtener más información sobre la experiencia de on/off y descargar herramientas para analizar el rendimiento de estos recursos:

Título y vínculo del recurso Tipo de contenido Descripción
Aplicaciones de inicio Artículo Resalta algunos de los efectos que tienen las aplicaciones de inicio en un dispositivo Windows y proporciona instrucciones a los desarrolladores (ISV/IHV) y los OEM para replantear los patrones de uso de las aplicaciones de inicio para mejorar la capacidad de respuesta y la duración de la batería.
Resultados de las evaluaciones activadas y desactivadas Documento Le ayuda a interpretar los resultados generados por las evaluaciones de encendido/apagado (rendimiento de arranque (inicio rápido), rendimiento de arranque (arranque completo), rendimiento en espera y rendimiento de hibernación.