禁用“您是否要更改配色方案以提高性能?”警告

禁用“您是否要更改配色方案以提高性能?”警告

有时会弹出此对话框(见下面的屏幕截图)。每次出现时,我都会选择“保留当前配色方案,不再显示此消息”。然后 Windows 会再次提醒我 - 要么在第二天,要么在重启后,或者有时在 5 分钟后。

您是否想更改配色方案以提高性能?

您是否想更改配色方案以提高性能?

Windows 检测到您的计算机性能较慢。这可能是因为没有足够的资源来运行 Windows Aero 配色方案。要提高性能,请尝试将配色方案更改为 Windows 7 Basic。您所做的任何更改都将有效,直到您下次登录 Windows

  • 将配色方案更改为 Windows 7 Basic
  • 保留当前配色方案,但如果我的计算机仍然运行缓慢,请再次询问我
  • 保留当前配色方案,不再显示此消息

是不是因为某种原因,Windows 忽略/忘记了我试图隐藏对话框的尝试?我真希望永远都不要再看到它,它很烦人,而且它会让我退出全屏应用程序。

如果这很重要,我正在运行 Windows 7 x64 Professional。我相信出现该对话框是因为我正在为 DirectX 应用程序强制使用 Vsync 和三重缓冲。

答案1

假设您意识到此消息通知您系统资源不足,并要求您禁用Aero,以便它能够继续以最佳速度运行,

  1. 转到“开始”菜单并输入活动中心在搜索框中
  2. 启动它(它应该是“控制面板”组下的顶部条目)
  3. 在左侧边栏中,点击Change Action Center settings
  4. 取消勾选Windows Troubleshooting“维护消息”下的复选框。
  5. 单击Ok按钮即可完成。

以下是设置屏幕的屏幕截图:

或者:

  • 您可以尝试保留此设置,并在启动通常会触发此操作中心通知的应用程序之前切换到基本桌面模式。或者,
  • 您可以右键单击用于启动这些全屏应用程序的图标,单击属性,然后在兼容性选项卡下勾选Disable desktop composition。这将禁用桌面窗口管理器会话管理器执行此应用程序期间的服务,这将增加系统和视频内存并避免某些应用程序不兼容。如果您有足够的系统和视频内存,但在玩某些游戏或全屏应用程序时仍然收到此消息,这可能是导致操作中心消息的原因。

答案2

尽管我从未收到过完全相同的消息,但我总是处于类似的情况,并且做了一些测试。

据我了解,目前面临压力的核心资源是GPU 内存。但这不一定表示您总体上已经用完了此资源。这可能只是意味着桌面窗口管理器检测到您正在运行这么低可以禁用此服务的一项特定功能以释放更多内存。

为了测试这一点,我开始打开 ​​GPU 内存密集型应用程序:

在此处输入图片描述

在我的三屏设置中,这略高于平均水平,并且运行了一些关键播放器(Visual Studio 2012(启用硬件加速)、PhpStorm、Aptana Studio、Chrome、Firefox、IE 等)。所以,是的,如果您只有 1 GB 的卡,并且这是您通常的使用场景,那么您已经遇到问题了。

我必须再进一步,启动更多 Visual Studio 实例……

在此处输入图片描述
在此处输入图片描述

...直到接近1.5 GB的标记并且...

在此处输入图片描述

啪!这导致 Windows 完全终止桌面合成功能(并释放一些宝贵的资源)。

现在,当我已经处于临界水平时,我启动了一个使用过多 GPU 内存的应用程序全屏,我甚至可以超越这个关键限制。这是在 2560x1440 分辨率下以最大细节运行 Black Mesa 一段时间后的结果:

在此处输入图片描述

因此,可以从中推断出两点。虽然桌面上超过 75% 的标记会迫使 Windows 禁用桌面组合,但当在全屏应用程序中达到相同的限制(并可选择退出该应用程序)时,桌面组合不会被禁用。
第二点是,当你在玩游戏时,你可能会想“嘿,我有足够的资源来运行这个游戏,为什么我没有足够的资源来运行桌面?”。原因是,两者都需要同时占用内存。

Windows 可能只能在你退出游戏后告诉你内存情况。所以,当我启动另一个 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

这将重新启动桌面窗口管理器并将我带回到我的复合桌面(并且在此过程中释放了大量资源,耶)。

了解了这一点,您还可以构建一个特殊的游戏环境,在开始游戏之前停止服务以对抗这种行为。但是,这将导致与通过文件属性禁用单个可执行文件的桌面组合相同的行为。

