闪盘当内存? Vista ReadyBoost再解析

互联网 | 编辑: 2007-03-24 05:30:00转载 返回原文

只有512MB内存的笔记本采用Vista Home Premium系统,在使用中可能会因为内存容量刚刚满足微软程序员们设置的Vsita最低安装需求而显得运行缓慢。加装内存的确是一项不错的计划,可是又有多少人真的会不辞劳苦的去购买并安装呢?前一段时间,Vista系统中一项名为ReadyBoost的功

ReadyBoost的再审视

前言:只有512MB内存的笔记本采用Vista Home Premium系统,在使用中可能会因为内存容量刚刚满足微软程序员们设置的Vsita最低安装需求而显得运行缓慢。加装内存的确是一项不错的计划,可是又有多少人真的会不辞劳苦的去购买并安装呢?前一段时间,Vista系统中一项名为ReadyBoost的功能号称可以将闪存盘变成内存使用,引起了不少的争议。当时intozgc也做了类似的测试,并得出了ReadyBoost功能并无所作为的结论。 最近又有部分用户在评测后,对此功能对系统的提升有一定的称赞。那么到底这个ReadyBoost对系统有甚么影响呢?让我们再度来审视这个充满了神奇色彩的Vista新功能吧。

关键词:SuperFetch  ReadyBoost  ReadyBoot  闪存盘

虽然微软 一直力推新系统Vista,可是直到目前为止,依然有相当多在IT产品卖场选购笔记本电脑类产品的用户,看到产品预装了Vista系统直接就PASS掉了。四毛走访卖场的时候,听到了 不少用户对此的解释是:现在笔记本电脑的配置完全跟不上Vista的要求,我才不要装呢!可见得,微软的公关们还要继续努力!

当然了,笔记本电脑运行速度慢一方面是硬件方面的历史问题。笔记本电脑先天的构架原因就决定其无法达到同时代台式机的强劲性能。而另外一方面则是软件载入速度。很多用户对电脑运行速度最 敏感的就是程序的载入速度。如果程序从点击使用到可以正常使用之间的时间差比较小,则大部分用户就会认同这台电脑的运行速度很快,性能比较强劲。而微软新操作系统Vista内的 这项新功能 ReadyBoost 就是为了迅速提升一些配置不够强大的整机运行速度而出现的。

当然了,性能与速度之间的关系属于非充分必要关系(两者之间有联系,但并非成比例递增)。我们之前曾对对内置1GB内存的笔记本做过 相关的测试,发现ReadyBoost对整机运行没有明显的作用,而且完全对性能没有任何提升。可是对照外国一些评测人员报告说ReadyBoost有一些电脑运行速度的促进能力,我们对此有了一丝疑惑。

本着没有调查就没有发言权的态度,我们再度针对ReadyBoost作出了相关的测试,检验其是否真如国外评测人员所言。

ReadyBoost对系统的影响:原理篇一

在评测之前,我们还是先了解一点ReadyBoost的原理。之前测试的时候,我们在微软网站上查阅相关ReadyBoost的文献,发现其对此项功能的介绍也非常少。今天重新查找到了一些相关的文献了,给大家介绍一下。

如今,由于CPU和内存的速度越来越快,而硬盘却一直没有明显的变化,渐渐成为整台系统性能的瓶颈。

始终不变的机械式硬盘依然是最广大消费者忠实的伙伴

首先是磁盘的磁头寻道时间一般约为10毫秒,现今的高频处理器只能等待其慢慢的读取写入数据,有些漫长。尽管内存是用于缓存数据的理想选择,但它的成本还是比较高的。而常见的闪存较为便宜,而且随机读取的速度最高可比常规硬盘快10倍。因此,Windows Vista 中加入了一个名为ReadyBoost的功能来利用闪存存储数据,方法是在这些设备上创建一个逻辑上介于内存和磁盘之间的中间缓存层。

ReadyBoost 由一个在 %SystemRoot%\System32\Emdmgmt.dll 中实现的运行于主机进程中的服务和一个卷过滤器驱动程序 (%SystemRoot%\System32\Drivers\Ecache.sys) 组成。(Emd 是“外部内存设备”的简称,也是 ReadyBoost 在开发期间所使用的名称。)当您将 USB类或者SD卡之类的闪存设备插入系统中后,ReadyBoost 服务会查看该设备以确定其性能特征并将测试结果存储在 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Currentversion\Emdmgmt 中

