Estoy constantemente en una situación similar a pesar de que nunca recibo exactamente el mismo mensaje y he realizado algunas pruebas.
A mi entender, el recurso principal que está bajo presión aquí, es la memoria de la GPU . Pero esto no necesariamente indica que se está quedando sin este recurso en general. Podría significar que Desktop Window Manager ha detectado que se está ejecutando tan bajo que una característica específica de este servicio podría desactivarse para liberar más memoria.
Para probar esto, comencé a abrir aplicaciones intensivas en memoria de GPU:
Este es un uso algo superior al promedio en mi configuración de triple pantalla con algunos jugadores clave en ejecución (Visual Studio 2012 (aceleración de hardware habilitada), PhpStorm, Aptana Studio, Chrome, Firefox, IE, ...). Entonces, sí, si solo tiene una tarjeta de 1 GB y este sería su escenario de uso habitual, ya tendría un problema.
Tuve que empujar un poco más y comenzar un par más de instancias de Visual Studio ...
... hasta que se acercaba a la marca de 1,5 GB y ...
¡CHASQUIDO! Esto provocó que Windows matara por completo la composición del escritorio (y liberara algunos recursos preciosos).
Ahora, cuando ya estoy en un nivel crítico, y comienzo una aplicación que usa cantidades excesivas de memoria de GPU en pantalla completa , incluso puedo ir más allá de este límite crítico. Aquí está el resultado después de ejecutar Black Mesa por un tiempo en 2560x1440 con detalles máximos:
Entonces, se pueden deducir dos cosas de esto. Si bien superar la marca del 75% en el escritorio puede forzar a Windows a deshabilitar la composición del escritorio, al alcanzar el mismo límite en una aplicación de pantalla completa (y, opcionalmente, al salir de esa aplicación), la composición del escritorio no está deshabilitada.
La segunda cosa es que, mientras estás en tu juego, puedes tener la idea "Oye, tengo suficientes recursos para ejecutar este juego, ¿por qué no tengo suficientes recursos para el escritorio?". La razón es que ambos requieren memoria al mismo tiempo.
Es posible que Windows solo pueda informarle sobre la situación de la memoria después de salir del juego. Entonces, cuando inicio otro Visual Studio después de salir de Black Mesa ...
¿Entonces, qué podemos hacer al respecto?
Obtenga más memoria de GPU
Dulce y sencillo.
Deshabilitar composición de escritorio (por proceso)
Como ya se sugirió, puede deshabilitar la composición del escritorio para un solo ejecutable. Esto tiene el efecto de que la composición del escritorio se deshabilita temporalmente mientras se ejecuta el ejecutable. Esto redujo drásticamente el consumo general de memoria mientras la aplicación se ejecuta en mis pruebas:
El aviso de recompensa menciona que esto no es deseable, ya que potencialmente es mucho trabajo.
Deshabilitar la composición del escritorio (globalmente)
No consideraría esto una solución ya que la composición de escritorio generalmente se desea. Pero aquí es donde deshabilitarlo:
¡Solo quiero deshacerme del mensaje molesto!
El hecho de que elimine la advertencia "¡ Su batería está casi descargada! ¡Solo puede hablar 10 minutos más! " No significa que pueda hablar más de 10 minutos. De hecho, lo más probable es que su teléfono simplemente se apague y eso es todo. Ahora, ¿cómo es eso de una mejora?
Nunca asumí que el mensaje se puede desactivar y no veo cómo eso podría considerarse un beneficio.
Puede pensar que sabe mejor, pero no. Si el sistema le dice que se está quedando sin recursos, es así.
Pero no lo es! ¡Lo sé!
Ok, supongamos que Windows no es lo suficientemente inteligente como para detectar la situación especial en la que se encuentra y el mensaje de advertencia es simplemente un inconveniente molesto. ¿Ahora que?
La cuestión es que, personalmente, también estoy afectado por esto y me molesta muchísimo. Porque ni siquiera recibo ese mensaje de advertencia. Windows simplemente cambia mi perfil de color y eso es todo. Y eso me gusta en realidad.
Cuando sucede, generalmente ejecuto rápidamente un script que llama
net stop uxsms & net start uxsms
Aquí está el guión completo. Aparecerá un aviso de UAC y reiniciará el servicio para que se pueda activar desde cualquier lugar. Lo tengo anclado al menú de inicio.
@if (1==1) @if(1==0) @ELSE
@echo off&SETLOCAL ENABLEEXTENSIONS
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"||(
cscript //E:JScript //nologo "%~f0"
@goto :EOF
)
NET STOP uxsms
NET START uxsms
@goto :EOF
@end @ELSE
ShA=new ActiveXObject("Shell.Application")
ShA.ShellExecute("cmd.exe","/c \""+WScript.ScriptFullName+"\"","","runas",5);
@end
Esto reinicia el Desktop Window Manager y me devuelve a mi escritorio compuesto (y libera muchos recursos en el proceso, yay).
Sabiendo esto, también puedes construir un entorno de juego especial donde detengas el servicio antes de comenzar el juego para combatir todo este comportamiento. Sin embargo, esto provocará un comportamiento idéntico al deshabilitar la composición del escritorio para un solo ejecutable a través de las propiedades del archivo.