Arreglar el alto uso de CPU de WindowServer en Mac
WindowServer es el compositor de pantalla de macOS. Su uso de CPU refleja el trabajo necesario para combinar las superficies de las apps en todas las pantallas, pero el nombre del proceso no revela qué app provoca redibujos repetidos. Un número alto durante una animación, al compartir pantalla o al cambiar de pantalla puede ser normal. La señal útil es una carga sostenida en reposo más un efecto medible en la capacidad de respuesta, el calor o la duración de la batería.
Qué es en realidad WindowServer
WindowServer es el compositor de macOS. Cada ventana, menú, animación y píxel que ves lo dibuja y lo combina él, en todas las pantallas. Como toca todo lo que hay en pantalla, una carga gráfica pesada aparece como CPU de WindowServer y no bajo la app que la causa. Por eso parece el culpable cuando en realidad es el mensajero.
Qué lo dispara
Unas cuantas cosas hacen que WindowServer trabaje más:
- Muchas ventanas y Spaces. Docenas de ventanas abiertas y un montón de escritorios virtuales hay que seguirlos y componerlos.
- Pantallas externas y de alta resolución. Más píxeles que empujar, sobre todo una pantalla 4K o 5K, o varios monitores a la vez, sube la línea base de forma estable.
- Resolución escalada. Usar una pantalla en una resolución no nativa de tipo "se ve como" puede exigir una superficie de renderizado más grande y un downsampling. El costo depende del Mac, la pantalla, el modo de escala y la carga de trabajo; el escalado Retina en sí es normal.
- Transparencia y movimiento. El desenfoque y la translucidez de los menús, el Dock y Control Center son efectos en vivo que WindowServer calcula de forma continua.
- Una app con muchas ventanas que se redibuja sin parar, como una terminal que imprime rápido o una página que anima en segundo plano.
- Software de captura y de pantalla remota. La grabación de pantalla, las videollamadas, AirPlay, el escritorio remoto y las herramientas de pantalla virtual añaden trabajo de captura o de composición.
- Altas tasas de refresco y escritorios animados. Más fotogramas o píxeles que cambian sin cesar aumentan el trabajo aunque no toques ninguna ventana.
Cómo calmarlo
Empieza por las victorias baratas:
- Reduce la transparencia: abre System Settings > Accessibility > Display y activa Reduce transparency. La guía de ajustes de Display de Apple describe el cambio visual. Puede reducir el trabajo de efectos en vivo, pero compara la misma escena antes de dejarlo como arreglo de rendimiento.
- Reduce el movimiento: ahora tiene su propio panel Accessibility > Motion. La guía de Motion de Apple dice que cambia las animaciones de acciones como abrir apps y cambiar de escritorio.
- Prueba la escala de pantalla predeterminada o una tasa de refresco más baja y compara la misma carga de trabajo. No sacrifiques texto legible asumiendo que todo escalado es malo.
- Cierra ventanas y colapsa Spaces que no uses, y cierra apps que se redibujen mucho en segundo plano.
- Pausa la grabación de pantalla, el escritorio remoto, el fondo de pantalla animado o las pantallas virtuales de una en una para identificar al dueño.
- Desconecta una pantalla como diagnóstico. Si eso cambia la línea base, prueba por separado su escala, tasa de refresco, cable y adaptador.
Cierra sesión y vuelve a entrar solo después de reunir evidencia; eso reinicia la sesión de pantalla del usuario. Un reinicio puede ocultar un bug de redibujo sin identificar la app que lo volverá a disparar.
No evalúes solo el porcentaje instantáneo. En Activity Monitor, observa la misma escena en reposo durante unos minutos, reproduce una animación o una carga de captura y luego quita una fuente sospechosa. WindowServer hay que juzgarlo junto con el síntoma: entrada más fluida, menos calor o mejor comportamiento de la batería. Un número más bajo sin mejora visible o térmica no es un arreglo útil.
Bajo el capó: el compositor y por qué el escalado cuesta
WindowServer es un compositor. Cada app dibuja en su propio búfer fuera de pantalla, un backing store, y WindowServer combina esos búferes en la imagen final de cada pantalla, aplicando transformaciones y efectos sobre la marcha. La composición corre cada vez que la escena cambia, así que los redibujos constantes y la captura pueden costar CPU o GPU de forma continua. Algunos modos escalados usan una superficie intermedia más grande y la reducen, pero eso es solo un posible contribuyente. El número de píxeles, la tasa de refresco, el número de pantallas y la frecuencia de redibujo hay que probarlos por separado.
Dónde ayuda un monitor
Activity Monitor o la vista Status de Mole pueden mostrar tendencias de WindowServer, CPU y GPU, pero ninguno asigna automáticamente el costo del compositor a una sola app. El método fiable es el aislamiento controlado: detén una fuente de redibujo o cambia una variable de pantalla y compara las líneas base en reposo y bajo carga.
Un diagnóstico repetible
Mide WindowServer en reposo y durante el problema, luego aísla el contenido animado, las herramientas de captura, las pantallas, la escala y la tasa de refresco de una en una. Quédate con el cambio solo cuando mejoren tanto la métrica como el síntoma visible para ti. No fuerces el cierre de WindowServer ni trates una escala Retina ordinaria como un fallo.