나는 똑같은 메시지를 얻지 못했지만 약간의 테스트를 거쳤음에도 불구하고 끊임없이 비슷한 상황에 처해 있습니다.
내가 이해하기에, 여기서 스트레스를 받고있는 핵심 리소스는 GPU 메모리 입니다. 그러나 이것이 반드시이 리소스가 부족하다는 것을 나타내는 것은 아닙니다. 그냥 바탕 화면 창 관리자가 실행중인 것을 발견했습니다 의미 할 수 있도록 낮은 이 서비스의 하나 개의 특정 기능은 더 많은 메모리를 무료로 사용할 수있다.
이를 테스트하기 위해 GPU 메모리 집약적 응용 프로그램을 열기 시작했습니다.
이것은 몇 가지 주요 플레이어 (Visual Studio 2012 (하드웨어 가속 사용), PhpStorm, Aptana Studio, Chrome, Firefox, IE 등)를 사용하는 트리플 스크린 설정에서 평균보다 약간 높습니다. 따라서 1GB 카드 만 있고 이것이 일반적인 사용 시나리오라면 이미 문제가있는 것입니다.
조금 더 밀고 몇 가지 Visual Studio 인스턴스를 시작해야했습니다 ...
... 1.5GB 표시가 가까워 질 때까지 ...
스냅! 이로 인해 Windows가 데스크탑 합성을 완전히 중단 시켰습니다.
이제 이미 위험 수준에 도달했을 때 전체 화면에서 과도한 양의 GPU 메모리를 사용하는 응용 프로그램을 시작하면 이 임계 값을 초과 할 수도 있습니다. 최대 2560x1440에서 Black Mesa를 잠시 실행 한 후의 결과는 다음과 같습니다.
따라서 이것에서 두 가지를 뺄 수 있습니다. 데스크톱에서 75 %를 넘으면 전체 화면 응용 프로그램에서 동일한 제한에 도달하고 선택적으로 해당 응용 프로그램을 종료 할 때 데스크톱 구성이 비활성화되지 않는 경우 Windows에서 데스크톱 구성을 강제로 해제 할 수 있습니다.
두 번째로, 당신이 게임을하는 동안, "이 게임을 실행하기에 충분한 자원이 있는데 왜 데스크탑을위한 자원이 충분하지 않습니까?"라는 아이디어를 얻을 수 있습니다. 그 이유는 둘 다 동시에 메모리가 필요하기 때문입니다.
Windows는 게임을 종료 한 후에 만 메모리 상황을 알려줄 수 있습니다. 따라서 Black Mesa를 종료 한 후 다른 Visual Studio를 시작하면 ...
그래서 우리는 이것에 대해 무엇을 할 수 있습니까?
더 많은 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
그러면 바탕 화면 창 관리자가 다시 시작되고 합성 된 바탕 화면으로 돌아갑니다 (이 과정에서 많은 리소스를 확보합니다).
이것을 알면 게임을 시작하기 전에 서비스를 중지하고이 모든 행동에 맞서 싸우는 특별한 게임 환경을 만들 수도 있습니다. 그러나 이로 인해 파일 속성을 통해 단일 실행 파일에 대해 데스크탑 구성을 비활성화하는 동일한 동작이 발생합니다.