
将缓存搬进RAMDisk,体验飞一般的感觉
众所周知,内存拥有远超固态硬盘的速度和近乎无限的寿命,非常适合高频读写任务。然而,仍有大量的磁盘读写发生在Temp与浏览器Cache文件夹——这是Windows为了稳健与兼容所做的选择。毕竟一旦意外断电内存就会清零,即使是缓存也有不少有用数据的。而且Windows要考虑到广泛的兼容性,也不是所有的用户都有足够的内存空间。
但随着16GB甚至32GB内存在笔记本平台普及,最后一个困难也被克服了——笔记本很少出现意外断电,充足的内存空间也允许我们自由发挥。为什么不把这两个文件夹直接划入内存,体验飞一般的感觉呢?
这就是RAM Disk(内存磁盘)。它不仅能极大地提高缓存读写速度,还能减少硬盘读写从而延长寿命。今天使用的这款软件是RAM Disk领域的佼佼者——SoftPerfect RAM Disk。
这里需要讲解一下不同缓存的区别:
- 浏览器缓存(Cache):存储浏览器最近加载的网页数据(例如网页缩放比例)和预编译的脚本文件,可以提高二次访问的速度,建议长期缓存。
- Windows临时文件夹(Temp):存储程序临时文件、Windows临时缓存、崩溃转储文件等,在Windows空闲时可被视为垃圾文件。
所以,针对这两种不同的缓存,笔者比较推荐采用不同的配置方法——Cache关机时写入硬盘,Temp关机时随内存直接清空。
浏览器缓存配置
首先,下载安装SoftPerfect RAM Disk(建议自行寻找)。

点击镜像——创建镜像,在弹出窗口中点击浏览文件夹按钮,选择一个位置(建议C盘或D盘根目录),输入自定义名称(这里以浏览器专用缓存Cache为例)后点击保存,创建一个img镜像文件。

由于浏览器有比较完善的缓存回收机制,一般不会超过2GB,所以这里设为2GB即可。如果有重度的网页需求可以增大到4GB。卷标可自定义。

点击确定,创建完成后点击软件右上角加号,添加内存盘,选择刚才的Cache.img。盘符可自行分配。
建议勾选动态内存分配、自动释放内存、关机时保存到文件,这样在缓存不多时几乎没有内存占用,持久化保存也Cache有助于加快网页的二次打开速度。

点击确定,完成挂载后可在资源管理器中看到内存盘,如图所示。

下一步就是将浏览器缓存移动到Cache,可以采用修改注册表或者软链接的方法实现。笔者更推荐修改注册表,因为其自带回滚机制,内存盘出故障时会自动写回原位置。
以Edge为例,首先关闭所有的页面和后台程序(Edge有可能打开了启动增强),Win+R打开运行,输入regedit打开注册表编辑器,进入以下路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge在右侧空白处新建一个字符串值,命名为DiskCacheDir。

双击编辑字符串值,将刚才的Cache盘路径填入其中,点击确定。

重新启动浏览器,随便打开几个标签页,可以看到内存盘中出现占用,其中Cache文件夹是网页缓存,Code Cache是脚本编译缓存。

这时候我们就可以进入到之前的缓存路径中清空这两个文件夹了。Edge默认缓存路径如下。
C:\Users\[用户名]\AppData\Local\Microsoft\Edge\User Data\DefaultChrome浏览器同理,只不过需要打开以下注册表路径新建DiskCacheDir:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\ChromeFirefox比较特殊,首先在地址栏输入about:config打开高级设置,然后搜索browser.cache.disk.parent_directory(若没有则新建这一字符串),然后填写具体的内存盘地址即可。
Windows临时文件夹配置
按照同样的流程创建镜像,由于Temp文件夹是大部分程序和Windows系统的缓存位置,所以空间可以多分配一些,建议分配总内存的1/4(笔者是32GB内存)。

挂载Temp镜像,不推荐勾选关机时保存到文件。

挂载完成后在软件主界面点击工具——设置Windows临时文件夹。

将TEMP和TMP都设置为刚才新建的内存盘。其中TMP是Windows为了兼容性保留的系统变量。

点击确定,重启Windows,可见已经有了占用。

这时可以进入下列路径清空Temp文件夹了。
C:\Users\Flashlightning\AppData\Local\Temp虽然同时挂载了2GB和8GB的内存盘,但笔者开启了动态内存分配和自动释放内存,几乎不会占用多余的空间。

隐藏多余的盘符
这两个挂载盘的作用是充当缓存,平时并没有访问的需求,但又会在资源管理器中显示,看起来比较混乱。我们可以通过修改注册表的方式把他们隐藏起来,同时不影响通过地址栏访问。
Win+R打开运行,输入regedit进入注册表编辑器,转到以下路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer右键新建DWORD(32位)值,命名为NoDrives。

Windows使用8位16进制数XX XX XX XX来编码26个盘符,2位一组,如下表所示。
| 盘符组 (从右往左看) | 包含盘符 | 十六进制示例 (仅该组) |
|---|---|---|
| 第一组 (末尾两位) | A - H | A=01, B=02, C=04, D=08, E=10, F=20, G=40, H=80 |
| 第二组 (倒数三四位) | I - P | I=01, J=02, K=04, L=08, M=10, N=20, O=40, P=80 |
| 第三组 (倒数五六位) | Q - X | Q=01, R=02, S=04, T=08, U=10, V=20, W=40, X=80 |
| 第四组 (开头两位) | Y - Z | Y=01, Z=02 |
例如K盘位于第二组,值为04,故K盘的编码为00 00 04 00;W盘位于第三组,值为40,故W盘的编码为00 40 00 00。
双击打开创建的NoDrives值,将需要隐藏的盘符编码输入。如果需要隐藏多个盘符,将多个盘符的编码直接相加即可。比如笔者需要隐藏Y盘和Z盘,这里需要输入的值就是01 00 00 00 + 02 00 00 00,结果为03000000。

点击确定,打开任务管理器,在资源管理器上右键重启(或直接重启系统),可见此电脑中展示的磁盘已消失。

如果需要访问,直接在地址栏中输入盘符路径即可。

如果想要恢复盘符,可直接删掉NoDrives值。
测试内存盘
如果想要直观体验内存盘的速度,可以使用Crystal DiskMark(也可使用集成在图吧工具箱中的Disk Mark)测试。
笔者的内存配置是16Gx2 DDR5 5600MHz,测试结果如图所示,可见无论是顺序读写还是4K随机都远超固态硬盘,一般是5-10倍的水平。

现在,打开你的浏览器,体验飞一般的感觉吧!
相关网站
- SoftPerfect RAMDisk
- https://www.softperfect.com/products/ramdisk/
- Crystal DiskMark
- https://crystalmark.info/en/