欢迎光临散文网 会员登陆 & 注册

注册表Win32PrioritySeparation 数值与CPU资源分配的对应关系

2021-08-07 11:47 作者:QFAN  | 我要投稿

太长不看总结:你99.999%用不着动这个设置。我也不知道它有多少实质性影响。

在注册表的这个目录:

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl

里面有一个Win32PrioritySeparation数值,用来控制Windows如何分配CPU给各个程序。

原本微软网站上就有官方详细解释,但是微软网站多次修正重组之后很多原本指向官方文档的链接全都挂了。现在想找真难。总之把guru3d论坛上Animatrix的帖子( https://forums.guru3d.com/threads/faq-of-the-software-operating-systems-section.155424/#post-1451631 )中的一段转载出来以作记录。


Win32PrioritySeparation 数值代表的意义

稍微解释一下:

应用程序想用CPU,就要找Windows给它排队。注册表中Win32PrioritySeparation的数值会影响Windows每次分配给程序用CPU多久、给多少优先级。

大体来说,上图中的【长短】是指每次当一个程序排队之后,领到CPU使用权时,可以持续使用时间的长短。

【可变、固定】长度则是是否允许Windows自己灵活控制每次CPU使用权的时长。

【前台是否优先】则类似于任务管理器中调整进程优先级。只不过如果是允许了前台优先,那么Windows会自动给前台运行的程序一个隐含的优先。

上图中有两个值其实是[系统属性]-[高级]-[性能选项]中选择【应用程序】或者【后台服务】时会自动设置的。

38(0x26)对应的是短时段、可变长度、前台高优先。

24(0x18)对应的是长时段、固定、前台不优先。

下图:选择为后台服务优化、应用之后,在注册表编辑器里F5刷新能看到它自动存了0x18进去

为后台服务优化时,自动存为0x18


这个设置实质上是否对游戏有性能影响、有多少影响,我没测过。谁有闲心可以跑分试试。不过在跑分常用的“干净系统”环境下(什么乱七八糟程序都没装)这个设置的影响应该是非常小的。反正都没几个东西去排队要CPU时间,无论怎么分配都差不多。

理论上来说,它的影响最明显的时候反而是难以精准跑分的环境下。比如玩着游戏同时开着直播工具二百个浏览器标签三个聊天软件一个语音会议六个RGB控制器顺带开着b站监控八个主播,那么Windows如何管理CPU时间分配可能会有更明显的影响。尤其是对帧率的稳定性、操作延迟等等。

如果分配时段太【短】,那么程序就要更频繁地回去排队。不少CPU时间都浪费在了来回排队、内核/程序环境切换上。

如果分配时段太【长】,那么不清楚这是否会影响系统对点击等事件处理的延迟。

【可变长度】需要系统多花点时间安排长度。

【前台高优先】可能导致后台程序分配不够。有时会出一些奇怪状况。


注册表Win32PrioritySeparation 数值与CPU资源分配的对应关系的评论 (共 条)

分享到微博请遵守国家法律