深入了解内存(五)——SDRAM读取过程分析
2007-11-11 06:52:26 来源:WEB开发网- 当谈到增加内存时,我们不得不处理好成本和速度的问题。那么到底你真正需要多少内存?通过下面的测试,我们得到了令人惊讶的结果。
多少内存才算够呢?这是个困扰我多年的问题——还有上千上万其它电脑用户。到目前为止,我还没有得到真正能让我满意的答案。
(标准化越来越近了):NAMESPACE PREFIX = O />
首先,不管它是什么型号的,DDR,DDR2,或者其它的,都是通过和你系统一起工作的主板和处理器相互配套的,你要选择机器的内存容量,必须根据系统的主板和内存来定。
然而,要计算出多少才够用是不容易的——电脑的内存是变化的。你在做什么,你用的什么软件都是决定性的因素,这将决定你电脑的最佳内存大小——而且电脑与电脑之间的情况还不一样。
比如,根据微软说法,你需要用来运行Windows XP操作系统的最低内存大小是128MB或更高(64M可能会限制性能和一些功能的使用)。同样的,对于处理器也有最小规格要求,不过没关系,你的处理器是肯定超过那个最小规格要求的。
换句话说,我那台老式的只有64MB的IBM ThinkPad 600X,在某种程度上也能运行Windows XP Pro.。微软Word和Lotus Notes都可以顺畅的运行。如果内存快不够了,Windows会开始使用你的硬盘来代替你的内存。不过速度上的差别就如果走路与驾驶NASCAR赛车。
测试
那么到目前为止最理想的内存大小是多少?为了找到答案,我决定用一个经典的Media Center系统来测试,并将它从512MB升到2GB,这是大多数消费者所使用的主板所支持的最大内存的一半,当然也是你能找到的最大。
出于一些目的,我从淘宝上购买了四个PQI 极速飚王 DDR2 800 512MB内存。因为这是性能相当高的内存,价格比较高——每块超过1300RMB。你也能找到一些差不多但很便宜的,比如金士顿 512MB DDRII 533,大概360块钱一块。
测试时,我用了两套软件来测试增加的内存对的电脑性能的影响,分别是:COSBI OpenSourceMark(OSMark)和UIead VideoStudio 10 Plus。
OSMark 是一个合成的基准程序——这表明在软件里没有真正的商业应用程序。相反,OSmark是设计来检测所有的次系统(如CPU,内存等)然后通过组合和分权个体的结果来得到一个性能数字。VideoStudio是一个真正的应用软件,我用它来将一个一小时的电视录象分成了一个43分钟的视频剪辑,然后将它们并到一起成为一个完整没有广告的视频。
另外,除去增加更多的内存,我将在系统中做的另一个改变--就是启动或屏蔽双通道内存体系。还不能在双通道上加速吗?没问题。
双通道就是成对的使用内存。为什么这个比较好?想想一副扑克。如果你就用一只手从牌面上拿一张牌,放在面前,然后拿下张,最后所有的牌都会在你面前。但是,如果你轮换双手,就要快很多了。
基准测试内存
有512MB内存的电脑可以产生一个1053的OSMark分数——如果你想有更高性能的PC这个分数还不够。幸运的是,这个电脑只是用来娱乐的。当然,它仍然有升级的空间。
当系统内存超过1GB,基准测试已经不能够再衡量性能的提升了
插了两块512MB内存——总共1GB,并且不使用主板的双通道容量,OSMark可以冲到1074。这是很高的分数了,但是还不足够高。然而,当我转换两个内存,让它们启用双通道,数字跳到了1111。
换句话说,在双通道模式下从512MB调到1GB将会产生百分之十五的性能上的提高,当同样多的内存,但没有用在双通道模式下,只会有百分之二的提高。
因为越多越好(是吗?),我加入了第三块512内存,这就总共得到了1536MB。然而,这反而影响了双通道的工作。双通道需要一个双数的内存。相应的,OSMark给系统的分数是1112,增加的512MB仅得到了一分的增加?这不会让你想要在内存上花更多的钱。
于是我又装入了第四块也是最后一块512MB内存,再一次为所有的内存恢复使用双通道。这一次,OSMark得到的结果是1112。啊?!
这就是你为什么不能只依靠基准程序的原因了。
看上去是OSMark并不需要超过IGB的内存来运行,所以超过那个点增加内存并不能带来性能的提高。你怎么来证明这个?用一个真正的应用程序来试试:VideoStudio 10 Plus。
现实生活中的内存
我对电视录象的剪辑也说明了同样的问题。当我不用双通道时,从512MB换到1GB基本上没有太大的变化。当在512MB下工作时,录象剪辑到35分2秒,而升到1GB时是34分50秒。
现实使用的应用程序中,更大的内存意味着更好的性能--尤其当双通道开启的时候
当我重新设置到双通道时,仅需要31分45秒,超过四分的进步。如果你每天每周都做这项工作,一年里这就会节约你不少的时间,而你要做的就是转换到双通道。
换一个更大的内存怎么样?当我插入第三块内存时,时间实际只缩短了17秒。为什么?对的,因为我扰乱了双通道。
当我加入第四块512MB内存来平衡时,时间缩短到30分31秒。时间上的缩短就是我们要的证明,OSMark并没有使用我加入的超过1GB的内存。
我能加入更多的内存来看看有没有更大的进步吗?答案是肯定的。但是,在这点上,我会遵循渐少的原则。开始,因为我只有四个槽,我需要换掉我正在使用的两块内存,用更高的,比如1GB来代替。这是购买新内存的主要花费,也是对旧内存的浪费。
除非你是做视频剪辑或者其它对内存要求很高的工作的,否则在性能提高上的这些花费都是不值得的。为什么?目前来说,象我现在用的这单块512MB内存模块的价格中关村报价是1360RMB。通过在双通道模式下转用1GB得到的提高,花费了。为升级到2GB,花费将达到5400RMB,产生的投资回报会更低。
如果你想得到超过2GB的内存,你将会花费2.5倍的钱——记住,为了达到3G,你将会扔掉两块原来的内存,这将损失2600多RMB,增加两块1GB模块每块价值1925元。为了附加的内存你总共要花费3860元,这最多只会产生性能上的一点提高。
结论
不幸地,虽然我已经演示了双通道是更好的选择,我也同时说明了内存的数量是随情况变化的。这由你需要内存来干什么来决定。比如你做视频剪辑,一项任务时间的减少,整体下来就会节省很多时间。但是对于其它的情况,2GB就足够了。事实上,一般的计算机爱好者更偏好1GB。
对于视频剪辑,大电子制表软件,图象操作,还有类似的对内存要求高的工作,更高的内存在某种程度上更好,同样的你也要花费你辛苦得来的钱。除非你不介意在这些问题上花费,那么你就需要做一些工作来计算什么时候你会到达那个倾卸点。
- ››深入理解JAR包
- ››深入分析Volatile的实现原理
- ››深入理解Flash Player的应用程序域(Application ...
- ››深入理解flash函数(AS2)
- ››深入理解Android消息处理系统——Looper、Handler...
- ››深入理解SET NAMES和mysql(i)_set_charset的区别
- ››深入理解Mysql字符集设置
- ››深入浅出实战攻防恶意PDF文档
- ››深入剖析防火墙策略的执行过程:ISA2006系列之六
- ››深入JavaScript与.NET Framework中的日期时间(3)...
- ››深入JavaScript与.NET Framework中的日期时间(2)...
- ››深入JavaScript与.NET Framework中的日期时间(1)...
更多精彩
赞助商链接