Compartir a través de


Ofrecer una excelente experiencia con poca memoria

La cantidad de memoria disponible tiene un efecto significativo en la experiencia general del usuario, que va desde la capacidad de respuesta general del sistema, la capacidad de respuesta al cambiar entre las aplicaciones de estilo de Microsoft Store y la duración de la batería. Estos son todos los factores importantes que se deben tener en cuenta al evaluar la experiencia general con poca memoria. (La memoria baja es de 1 GB de RAM en Windows de 32 bits y 2 GB de RAM en Windows de 64 bits).

Consideraciones

Hay varias cosas que un OEM, IHV y ISV deben tener en cuenta al tener como destino un dispositivo de poca memoria.

Controladores y aplicaciones

Superficie de memoria de línea base general

La imagen típica de Windows comercial de 32 bits consume aproximadamente 400 MB de memoria en uso después del arranque (medida mediante la evaluación de superficie de memoria en ADK). Lo que permite un 10 % de espacio en la cabeza o 100 MB en 1 GB, esto deja suficiente memoria para que las aplicaciones de 2 a 3 estén en memoria física, lo que permite cambiar rápidamente entre las aplicaciones. Cuanto mayor sea la superficie de memoria del sistema operativo base, menor será la memoria disponible para el usuario y las aplicaciones.

Los factores clave que afectan a la superficie de memoria del sistema operativo de línea base son los controladores y el software cargado previamente, incluidas las aplicaciones antimalware, las aplicaciones de escritorio del dispositivo y los actualizadores de software.

  • Superficie del controlador: Esto incluye código de controlador y asignaciones asociadas. Dado que la mayoría de los controladores existen en memoria en todo momento, la memoria no paginable (o el contenido que necesita estar en memoria física y no se puede paginar) es muy importante, ya que constituye un costo fijo en términos de uso de memoria durante toda la duración del sistema. Los requisitos actuales de certificación de hardware cubren asignaciones no paginables: asignaciones de memoria MDL/Contiguous, código de controlador no paginado y grupo no paginado por controlador. Para obtener más información, consulte Device.DevFund.Memory.DriverFootprint.

  • Reserva de memoria de hardware: Esto incluye la memoria "carve-outs", que reduce la cantidad de memoria visible del sistema operativo que está disponible para Windows y es extremadamente importante en el contexto de dispositivos de poca memoria. Los requisitos actuales de certificación de hardware proporcionan presupuestos para diferentes configuraciones de RAM: System.Fundamentals.Firmware.HardwareMemoryReservation.

  • Software precargado y aplicaciones antimalware: Estos incluyen servicios o procesos adicionales que se inician durante el arranque y permanecen activos durante la vigencia de una sesión. El conjunto de software precargado que introduce procesos en el inicio debe considerarse cuidadosamente y presupuestarse.

Desde una perspectiva del sistema operativo, se han realizado varias mejoras para reducir la superficie de memoria en tiempo de ejecución en Windows para que haya más memoria disponible para los usuarios y sus aplicaciones. Es importante asegurarse de que los oem, los IVS, los ISV y los asociados de Microsoft mejoran la superficie en cada una de estas áreas y configuran dispositivos con una consideración cuidadosa para ofrecer una excelente experiencia del cliente.

Storage

Rendimiento de disco.

En una configuración de memoria baja, Windows se basa en la paginación y el intercambio de contenido de la memoria y, por tanto, el rendimiento del disco subyacente es fundamental para ofrecer una experiencia de usuario fluida y con capacidad de respuesta. Los requisitos de certificación de hardware proporcionan instrucciones sobre las métricas de rendimiento clave para el almacenamiento en dispositivos conectados en espera. Para más información, consulte Requisitos de Device.Storage.

Windows tiene mecanismos para reducir el uso de memoria de las aplicaciones suspendidas de Microsoft Store y reanudarlas a través de una E/S de disco secuencial eficaz. Por ejemplo, considere una aplicación de 120 MB que debe leerse desde el disco en la reanudación; Un disco que ofrece un rendimiento de lectura secuencial de 60 MB/s tardará 2 segundos en leerse de nuevo en el disco, mientras que un disco que entrega 120 MB/s tardará solo 1 segundo en traer su contenido a la memoria. El almacenamiento de eMMC y SSD proporcionan velocidades de lectura secuenciales de aproximadamente 120-150 MB/s, mientras que los discos rotacionales típicos tienen velocidades de aproximadamente 50 MB/s. Las directivas en tiempo de ejecución de Windows hacen inconvenientes en función del rendimiento del almacenamiento y los discos más lentos (por ejemplo, HDD y HHDD), lo que dará lugar a una experiencia de cambio de aplicación o multitarea potencialmente más lenta y a una mayor finalización de la aplicación.

