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 号核心。


发布评论