Я постійно перебуваю в подібній ситуації, хоча я ніколи не отримую такого самого повідомлення і трохи тестую.
Наскільки я розумію, основний ресурс, який тут зазнає стресу, - це пам'ять GPU . Але це не обов'язково означає, що у вас загалом цей ресурс закінчується. Це може означати, що Менеджер вікон на робочому столі виявив, що ви працюєте настільки низько, що одна особливість цієї послуги може бути відключена, щоб звільнити більше пам’яті.
Щоб перевірити це, я почав відкривати додатки з великою пам'яттю GPU:
Це дещо вище середнього використання в моїй настройці з трьома екранами з кількома ключовими плеєрами (Visual Studio 2012 (включено апаратне прискорення), PhpStorm, Aptana Studio, Chrome, Firefox, IE, ...). Так, так, якщо у вас є лише 1 Гб карта, і це був би ваш звичайний сценарій використання, у вас уже виникнуть проблеми.
Мені довелося трохи підштовхнути і запустити ще кілька примірників Visual Studio ...
... поки він не наблизився до позначки 1,5 ГБ і ...
SNAP! Це змусило Windows повністю знищити композицію робочого столу (і звільнити деякі дорогоцінні ресурси).
Тепер, коли я вже перебуваю на критичному рівні, і я запускаю програму, яка використовує надмірну кількість пам’яті GPU на повноекранному режимі , я навіть можу вийти за цю критичну межу. Ось результат після деякого запуску Black Mesa на 2560x1440 з максимальною деталлю:
Отже, з цього можна вивести дві речі. Під час переходу позначки на 75% на робочому столі може змусити Windows відключити композицію робочого столу, якщо досягти тієї ж межі в повноекранному додатку (і, необов'язково, виходить із цього додатка), склад робочого столу не вимкнений.
Друга річ полягає в тому, що, коли ви в грі, ви можете отримати ідею "Ей, у мене достатньо ресурсів для запуску цієї гри, чому б у мене не вистачало ресурсів для робочого столу?". Причина в тому, що обидва вимагають пам’яті одночасно.
Windows, можливо, зможе розповісти вам про ситуацію з пам'яттю лише після виходу з гри. Отже, коли я запускаю іншу Visual Studio після виходу з Black Mesa ...
Отже, що ми можемо зробити з цього приводу?
Отримайте більше пам’яті GPU
Солодке і просте.
Вимкнути композицію робочого столу (за процес)
Як уже було запропоновано, ви можете відключити композицію робочого столу для одного виконуваного файлу. Це призводить до того, що склад робочого столу тимчасово відключається під час виконання виконуваного файлу. Це різко зменшило загальний обсяг пам’яті під час виконання програми в моїх тестах:
У повідомленні про щедроту згадується, що це небажано, оскільки це, можливо, велика робота.
Вимкнути композицію на робочому столі (у всьому світі)
Я б не вважав це рішенням, оскільки композиція робочого столу зазвичай бажана. Але ось де відключити це:
Я просто хочу позбутися прикрого повідомлення!
Тільки тому, що ви знімаєте попередження " Ваша батарея майже порожня! Ви можете розмовляти лише ще 10 хвилин! ", Не означає, що ви можете говорити довше 10 хвилин. Насправді ваш телефон, швидше за все, просто відключиться, і все. Тепер як це для покращення?
Я ніколи не припускав, що повідомлення можна відключити, і не бачу, як це можна вважати вигодою.
Ви можете подумати, що знаєте краще, але цього не зробите. Якщо система каже вам, що не вистачає ресурсів, це так.
Але це не так! Я знаю!
Гаразд, припустимо, що Windows просто недостатньо розумний, щоб виявити особливу ситуацію, в якій ви знаходитесь, і попереджувальне повідомлення - це просто прикрою незручністю. Що тепер?
Річ у тому, що я особисто мене теж впливає на це, і це мене дратує пекло. Тому що я навіть не отримую цього попередження. Windows просто перемикає мій кольоровий профіль, і все. І мені це подобається насправді.
Коли це трапляється, я зазвичай швидко запускаю сценарій, який дзвонить
net stop uxsms & net start uxsms
Ось повний сценарій. Це відкриє підказку UAC та перезапустить послугу, щоб її можна було викликати з будь-якого місця. Я його прикріпив до стартового меню.
@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
Це перезапускає Менеджер вікон робочого столу і повертає мене до мого складеного робочого столу (і це звільняє багато ресурсів у процесі, так).
Знаючи це, ви також можете створити собі спеціальне ігрове середовище, де ви зупиняєте послугу перед початком гри для боротьби з цією поведінкою. Однак це призведе до однакової поведінки щодо відключення композиції робочого столу для одного виконуваного файлу через властивості файлу.