2024年3月31日发(作者:)

魔兽世界多核cpu优化,使用后帧数大幅提升。

在魔兽世界安装位置,有一个 WTF 文件夹,里面有

配置文件。

用记事本打开该配置文件,可以手动设置多线程优化。

与多核心有关的配置项目有两个:

SET coresDetected ""

SET processAffinityMask ""

第一个是原本就有的,第二个需要手动加入。

SET coresDetected "" 很容易理解,就是检测到几个处理器。

但它的实际效果却很特殊。

SET processAffinityMask "" 比较复杂,需要有一些编程知识才

知道其中含义。

基本规律就是,把系统中的核心编号,1 2 3 4 5 6 7 8 核心,对

应 1 2 4 8 16 32 64 128 作为该核心的"Mask"

需要使用哪几个核心,就把他们对应的编号相加,写在配置文件

中。

这里还有约束条件,就是 SET coresDetected "" 中设置的核心数

目必须大于等于 SET processAffinityMask "" 中需要设置的编号。

这两个设置和操作系统的线程调度相配合,就可以实现魔兽世界

的多核心优化。

对于 双核心 系统,(双核酷睿2,Athlon II ,Pentium 等)

只需要保持默认的 SET coresDetected "2" 就可以了。

后面那一行不需要,也没有意义,设置不当反而会降低性能。

对于 双核心+超线程 系统,(各种 i3 ,部分型号的 i5)

通常只需要 SET coresDetected "2"

Win7 SP1 已经可以正确识别并分配超线程的应用,所以设置成两

个线程让Win7自动分配就好,没必要手动设置。

如果你很好奇,可以根据实验决定是否使用 SET coresDetected

"4" ,SET processAffinityMask "5"

这里设置为5,意思是使用 Mask=1 和 Mask=4 的 1号 和 3号

核心。

超线程CPU的关系是: 1 2 虚拟核心属于同一个物理核心,3 4

虚拟核心属于同一个物理核心,使用 1 3 意味着同时使用两个物理核

心。

(对于WinXP 这样设置也许有帮助)

对于 四核心 系统:(Core2 Quad ,Athlon X4 等等,不包括推土

机)

我个人测试的结果是,SET coresDetected "2" ,SET

coresDetected "3" ,SET coresDetected "4" 性能没有明显变化。

按照魔兽的编程优化,设为3比较合适。

不需要 SET processAffinityMask "" ,因为四物理核心都是对等

的,分给谁都一样,让系统自动完成即可。

对于 四核心+超线程 系统:(主要是各种 i7)

SET coresDetected "4" 即可,其他不要动

我试验了 SET processAffinityMask "" 各种数值,结论是90%的

情况性能下降,起反作用。

主要是Win7 SP1 自己就有一套超线程优化调度体系,手动指定

核心会发生冲突,性能下降。

对于 八核心 系统:(推土机)

SET coresDetected "8"

SET processAffinityMask "84"

这是通常优化的设置,4+16+64=84 ,使用 Mask=4 Mask= 16

Mask=64 对应的 3 5 7 号核心。

可以最大化发挥推土机架构的模块优势,避免两个线程分配到同

一模块。

(第一个模块对应的核心没有

被分配,因为操作系统喜欢用1号核心)

对于 八核心 系统:(多路至强)

SET coresDetected "8"

SET processAffinityMask "170"

这个是我根据实验结果得出的,使用 2 8 32 128 Mask 对应的 2

4 6 8 号核心。