利用 Windows 11 自带的效率模式把笔记本续航提升到 15 小时以上

2022-08-09 17:31:53 +08:00
 hez2010

看到了这个项目: https://github.com/imbushuo/EnergyStar

这个项目利用 Windows 11 新引入的 EcoQoS 调度机制将后台的用户应用设置效率模式,然后监听事件在应用切入前台时退出效率模式,成功把笔记本的续航几乎翻了个倍。

微软自己的文档里说最高可以节省 90% 的电量: https://devblogs.microsoft.com/performance-diagnostics/introducing-ecoqos/。

试着用 .NET 7 的 nativeaot 编译了一份,各位可以试试(运行之后只有一个内存占用 1~2mb 的后台进程): https://1drv.ms/u/s!ApWNk8G_rszRgolmQGgPyexi5jgELg?e=Bbo3fi

8159 次点击
所在节点    Windows
54 条回复
kanepan19
2022-08-09 21:43:40 +08:00
看样子, 微软也开始注重续航了.
cnbatch
2022-08-09 23:59:09 +08:00
今年 5 月份,有人就分享了类似的代码:
https://www.cnblogs.com/mooooonlight/p/16281629.html
( [windows + 大小核调度] ADL 平台大小核调度尝试)

看起来,这个功能似乎是让 Windows 11 把绝大多数进程扔给 CPU 的小核,从而达到省电的效果。

EnergyStar 的作者(imbushuo)虽然贴出了续航时间图,但却没说硬件具体型号,连 CPU 型号都不提。
我个人猜测,imbushuo 的电脑用的是 Intel 12 代 CPU ,于是才能达到这么明显的效果
dhssingle
2022-08-10 07:38:33 +08:00
@cnbatch 我猜可能是 ThinkPad Z13 ,AMD R7 PRO 6860Z 。
DTCPSS
2022-08-10 08:50:25 +08:00
不知道什么时候能内置在 Windows 里,既然已经有 API 了
DTCPSS
2022-08-10 08:56:22 +08:00
@cnbatch 代码里写了,是 Z13
zed1018
2022-08-10 09:41:02 +08:00
让我测一下,现在开始用这个软件并且不接 ac 试试,看能不能干一天
ScaredHeart
2022-08-10 09:57:04 +08:00
上周刚看了极客湾的视频 <amp-youtube data-videoid="Z0tNtMwYrGA" layout="responsive" width="480" height="270"></amp-youtube>深度分析 win 本子与 mac 本续航差异大的原因,之前都是简单归咎为 Arm 和 x86 架构的区别,。就是 cpu 瞬时 boost 功耗高 & 最低功耗不够低。比如开个网页单核就 boost 上去了,mac 则没有。 希望这个项目能为 win 解决这个问题
INCerry
2022-08-10 10:27:42 +08:00
之前看了华为的笔记本电脑有一个模式,应用切换到后台就会把 GPU 和 CPU 占用给压低?是相同的原理吗?
INCerry
2022-08-10 10:42:39 +08:00
@INCerry
看了下,华为的这个 Super Turbo 原理可能还不一样
https://www.163.com/dy/article/HDAFPECM0517CND9.html
thinkershare
2022-08-10 11:03:13 +08:00
@hez2010 无法下载, 检测到病毒??
zed1018
2022-08-10 11:49:34 +08:00
试了一下,两个小时 100 -> 63 ,开了 vscode (node+edge) 和 idea 。
cnbatch
2022-08-10 12:05:13 +08:00
@dhssingle
@DTCPSS

有点模棱两可,姑且就信他用的是 ThinkPad Z13 吧

因为正常情况下按照各大测评文章的做法,基本都会明确说明所用的型号、具体设置(包括屏幕亮度是最高还是最低)、开着什么应用多久时间、分别干了什么事。像这种只给一张续航时间图,剩下全靠猜,一下子习惯不来
cnbatch
2022-08-10 12:41:57 +08:00
看了下微软的文档,原来是给旧设置提供新功能。

无论是 EnergyStar 项目,还是 cnblogs 的那篇文章,都使用了 SetProcessInformation 把各个应用程序设置成 PROCESS_POWER_THROTTLING_EXECUTION_SPEED

这个 PROCESS_POWER_THROTTLING_EXECUTION_SPEED 自 Win8 以来就一直存在,但微软没说它有什么作用,当时似乎只是个占位符,用来预留给“未来”(也就是现在)使用
https://web.archive.org/web/20200407200010/https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setprocessinformation

现在,Windows 11 提供的新功能是,设置成 PROCESS_POWER_THROTTLING_EXECUTION_SPEED 之后就会被标记为 LowQoS 模式,节能的手段包括有:降频、使用小核
DTCPSS
2022-08-10 12:43:32 +08:00
@cnbatch 他买 Z13 到货还发了个推特
cnbatch
2022-08-10 12:44:41 +08:00
啊……还没写完就发出去了

更新后的 SetProcessInformation
https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setprocessinformation

Remarks 部分提到了 Win11 的对该设置的省电方式
DTCPSS
2022-08-10 12:45:37 +08:00
@zed1018 要发挥完整效果需要 Windows 11 Build 22621 和英特尔十代或者 AMD 5000 移动处理器以上
stefwoo
2022-08-10 12:45:52 +08:00
看起来很棒,回家试试看。
cnbatch
2022-08-10 12:46:44 +08:00
@DTCPSS
他这就等于默认大家都认识 /知道他,关注过他日常的动态
……好吧,这也不是不行
zed1018
2022-08-10 12:47:47 +08:00
@DTCPSS 嗯,我是 22h2 22622.450 ,1065G7 。 任务管理器里很多后台进程都进入效率模式了。

Moha
2022-08-10 13:49:47 +08:00
这个接上电源有啥帮助嘛?

如果确实可以,赶紧内置到 windows 里面把

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/871732

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX