ReadyBoost功能,允许使用者通过闪存来加速系统。ReadyBoost由一个在%SystemRoot%\System32\Emdmgmt.dll中实现的运行于主机进程中的服务和一个卷过滤器驱动程序 (%SystemRoot%\System32\Drivers\Ecache.sys)组成。当闪存设备插入系统后,ReadyBoost服务会查看该设备以确定其性能特征,并将测试结果存储在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Currentversion\Emdmgmt中。 并不是所有闪存设备都能够支持ReadyBoost功能,在微软的技术文档中写道:“当闪存设备容量介于256MB和 32GB之间,对于4KB随机读取的传输率为2.5MBps或更高、对于512KB随机写入的传输率为1.75MBps或更高”时, ReadyBoost才会将询问用户是否想要将部分存储空间用于进行磁盘缓存。 尽管ReadyBoost可以使用NTFS,它还是会将最大缓存大小限制在4GB,以适应FAT32的限制。如果用户同意使用ReadyBoost功能的话,那么该服务便会在该设备的根目录下创建一个名为ReadyBoost.sfcache的缓存文件,并要求SuperFetch在后台预先填充缓存。 在ReadyBoost服务对缓存进行初始化之后,Ecache.sys设备驱动程序会将所有读写数据截取到本地硬盘卷(例如 C:\),并将要写入的所有数据复制到该服务创建的缓存文件中。Ecache.sys会将数据压缩,压缩比通常达到2:1。这样,4GB的缓存文件通常将包含8GB数据。驱动程序会联合使用高级加密标准(AES)和一个随机生成的引导会话密钥对其写入的每个块进行加密,以在将设备从系统移除的情况下保证缓存中数据的保密性。 当ReadyBoost确定闪存内的缓存比硬盘内的缓存更能满足随机读取需求时,它便会从闪盘介质内随机读取数据。而硬盘的有序读取访问要明显胜过闪存,因此,当 ReadyBoost 侦测到有系统正在使用有序访问数据的时候,将直接从磁盘读取,即使该数据同样位于闪盘介质内的缓存中。 正是基于这个原理,ReadyBoost 可充当内存与硬盘之间的桥梁作用,从而加速系统性能。
作用
ReadyBoost 可以利用U盘高速随机访问能力,让U盘作为 Windows Vista 的SuperFetch缓存,从而让低内存的 Windows Vista 也能获得比较好的性能(SuperFetch 是 Windows Vista 引入的一种新型内存管理机制,ReadyBoost 把U盘虚拟成 SuperFetch 缓存,从而提高系统性能)。随着u盘性能不断提升,现在好的u盘usb2.0存储速度已经实际达到8MB/s至20MB/S(笔者u盘已经达到20MB/s),足够替代内存来使用。而随着USB3.0的发展,U盘速度已实际达到30MB/s至60MB/S。 关于简单检测u盘速度的方法: 复制大于150MB的单个文件到u盘,usb2.0下如果持续显示速度只有4MB/s,那么你的u盘现在属于低端u盘,不过已经达到4MB可以运用加速,只是加速不太明显。 若usb2.0下复制速度超过15MB/s,既是现代流行的u盘速度,属于主流u盘,完全可以应用加速,且效果明显。