Windows XP在浪费你的钱?

对于CPU二级缓存(L2 Cache)的作用 , 想必大家都多多少少有一定了解 , 即使不完全明白其中道理 , 至少也可以从Pentium 4和Celeron的差价判断出其重要性—256KB二级缓存的Celeron D 2.4GHz比512KB二级缓存的Pentium 4 2.4C便宜近一半 。如果这时候有人说Windows XP操作系统并没有充分利用CPU的二级缓存 , 你会怎么想?这简直就是在浪费用户的投资嘛! 事实上 , 有一种广为流传的说法是Windows XP没有对CPU进行优化 , 理由就是它默认状态下并没有打开CPU的二级缓存 。如果你打开注册表编辑器 , 找到“HKEY_LOCAL_MacHINESYSTEM CurrentControlSetControlSession ManagerMemory Management” , 在其中可以看到一个名为“SecondLevelDataCache”的项 , 它的默认值为“0” 。再明显不过了 , “SecondLevelDataCache”就是二级数据缓存的意思 , 既然被设置为“0” , 那就是关闭了二级缓存 。【Windows XP在浪费你的钱?】正是基于以上论断 , 才出现了优化二级缓存的技巧 , 也就是把“SecondLevelDataCache”的值设置为CPU的二级缓存容量(单位KB) 。在众多的优化软件中也包含了优化CPU二级缓存的设置 , 例如“超级兔子魔法设置”、“Windows优化大师”和PcMedik等 。这样的优化到底有多大的效果呢?还是让事实说话比较好 , 请看我们进行的对比测试 。从测试结果来看 , 修改“SecondLevel DataCache”的值对测试结果没有任何影响 , 这是为什么呢?事实上 , 在微软的知识库文章(http://support.microsoft.com/default.aspx?scid=kb;en-us;183063)中可以看到 , 从Windows NT4开始 , “SecondLevelData Cache”的默认设置就已经是“0”了 。这篇文章指出 , 当“SecondLevelDataCache”为“0”时 , 系统会尝试通过硬件抽象层(Hardware Abstraction Layer , HAL)获取二级缓存容量 , 即便是硬件抽象层无法获取二级缓存容量 , 系统也默认设定二级缓存为256KB , 而不是完全关闭二级缓存 。在另外一篇Windows 2000的知识库文章中(http://support.microsoft.com/default.aspx?scid=kb;en-us;228766)中 , 明确地告诉用户 , 一些第三方资料宣称修改“SecondLevelDataCache”可以优化系统性能 , 这是不正确的 。Windows XP与Windows NT4/2000都是NT内核 , 因此在设计上具有一定的继承性 , 虽然这两篇知识库文章并不是直接针对Windows XP提出的 , 但可以看到这个问题由来已久 , Windows NT系列操作系统在最初就已经把这个问题考虑周全了 。从实际测试的结果和微软知识库文章的解释可以得出结论 , 所谓的Windows系统没有对CPU进行优化的说法是错误的 , 虽然手动修改“SecondLevelDataCache”也没有带来什么负面影响 , 但这种“优化”绝对是多此一举 。测试平台: CPU Pentium 4 2.8E 主板 微星865PE Neo2 内存 Kingston DDR400(256MB×2) 硬盘 Maxtor Plus 9 120GB(SATA) 显卡 ELSA影雷者FX534DV 操作系统 Windows XP Pro SP1 SecondLevelDataCache Super Pi 209万位测试 0 110秒 1024 110秒 512 110秒 256 110秒 128 110秒 64 110秒 32 110秒 16 110秒 8 110秒

    推荐阅读