如果您使用设备进行缓存处理,并且新设备大小介于 256MB 和 32GB 之间、对于 4KB 随机读取的传输率为 2.5MB/s 或更高、对于 512KB 随机写入的传输率为 1.75MB/s 或更高,则 ReadyBoost 将询问您是否想要将部分存储空间用于进行磁盘缓存。(尽管 ReadyBoost 可以使用 NTFS,它还是会将最大缓存大小限制在 4GB,以适应 FAT32 限制。)如果您同意,该服务便会在该设备的根目录下创建一个名为 ReadyBoost.sfcache 的缓存文件,并要求 SuperFetch 在后台预先填充缓存。

设置readyboost缓存大小

在 ReadyBoost 服务对缓存进行初始化之后,Ecache.sys 设备驱动程序会将所有读写数据截取到本地硬盘卷(例如 C:\),并将要写入的所有数据复制到该服务创建的缓存文件中。Ecache.sys 会将数据压缩,压缩比通常达到 2:1,这样,4GB 的缓存文件通常将包含 8GB 数据。驱动程序会联合使用高级加密标准 (AES) 和一个随机生成的每引导会话密钥对其写入的每个块进行加密,以在将设备从系统移除的情况下保证缓存中数据的保密性。

当 ReadyBoost 确定可从闪盘介质内的缓存比硬盘内的缓存更能满足随机读取需求时,它便会从闪盘介质内随机读取数据。当然了,硬盘的有序读取访问要明显胜过闪存,因此,当ReadyBoost侦测到有系统正在使用有序访问数据的时候,将直接从磁盘读取,即使该数据同样位于闪盘介质内的缓存中。

上面的解释就是为什么 ReadyBoost 可以加速系统运行速度的原因。而在文献中还提到了一项功能 SuperFetch ,同时另外一项 ReadyBoot 功能也是依靠 ReadyBoost 提供的服务来提升速度的。

ReadyBoost对系统的影响:原理篇二

SuperFetch

在Windows XP 中对物理内存的管理采用了预读取管理,该功能基于应用程序启动时执行的大量磁盘读写的需求,向物理内存预加载可能用到的数据,从而提升应用程序启动性能。而在Windows Vista 中,则时凭借 SuperFetch 来实现分析历史信息和前瞻性内存管理来增强“least-recently accessed”(最近最少访问的)方法的来管理内存,显得更加智能,高效。

SuperFetch 作为在服务主机进程 (%SystemRoot%\System32\Svchost.exe) 内运行的 Windows 服务在 %SystemRoot%\System32\Sysmain.dll 中实现。该方案依赖于内存管理器提供的支持,因此它可以检索页面使用历史,以及引导内存管理器将来自磁盘文件或分页文件的数据和代码预加载到“待机列表”中,并为各页面指定优先级。SuperFetch 服务基本上是将页面跟踪扩展到曾经存储在内存中但已被内存管理器重新使用以为新数据和代码让出空间的数据和代码。该服务会将这一信息存储在 %SystemRoot%\Prefetch 目录中扩展名为 .db 的场景文件中(位于用于优化应用程序启动的标准预取文件旁边)。在对内存使用情况的这种深入了解基础上,SuperFetch 可在物理内存变为可用时预加载数据和代码。

只要内存变为可用(例如,当某应用程序退出或释放内存时),SuperFetch 便会要求内存管理器提取最近被释放的数据和代码。这个过程的速度缓慢而且硬盘读写的优先级为“非常低”,以便预加载操作不会影响用户或其他活动应用程序。因此,如果您离开计算机去享用午餐,并且某个内存密集型的后台任务导致活动应用程序的代码和数据在您离开期间被释放,则 SuperFetch 通常会在您回来之前将所有或大多数代码和数据返回到内存中。SuperFetch 还包含了对休眠、待机、快速用户切换 (FUS) 和应用程序启动的特定场景支持。例如,当系统处于休眠状态时,SuperFetch 会将数据和代码存储在它预期(基于以前的休眠)将在后续恢复期间被访问的休眠文件中。相比之下,当您恢复 Windows XP 时,先前缓存的数据在被引用时必须从磁盘重新读取。

ReadyBoot