Resistencia del disco

La resistencia o la duración del almacenamiento no rotativo, como ssd y discos eMMC, son proporcionales al volumen total de datos escritos en el dispositivo junto con otros factores, como la carga de trabajo y la alineación de escrituras. En un dispositivo de 1 GB, habrá un mayor volumen de escrituras en el almacenamiento, dadas las restricciones de memoria, que es una consideración importante al seleccionar elementos.

La resistencia varía significativamente en función de los fabricantes (selección de tamaño de bloque, tipos de memoria flash, etc.); actualmente, no hay formas estandarizadas de medir la resistencia. Se recomienda que los asociados evalúen la resistencia del disco antes de tomar decisiones de selección de dispositivos.

Importante

En la tabla siguiente se proporcionan objetivos para los sistemas que ejecutan Windows de 32 bits. La guía de rendimiento de almacenamiento se aplica a los medios de almacenamiento de arranque y se prueba con un menor de 2 % o 1 GB de espacio libre en disco.

Categoría Métrica Metas
Superficie de memoria de línea base Nivel de sistema

   Código no paginado del controlador

< 20 MB

   Asignaciones no paginadas del controlador

< 30 MB

   Reserva de memoria de hardware

< 130 MB

   Total de páginas privadas activas de aplicaciones de inicio, servicios, tareas

< 40 MB
Por controlador (asignaciones no paginadas)
   Asignaciones de memoria bloqueadas o contiguas del controlador 12 MB para todos los tipos de controladores
   Asignaciones no paginadas

<= 6 MB para el controlador de GPU

<= 4 MB para otros controladores

   Código de controlador no paginado <= 10 MB para controladores de GPU, <= 1,66 MB para otros controladores
Superficie de memoria de las aplicaciones de inicio Aplicaciones de inicio, servicios y tareas (incluido el antimalware) < 40 MB
Rendimiento de disco. Rendimiento aleatorio

   4 KB de E/S por escritura, medido en un área de 1 GB

>= 200 E/S por segundo

   4 KB de E/S por escritura, medido en un área de 10 GB

>= 50 E/S por segundo

   E/S por escritura de 64 KB, medida en un área de 1 GB

>= 25 E/S por segundo

   4 KB de IOPS de lectura, medidos en un área de 10 GB

>= 2000 E/S por segundo

   4 KB 2:1 IOPS de combinación de lectura y escritura, medidos en un área de 1 GB

>= 500 E/S por segundo

   4 KB 2:1 IOPS de combinación de lectura y escritura, medidos en un área de 10 GB

>= 140 E/S por segundo
Rendimiento secuencial

   Velocidad de escritura (E/S de 64 KB), medida en un área de 10 GB

>= 40 MB/s

   Velocidad de escritura (1 MB de E/S), medida en un área de 10 GB

>= 40 MB/s

   Velocidad de lectura (E/S de 64 KB), medida en un área de 10 GB

>= 60 MB/s (120 MB/s)
Latencia de E/S del dispositivo

   Latencia máxima

< 500 milisegundos
Resistencia del disco Duración >= 2-3 años

Medición de la memoria mediante windows Assessment and Deployment Kit (ADK)

En comparación con una imagen comercial del sistema operativo, la evaluación de la superficie de memoria en ADK proporciona una evaluación cuantitativa de la superficie de memoria de línea base para diferentes configuraciones.

Instrucciones

Para OEM

Los OEM tienen una influencia significativa sobre la elección de hardware/controladores y software precargado, lo que afecta directamente a la superficie de memoria del sistema:

  • Antes de implementar, comprenda y cuantifique el impacto de los controladores y el software que instale sobre una imagen limpia y asegúrese de que se encuentran dentro de los objetivos recomendados descritos anteriormente:

    • Reduzca la superficie del controlador reduciendo el número de controladores o seleccionando hardware o controladores que tengan requisitos de memoria más bajos.

    • Reduzca el número de procesos de inicio predeterminados "run-always" (introducidos por programas antivirus y software cargados previamente) y proporcione instrucciones, si es necesario, a los consumidores sobre cómo habilitar aplicaciones o funcionalidades específicas.

  • Considere la posibilidad de usar otro controlador o proveedor de software que pueda proporcionarle una funcionalidad equivalente con un menor impacto en la memoria del sistema.

  • Consulte a los proveedores de software y controladores para conocer las versiones más recientes de su software. Además, proporcione comentarios a sus asociados sobre controladores o software específicos que tienen un uso de memoria superior al recomendado y proporcionan seguimientos y registros del kit de herramientas de evaluación.

Para IHV/ISV

