【发布时间】:2020-05-18 12:13:39
【问题描述】:
背景
嗨。我有一个 SB2(Surface Book 2),我是遇到困扰许多 SB2 机器的infamous 0.4GHz throttling problem 的不幸用户之一。问题是 SB2 突然,并且非常频繁地取决于环境温度,从 4GHz 加速到 0.4GHz 并在此停留一两分钟(这会导致整个笔记本电脑严重减速)。这非常令人沮丧,几乎使机器无法用于最简单的工作负载。
微软显然在 2019 年 10 月更新中stated that it fixed the problem,但我和其他几个用户仍然面临它。我非常肯定我的机器是最新的,我什至手动安装了所有最新的 Surface Book 2 固件更新。
如您所见,设备本身的温度并不高,但 CPU 正好在 0.4GHz 处节流。
解决方法
我几乎尝试了一切。电压不足直到冻结屏幕,禁用 BD PROCHOT,禁用 GPE 中的电源节流,弄乱注册表,调整几个 CPU/GPU 设置。没有任何效果。
节流开始时你只能做两件事:
- 等待它完成(通常需要一两分钟)。
- 更改Power Mode in windows 10。即使您将其从“最佳性能”更改为“最佳电池寿命”也无关紧要,重要的是您进行了更改。一旦你这样做,节流会在几秒钟内完全停止。这是唯一有效的手动解决方案。
问题
在实践中,无论工作量有多大,每 10 秒更改一次此滑块,可以无限期地带来流畅的体验而不会受到限制。当然,这不是一个可行的手动解决方法。
理论上,我认为如果我能找到一种以编程方式控制此模式的方法,我也许可以通过每 10 秒左右切换一次电源模式来告别这个问题。
我不介意它是在 win32 (winapi) 还是 .net 中。看了很多,找到this关于电源管理,但是win32好像没有设置界面。我可能会忽略它,所以这是我的问题:
有没有办法以编程方式控制 Windows 10 中的电源模式?
【问题讨论】:
-
在“高性能”和“平衡”之间切换可以解决这个问题吗?见this。
-
@str OP 正在尝试以编程方式更改该设置。他们已经知道如何手动完成。
-
我很清楚什么是电源计划。更改电源模式并不能解决问题,但是当我更改模式时,节流会暂停一段时间作为副作用。正如我所说,我正在尝试以编程方式复制它。
-
@mrahhal 是的,也许你可以使用
RegSetValueEx来修改对应的键值。这需要注册表权限。 -
@StriveSun-MSFT 知道电源模式的注册表项和值是什么吗?我似乎在任何地方都找不到这个。 (我找到了电源方案,但那些与一般电源计划有关,而不是电源模式)