如果系统的内存不足 512MB,则 Windows Vista 会使用与 Windows XP 一样的引导时预读取。但如果系统的内存超过为 700MB 或以上,它便会使用 RAM 内缓存来优化引导进程。缓存的大小取决于可用 RAM 总量,但这足以创建适当的缓存,并还可以为系统留出要顺利引导所需的内存。

在每一次引导后,ReadyBoost 服务会使用空闲 CPU 时间来为下一次引导计算引导时缓存计划。它会分析来自前五次引导的文件跟踪信息,并标识出访问了哪些文件以及这些文件在磁盘上的位置。该服务将已处理的跟踪信息以 .fx 文件形式存储在 %SystemRoot%\Prefetch\Readyboot 中,并将缓存计划保存在 HKLM\System\CurrentControlSet\Services\Ecache\Parameters 下的 REG_BINARY 值(这些值针对它们所引用的内部磁盘卷而命名)中。

缓存由实现 ReadyBoost 缓存处理的同一设备驱动程序 (Ecache.sys) 实现,但缓存的填充则是由 ReadyBoost 服务在系统引导时带领完成。尽管引导缓存像 ReadyBoost 缓存一样进行压缩,但 ReadyBoost 和 ReadyBoot 缓存管理之间的另一个区别是,在 ReadyBoot 模式下,除了 ReadyBoost 服务的更新之外,缓存不会变为反映在引导期间读取或写入的数据。ReadyBoost 服务会在引导开始后 90 秒时(或者在其他内存需求批准它的情况下)将缓存删除,并将缓存的统计信息记录在 HKLM\System\CurrentControlSet\Services\Ecache\Parameters\ReadyBootStats 中。Microsoft 性能测试表明,与旧有 Windows XP 预取器相比,ReadyBoot 使性能提高了约 20%。

ReadyBoost对系统的影响测试平台

本次作为测试的平台 分别为2004年产的惠普商务笔记本NC6000,评测的Vista版本为大部分家用笔记本内置的Home Premium版本。

安装好Vista Home Premium的NC6000

首先是配置得分以及系统版本的截图

我们看到内存得分的确不高,而硬盘得分还算不错。

担任本次测试主角的台电晶彩4GB闪盘,支持 ReadyBoost 功能

由于笔记本自身的内存仅512MB,所以我们将缓存设置为内存容量2~2.5倍之间,以期其能获得更加的性能。

所有的测试分别在使用Readyboost功能与不使用readyboost功能两种状态下分别进行。每次测试都在系统重新启动并稳定后进行。

软件开启运行速度

在内存少于512MB压根就不让安装Vista的条件下,NC6000的配置对于运行Vista仅仅是勉强而已。下图是重启时的物理内存消耗截图:

开机后任务管理器的检测结果,可用物理内存仅为4MB

我们可以注意到可用物理内存几乎为0,如果此时在运行一点程序,电脑的运行速度肯定会大打折扣。我们在vista系统中安装了一般用户最常用的办公软件OFFICE 2007 PLUS套装以及作图软件PHOTOSHOP CS2两款。

我们选取这两款软件主要是因为他们一个是最常用的办公软件,另外一个则是比较消耗内存资源的图形编辑软件。

在word 2007的测试中,我们在两种条件下分别进行了5次重复,并加以对照。结果是readyboost的使用与否对其影响不大,速度基本相同。

在outlook 2007的测试中,我们在两种条件下分别进行了5次重复,并加以对照。结果是readyboost在使用后,略微加快了一点速度,大约在1~2秒之间。

在PHOTOSHOP CS2的测试中,我们在两种条件下分别进行了5次重复,并加以对照。结果是readyboost在使用后,反而减慢了开启程序的速度。开启readyboost后测试,开始时为10秒左右,后期变为13秒左右。而非开启状态下测试,开始时为12秒,到了后期大约为7秒左右。

面对上面的测试结果,我们有点不知道如何是好。使用readyboost后,对内存读取、磁盘缓存要求较高的PHOTOSHOP CS2居然会出现性能下降的情况。而对于普通程序运行,虽然略有作用但是依然不是很明显。

而在资源监视器上面,我们可以注意到开启readyboost后的一些变化。

在第一次启动Outlook后,系统以6MB/s的速度向ReadyBoost缓存里写入文件.在随后几次的Outlook启动中,写入的操作几乎没有了,取而代之的是1.5MB/s的读取操作。