答案3

在 Windows 7 PC 上,我也一直收到这个该死的消息(已经持续很长时间了),主要是当我通过 VNC(任何版本)远程访问它们时,但想保持 Aero 和桌面组合处于打开状态(肯定不使用 VNC 镜像驱动程序,否则肯定没有 Aero)。

切换到基本主题,即使是暂时的,也会破坏一些旧应用程序的图形界面(比如那些获得 DPI 虚拟化的应用程序,只能在 Aero + 桌面组合中使用),这也是我想保持 Aero 和桌面组合默认打开的原因之一,但只是停止该死的消息,此外系统实际上运行良好,正如许多用户在本页的评论中所确认的那样,那么问题只是信息!

取消勾选“维护消息”下的“Windows 故障排除”复选框根本无法解决问题,正如许多人也在此处的评论中证实的那样,它不起作用,并且禁用桌面组合是......嗯......就像告诉你关闭你的汽车发动机因为它不能正常工作...即不是一个解决方案......

在被这个消息困扰了很长时间之后,我决定我真的必须停止它,然后我调试了 dwm.exe,最终找到了如何永久删除该消息的方法...如果你想做同样的事情,并且你有Windows 7 SP1 x64(x86 可能有所不同)只需像我一样修补你的 dwm.exe:

警告:仅当您知道自己在做什么时才这样做,否则可能会破坏您的系统!

对于 Windows 7 SP1 x64:

(original file md5: f162d5f5e845b9dc352dd1bad8cef1bc)
open file on an hex editor and search for this pattern:
FF15D2A5000085C079
replace it by:
9090909090909090EB
(patched file md5: 2ab05d7454dcd8ef20a7f99b3390973d)

适用于 Windows 7 SP1 x64 + KB3125574 便利汇总:

(original file md5: c206c9dbfc34afd367dd150d979a5185)
open file on an hex editor and search for this pattern:
FF1562B1000085C079
replace it by:
9090909090909090EB
(patched file md5: 8243c03dad2b9aaaddabe65e4869e2ae)

(该补丁只是删除了对 TaskDialogIndirect API 的调用,该 API 负责显示消息窗口并强制执行 jmp,如果调用返回成功,则原本会执行该 jmp...必须执行 jmp,因为代码显然也完成了切换到基本主题如果它不能显示消息)

请注意,为了能够更改/重命名/替换 dwm.exe 文件,您需要停止“桌面窗口管理器会话管理器”服务(在 services.msc 上),以便它停止运行,并获取文件所有权并调整权限...因为该文件默认归 TrustedInstaller 所有...

还请注意,在我对 dwm.exe 的分析中,我发现实际上有两条这样的消息(类似但不相同):

  • 一个是顶部问题截图中显示的那个,当 dwm.exe 正在使用一些 CPU 资源时,就会出现这个...大约 30% 可能足以触发它(VNC 使这种情况发生),我的补丁删除了这个消息。
  • 还有另一条类似的消息,但文本略有不同,当 dwm.exe 使用了太多的 GPU 内存时就会显示该消息,该消息不是问题屏幕截图上显示的消息,我的补丁不会删除该消息。

答案4

是否有某种原因导致 Windows 忽略/忘记我抑制对话框的尝试?

不——如果您回答了这个问题,窗口就不应该再次显示,但它仍然会发生。

我相信出现该对话框是因为我正在强制 DirectX 应用程序使用 Vsync 和三重缓冲。

不,不是因为这个。首先 - 桌面合成会强制系统(但不是游戏,它们使用 DirectX)在垂直同步模式下工作,并让您能够使用 Win+Tab 等不错的功能(例如),因此禁用它(就像许多人所说的那样)并不是解决方案,而是降低系统性能的方法,而且是一种非常糟糕的解决方法。由于该垂直同步,某些程序在启用桌面合成时运行得更好(例如某些电影播放器​​ - 它可以防止撕裂),某些程序在禁用桌面合成时运行得更好(启用 DC 时,某些带有点型边框的窗口移动得非常慢,而且像旧 Corel 这样的 gfx 程序运行得也慢得多),但新程序总是运行良好,因此请保持桌面合成处于启用状态。

目前我建议等到微软发布针对这种烦人行为的修复程序。如果您喜欢新的 Win7 功能或 Vsync,请不要禁用桌面合成。

相关内容