Los IHD que pueden ofrecer controladores eficientes en memoria permiten a los OEM crear sistemas de 1 GB que proporcionan una gran experiencia a los consumidores:

  • Asegúrese de que las partes de hardware cumplen los requisitos de certificación descritos anteriormente (especialmente la superficie no paginable para los controladores, el rendimiento del hardware de almacenamiento y el uso de memoria de las aplicaciones siempre ejecutadas para las aplicaciones).

  • Sea eficaz con el uso de memoria que usa un modelo de "pago por juego" habilitando la funcionalidad solo según sea necesario:

    • Evite configurar controladores para admitir características que solo son necesarias para sistemas de 1 GB (por ejemplo, cree paquetes de controladores específicos de la plataforma que detecten hardware y cargue código específico para él).

    • Minimice el costo en tiempo de ejecución asignando la memoria mínima necesaria cuando sea necesario y liberándola tan pronto como haya terminado (por ejemplo, los búferes para admitir el almacenamiento RAID no son necesarios a menos que el usuario lo configure explícitamente).

  • Aproveche las herramientas para comprender y mejorar la superficie de memoria. En la siguiente charla se describe el enfoque para reducir la superficie junto con las herramientas disponibles: Reducir la superficie de memoria de los controladores y las aplicaciones.

Para el ISV de la aplicación antimalware

Las aplicaciones antimalware pueden afectar significativamente a la superficie de memoria del sistema operativo y a la experiencia del usuario cuando no están optimizadas para el rendimiento:

  • Asegúrese de que el número y la superficie de los servicios y procesos "siempre ejecutados" sean lo más mínimos posible. Por ejemplo:

    • Idealmente, ejecute solo un proceso o servicio para el examen en tiempo real.

    • Otros procesos para actualizar las definiciones de antivirus, como mostrar la interfaz de usuario del usuario, solo deben crearse cuando sea necesario en respuesta a la entrada o las notificaciones del usuario, y deben salir una vez completadas las operaciones.

  • Sea eficaz con el uso de memoria para los procesos "run-always":

    • Mantenga una estructura de datos para representar firmas y cargar solo partes específicas a petición.

    • La interfaz de usuario no debe iniciarse a menos que el usuario lo solicite explícitamente (por ejemplo, elementos emergentes que se abren inmediatamente después del arranque).

  • Windows proporciona un conjunto básico de API de Windows y documentación asociada para optimizar el rendimiento:

    • Optimice la carga y el mantenimiento de firmas mediante el uso de compresión: Compresión Xpress.

    • Mantenga las memorias caché de los archivos examinados previamente para minimizar el trabajo.

    • Use prioridades de memoria/CPU/disco bajas para minimizar el impacto. Por ejemplo:

  • Céntrese en la superficie de memoria inactiva para asegurarse de que la superficie de memoria está inactiva, así como durante los exámenes completos del sistema y el examen en tiempo real es < de 15 MB. Si lo hace, se reducirá la superficie de memoria tanto como sea posible durante esos escenarios.

Validación

Para evaluar y validar el uso de memoria por procesos y controladores, use la evaluación de superficie de memoria en ADK. Una vez ejecutada la evaluación, abra el informe en la herramienta Consola de evaluación de Windows (WAC) y extraiga las métricas pertinentes mediante las instrucciones siguientes.

Nivel de sistema

Puede encontrar métricas de memoria en todo el sistema en el informe de evaluación. En la captura de pantalla siguiente se resaltan las métricas Memoria total In-Use, Código no paginado del controlador y Asignaciones .

Superficie de memoria que se muestra en la Consola de evaluación de Windows

Por controlador

Código no paginado

Para obtener la contribución de código no paginada específica de controladores individuales, expanda la métrica Driver Non-Paged Code (Código no paginado del controlador ).

Uso de memoria por parte de controladores en código no paginado que se muestra en la Consola de evaluación de Windows (WAC)

Asignaciones no paginadas

Para obtener las asignaciones no paginadas específicas de controladores individuales, expanda la métrica Asignaciones no paginadas del controlador y seleccione Agrupar por> (Ninguno).

Asignaciones no paginadas para controladores que se muestran en la Consola de evaluación de Windows (WAC)

Por proceso

Para obtener la cantidad de páginas privadas activas de procesos individuales (aplicaciones, servicios o tareas) en el sistema, expanda la métrica Procesar páginas privadas y seleccione la submétrica Activo .

En la captura de pantalla siguiente, Microsoft Defender (proceso de MsMpEng.exe) consume 14,9 MB de memoria a través de su espacio de trabajo privado.

Para validar que se logra el destino de 40 MB para aplicaciones, servicios y tareas de inicio, identifique todos los procesos de esta lista asociados con el software cargado previamente y calcule la suma.

Páginas privadas activas de procesos que se muestran en la Consola de evaluación de Windows (WAC)