这是否就是readyboost加速的真正内涵呢?

readyboost对整机性能的影响

虽然readyboost在上面的测试中,表现得不是很好,但我们依然对它还保留一点希望。也许在专业测试中会获得更好的效果,下面就是pcmark06的测试结果:

未开启readyboost的测试

开启readyboost后的测试

测试结果与上次我们的评测文章的结果类似。有小的提升但是不明显,而且怀疑是测试误差导致的结果。

在软件对比测试的时候,我们还注意到另外一个问题。在资源监视器上,我们注意到开启readyboost后,系统开始往readyboost缓存那大量的写入数据。当系统稳定以后,让我们来看看readyboost对系统的影响。

开启readyboost后,磁盘i/o读写变少

未开启ready,磁盘读写很多

大家请注意,采用readyboost缓存后的系统I/O明显要比未采用的时候占用资源少。这从另外一个方面说明,readyboost可以减少系统进程对硬盘的读写,可能有减少硬盘的耗电量,延长使用时间的功能。

ReadyBoost对系统的影响:睡眠状态

虽然XP下的休眠用起来还不错,但是休眠需要的时间以及硬盘缓存文件都比较多。在vista下,微软设计了一项叫做快速开关机的功能READYBoot,在关机菜单里面此项功能被命名为“睡眠”。主要的目的就是方便那些随时需要办公的用户迅速的铺展、收拾完其工作用机。这项功能的实现同样也离不开Readyboost!

为了方便测试,我们将在vista系统下开启多个应用程序,并在其都稳定运行的情况下,让机器进入睡眠状态。

所有的应用程序包括有资源管理器、任务管理器、WMP11、Word2007、outlook2007、excel2007、PSCS2、HyperSnap。

看状态指示灯就知道笔记本的运行状况

在点击睡眠按钮后,我们就会看到硬盘等一阵狂闪,几秒以后整个系统就处于类似关闭的状态了。您再度点击电源按钮,vista系统就会迅速从睡眠状态恢复正常,整个时间不到10s。

经过我们的测试:

开启readyboost功能后,系统进入睡眠状态大约为5秒。点击睡眠状态按钮后,系统迅速关闭屏幕,只看见硬盘灯狂闪3秒就关闭系统了。再点电源钮系统在2秒内又会恢复原样。

未开启readyboost功能,系统进入睡眠状态大约为12秒。点击睡眠状态按钮后,系统迅速关闭屏幕,只看见硬盘灯狂闪大约10秒才关闭系统。再点电源钮系统在5秒以后才能恢复原样。

从这个测试项目看来,readyboost对系统的睡眠状态支持良好,可以给用户节省出不少的时间。而且由于反应迅速,可以给用户一个不错的印象。

结论:512MB笔记本用户没事还是插个1G SD卡吧!

从上面3段测试来看,想靠 ReadyBoost 来大幅提升程序开启的速度不是很现实的事情。如果您正在打算为了获得ReadyBoost功能,并为此去市场购置1个1GB的闪存盘似乎不是很值得。因为您花费的钱无法在运行系统的时候给带来明显加快的速度。

而花费闪存盘3倍左右的价格购置一条1GB内存可以让您的电脑运行得更快一些。从Vista的测试得分来看,512MB内存仅得到了2.9分,相比5400转硬盘的4.3分还有明显的差距。

使用readyboost功能,在整机的性能上不会给你太多的惊喜。毕竟它只是让你的电脑看上去更快了一些。使用Readyboost功能以后,您在使用中的确可以获得更快的电脑反应速度,而且不必每次都等着vista系统超过半分钟的关闭等待时间。插上支持readyboost功能的U盘,您就可以享受5秒钟关闭系统的愉悦感受。

四毛手里淘汰下来的1GB SD卡售价仅70元

由于ReadyBoost 具有缓存那些经常读取小文件,并借此减少硬盘 IO 频率,提升程序开启速度的效果。因此若您不想购置内存条,那么如果手边有不常使用的 U盘或者SD卡,不妨就将它插上主机,还是能够为系统整体性能贡献一点微薄之力的!

点击获取更多笔记本资讯

想知道更多关于移动办公方面的内容请访问移动办公频道。随时随地移动办公让您与工作零距离接触!

如果大家对本文有任何意见或者建议,可以在下面的意见提交区参与讨论。

返回原文

本文导航

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