《全境封锁2》CPU100%占用导致鼠标卡顿问题与处理方法

不知道为什么最近新出的两个刷子游戏《圣歌》和《全境封锁2》都这么吃CPU。

和PS/2鼠标不同,USB鼠标指针的移动靠的是CPU去轮询USB接口,视设定与鼠标型号,从125Hz到1000Hz都可能。

但频率不是重点,重点是CPU需要资源去做这个事情,然后当有程序疯狂占用CPU导致没有资源来正常轮询USB接口的时候,你的鼠标指针移动或者键盘输入就得被迫中断。最直观的感受就是鼠标卡了,射击游戏里视角突然挪不动了。

《全境封锁2》在我电脑上,目前就有这个bug,只要角色开始移动,CPU就飙升到100%,i5-4690K,超到4.3GHz的,带不动。《圣歌》同样也是,但不是bug,它本身优化就差(v1.03)。

这就是为什么众多解决鼠标卡顿教程里,都让你降低鼠标polling rate(回报率),因为鼠标传回的永远是位置的相对移动,而低回报率的时候,每个移动变化相对高回报率大得多,这样至少让你的鼠标在卡顿的时候能动的快一些……

但这治标不治本啊,我凭什么不能把鼠标的优先级调高点,让CPU先处理我的鼠标移动,游戏先靠边站?帧数降点降点就是了,能动才是最重要的啊。

鼠标是谁负责去操作的?ntoskrnl.exe,Windows的内核映像。虽然我找不到任何文章来证明这点,我也没法扒代码去研究这个,但我至少可以确定,这货优先级调不动……

当所有东西都处于正常优先级的时候,游戏疯狂占用CPU,自然会把鼠标移动抢走,但我又不能提高鼠标移动的优先级?

那就把思维逆转一下:把游戏的优先级降低

很有趣是吧,无论《圣歌》还是《守望先锋》,很多教程提到的是让你提高优先级,看似有意义,让游戏优先于其他程序,是不是鼠标就跟着游戏变流畅了?实际上并没有作用,为什么呢?因为鼠标输入(大概?)不是游戏控制的。

《圣歌》很容易搞定,任务管理器右键一下就可以,《全境封锁2》就烦人了,Easy Anti-Cheat不让你对进程进行操作,能进行操作的是通过注册表让Windows在TheDivision2.exe启动的时候直接设定优先级。

注意:以下操作涉及修改注册表,具有潜在的危险性,请三思而后行。

下面的内容保存成扩展名为.reg的文件,然后双击导入注册表就算完成了:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\TheDivision2.exe\PerfOptions]
"CpuPriorityClass"=dword:00000001

如果你觉得1(低)有点太低了,也可以改成2(低于正常)。可用的值还有3(正常)、5(高于正常)、6(高)。4是“实时”,不允许用的,永远都不要用。

我试了一下确实好使,虽然CPU一直还是100%,但是瞄准不是问题了。

可能会造成的后果:当背景有其他程序突然占用CPU的时候,游戏会卡顿。

当然了,如果你的卡顿不是由于CPU100%抢占鼠标资源造成的,这个方法不会好使。但至少能搞定一种问题,这就够了。

Ubisoft, please fix.

分享到: