[CPU主板内存] MEMDISK/RAMDISK已经过时,玩转FancyCache缓存,让系统提速,静音,延长硬盘寿命

joe9i0 2013-08-10
FancyCache 概述

FancyCache是一个可以将系统内存或闪存虚拟成硬盘缓存的软件。它把从硬盘中读取的数据存入系统内存或闪存,使系统在下次访问该数据时可以很快从内存读取,避免再次读取速度较慢的硬盘,从而突破硬盘瓶颈,提升系统性能。
FancyCache还具有检测和利用系统未识别内存的功能,解决32位Windows操作系统无法完全使用4G或更多内存的问题。通过将检测到的系统未识别内存用作硬盘缓存的方式,FancyCache使计算机可以利用全部安装的内存。
基本原理
FancyCache为硬盘分配内存作缓存,并拦截系统发送至硬盘的IO请求。如果IO请求读取的数据已经在缓存中,则直接读取缓存中的数据并完成IO请求。否则数据则从硬盘中读取出来,并存入缓存,同时完成IO请求。由此可见,从缓存读取的数据量越多,则系统性能提升的越多。



主要特性
支持 LRU (最近最少使用调度算法) 和LFU (最近最不常用调度算法) 缓存算法,
支持 读写缓存、仅读缓存和仅写缓存 三种缓存策略,
支持 直接写入 和 延迟写入 两种写入模式,
支持 系统内存、系统未识别内存、闪存盘、固态硬盘SSD作为缓存,
支持对分区或整个硬盘缓存,
支持 TRIM 指令,
支持可视化性能监视统计,
支持动态硬盘,
支持NTFS junction point (符号连接),
支持自定义文件系统,
支持即插即用。
为什么使用FancyCache?
Windows操作系统本身已经实现了基于文件的缓存系统,我们还需要再使用一个缓存系统FancyCache吗?
某些应用程序会绕过Windows操作系统自身的缓存系统;
Windows操作系统的缓存系统是基于全局进行缓存,即对所有数据进行缓存,而FancyCache可以根据用户需要,设置仅对某一特定分区进行缓存。在同等缓存容量下,后者将更具目标性,从而提高缓存命中率。
FancyCache可以识别系统未识别内存,将其利用作缓存;
FancyCache可以将闪存盘或SSD固态硬盘用作缓存,提升普通硬盘的访问能力。


支持的操作系统
Windows XP, Windows 2003, Windows Vista, Windows 2008, Windows 7, Windows 2008 R2
更多信息
使用帮助            评测应用
FancyCache正进行Beta测试!
FancyCache Beta测试版本 0.8.0 已经发布。如果您有时间并愿参与我们的测试,我们表示非常感谢!
测试版本有效期为180天,可以从以下地址获取,
分区版(可对每个分区缓存):进入下载页面http://www.romexsoftware.com/zh-cn/fancy-cache/download.html
硬盘版(可对整个硬盘缓存):进入下载页面http://www.romexsoftware.com/zh-cn/fancy-cache/download.html
测试授权文件:点击这里http://www.romexsoftware.com/bbs2/zh-cn/viewforum.php?f=28查找最新的测试授权文件,以便继续试用该软件。
我们强烈建议您在非实际生产和工作环境中测试beta版本软件,以免造成不必要的损失。同时Beta测试者请注意在测试之前对重要文件和数据先进行备份,以防万一。如遇系统无法启动等致命问题,用户可以尝试进入安全模式卸载软件。
joe9i0 2013-08-10
很多朋友对FancyCache应用有理解误区,我详尽分析说明下,补充命中率解读。

LFU是用少的内存来实现高的效率    最近最不常用调度算法,软件统计数据被使用的频率,使用频率最低的数据首先被丢弃。
LRU是用多的内存来实现高的效率    最近最少使用调度算法,首先丢弃最近最少被使用的数据。
命中率 = 读取字节(缓存)/ 读取字节(总计)x100%
LRU 以时间为调度依据,并不统计频率。
LFU 则以频率为调度依据。
LFU有未命中,LRU没有

呵呵,我也才用一个星期而已,总结一下我对另外一个帖子中朋友们提出疑问的回帖,不对的地方请大家指正。

FancyCache效果比Ramdisk强很多,Ramdisk局限性太大,很多时候无法用内存替代硬盘做很多工作,现在则不然,有了这东西,我得出的结论就是,Ramdisk时代可以结束了,除非是什么IE缓存,系统tmp临时文件之类的需要用到目录指向的需求,其实单就这方面都是可用可不用,用Ramdisk存放临时文件的好处就是配合FancyCache完全不必写物理硬盘数据了,其他我就真看不出来Ramdisk有什么功能不会被FancyCache所替代了,呵呵。

FancyCache并不需要大内存,我们目前使用的传统机械硬盘缓存也就是16MB的常规,但是每提升1MB都会有很显著的性能提升。

二级缓存最好不要设置在Ramdisk中,不同的Ramdisk软件构架不同,优先级不一样,这个软件是驱动底层实现的,如果贸然设置在Ramdisk中,有几类Ramdisk的优先级别不如它,则会造成系统崩溃或者建立不了缓存文件,只有优先级别高于它的才可以,比如QsifRamdisk,我测试了,Qsoft Ramdisk即使被设置了缓存,也不会出问题,但是没有意义,潜在的应该也有不稳定因素。

设置延时数据后,如果设置的缓存空间满了之后会根据你的设置来决定数据去留,如果设置的是不常使用的数据优先被抛弃,则读数据被抛弃,写数据被正常写入物理硬盘,需要用到读数据时和正常的运行软件一样,重新读入,速度不会有影响,而如果是顺序抛弃,则根据数据进入内存的先后顺序进行读写抛弃,装入新数据,所以缓存越大,这种和物理硬盘间的数据交换就越少,速度就越快,反之,还是需要和物理硬盘进行数据交换,当然了,这个过程依然是提升速度的,因为即使不用这个软件,你进行电脑操作时也依然需要完成相应的读写操作,所以只能快不会慢。

你们觉得这个软件只有大内存才能用,我是在保证操作系统够用的情况下划出尽可能多的空间来使得整个电脑操作过程在内存中完成,但是实际上用了这个软件1MB就是1MB的效果,每1MB都能发挥效果,哪怕是设置16MB缓存都是有用的,前提是保证操作系统的正常内存需求,4GB内存如果用Windows7的话,划出 256MB或者512MB都是可以的。

反而说起来,FancyCache比起Ramdisk对于内存的利用率和利用效率更高,因为 Radmisk很多时候需要内存划出足够空间来满足要求,这就使得,举个例子,我要玩一个游戏纯内存运行,大小是2GB,我就必须划出2GB以上的Ramdisk来满足游戏拷贝和运行期间的数据交换需求,那么就需要内存远大于2GB来同时满足游戏和系统内存需求,但是FancyCache则不然,FancyCache得工作原理是截留所有和硬盘交换的数据,那么游戏不放在Ramdisk上,只要设置的缓存空间够大,则读取一次游戏后就实现了纯内存运行,当我不玩游戏时,缓存空间可以立刻被其他正在做的事情填充,而不会需要手动干预,最重要的是如果我没有2GB的内存,则我不能实现纯内存运行游戏,可是FancyCache设置512MB的情况下,当游戏正在进行的场景被载入,不到512MB,也依然是纯内存运行,这就使得自由度和利用效率大大增加了,具一步步分析原理需要费更多话,我就不罗嗦了,大家自己想想会觉得这极其恐怖,SSD完全可以无视。

对于不少朋友很自豪的说用SSD就不需要看此类软件了,我要说,完全理解错误。举个例子,我设置8GB缓存,然后延时写入6小时,在这六小时中,我进行了各种软件操作,包括打游戏,这六小时中,上网和游戏过程中产生了很多需要写入硬盘的临时缓存数据,而当我关闭游戏或者软件的时候,临时数据会被删除。那么你应该可以理解,实际上对于不使用FancyCache的情况下,物理硬盘在这个过程中是被反复读写的,但是最终很多数据在硬盘上被删除了,而使用了FancyCache之后,这一切都在内存中完成,最终需要写入硬盘的只是刚性写入需求文件,则实际上写入的文件数据量和次数会大大小于不用FancyCache的情况,对于硬盘速度和寿命会有显著提升和维护,SSD尤为如此,磁盘碎片也会大大减少。

另外说一下设置和选择版本问题。

如果只是对系统的速度提升有要求,那么分区版就最好,如果希望运行所有的软件都有效果,那么还是硬盘版更好,比如说,我希望装在D盘的某个游戏运行速度提高,而其他东西不要占用宝贵的缓存空间,则只需要运行分区版打开D盘缓存即可,如果希望运行所有东西速度都提高的话,那么一定是硬盘版比较好,前提是内存够大。

均匀写入缓存数据看你个人需要,举例说明就是,如果你想对外接存储设备开启延时,那么因为外接存储设备的数据速度慢,那么开启均匀比较好,不会造成大量数据涌入,但是如果是主挂硬盘,则没必要开启,延时很长的情况下,比如我开启六小时延时的情况下,六小时内大量的数据变化全在内存中完成,则不开启均匀写入,可以让最终写入的数据量小且更加整装。但是延时写入时间长一定要养成好习惯,重要数据工作完成后立刻手动写入延时,六小时内没有重要的数据,则无所谓。

缓写数据对于SSD尤其有用,缓写数据对于内存大的情况下,硬盘读写次数更加少,SSD的循环擦写概率会大大降低,像我开启4GB缓存并且缓写的情况下,一般应用是不会在启动硬盘,硬盘几乎处于休眠状态了,16GB内做了各种测试,觉得一般应用2GB内存缓存就够了。

因为软件原理是系统进行任何与硬盘有关的数据交换时,截留数据在内存,所以第一次运行某个软件基本上只有读操作,以后只能快不会慢,第二次运行程序,如果你的程序需求小于你设定的缓存容量,则必然是纯内存读写操作,完全秒开处理,只能越用越快,不会慢,除非,你用3GB内存运行windows7,然后设定2GB缓存,那就慢了,这个应用需要综合考量你的软件应用环境和硬件平台,进行合理设置,必然是飞一般的感觉。

http://www.romexsoftware.com/zh-cn/fancy-cache/

这是中文网站

我再举一个例子让大家可以更清晰地了解这东西的运作原理。
比如说,我想要看一部电影,但是我不想让看电影的两小时中磁头不停地寻道读取数据,减少硬盘损耗,那么我有两个办法。

第一,我有Ramdisk,则我把电影拷贝入虚拟硬盘,开始看,硬盘只需要十数秒一次读取完就好了,电影可以实现内存观看,硬盘不会再因为电影而工作了,休息两小时先。

第二,我有FancyCache,有Ramdisk,则我可以把电影随便从目标目录拷贝入任何一个目标容量大于电影容量的任意路径,同样,硬盘读取一次,但是,假如我设置了2GB的FancyCache缓存空间,而电影只有1.9GB,则电影完全进入内存,没有设置延时写入的情况下,电影真的被写入了目标路径,如果这个目标路径是物理硬盘,则真的对物理硬盘进行了写操作,如果目标路径是Ramdisk磁盘,则顺序是物理硬盘-〉FancyCache-〉Ramdisk,后两步完全在内存中完成,物理硬盘或者Ramdisk真的被占用了1.9GB,而FancyCache也有1.9GB的电影文件存在,也就是说计算机系统中存在了3个电影文件,目标硬盘(虚拟或者实体的),FancyCache缓存以及原始电影存放路径,各有一个电影文件存在,而我这个时候看电影,无论如何也是纯内存运行,无论目标路径是实体还是虚拟的。

这时候我因为实体硬盘或者虚拟硬盘被占用了1.9GB,我想释放出来,但是我还没有看电影,则我选择把刚拷贝的电影文件删了,那么虚拟硬盘和物理硬盘均完成一次删除的写操作,3个电影文件被删除了一个,FancyCache中的电影文件依然存在,我这时候点击原始电影文件观看,其实不会真的由磁头去读取电影文件,而是直接调用FancyCache进行播放,依然是纯内存播放电影,硬盘不会完成任何写或读操作。

如果我设置了延时写入呢?假如说是10分钟,则选择拷贝后,原始电影文件数据只是完成物理硬盘-〉FancyCache缓存的过程,不会真的向目标路径完成写入操作,我这时候开始看电影,十分钟后,电影文件被写入目标路径,不管是Ramdisk还是实体硬盘,写操作完成,但是在写入完成后不会读取这个东西,磁头依然是不工作的,仍然是内存在兢兢业业的干活。

但是如果我设置的延时是6小时呢?则在我看电影的两小时中,目标路径都不会真的被写入东西,虽然看起来目标路径是有东西的,但是它不是真实存在的,我删除也罢(清理空间)不删除也罢,都没有真的写入这个文件,看完电影后我选择删除这个电影文件,实际上只是看起来没有了,但是系统记得,原来6小时后应该把这个文件写入的,现在不用写了,也就说至始至终,所有的操作完成,物理硬盘也不过就是花了十几秒读了一次电影文件而已,接下来一直休息了,无论对机械还是SSD都是这个原理。

同理,大家仔细套用思考一下,平时的工作,办公还是游戏,还是上网,还是下载,都是内存,完成,什么BT,电驴,都是内存搞定,只是有朋友会说,我用Ramdisk下载BT和电驴文件也是一样的,不会损耗硬盘,其实不然,我要下载一个8GB的文件,那么我需要内存大于8GB来设置一个8GB的Ramdisk才行,条件不太够,我只能还是真的写入了物理硬盘,但是用FancyCache则不然,我只有2GB的FancyCache缓存,看起来没办法完成这个8GB的文件纯内存下载,的确,无法完成,但是……我下载前2GB的时候,纯内存下载了,到了2.01GB的时候,开始写操作,真的开始写物理硬盘,一次性写入,接下来的2GB又是纯内存下载来替换了FancyCache原有的2GB文件,也就是说,实际上下载8GB文件只写硬盘操作4次,磁头只工作一点点时间,其他时间在放假,如果是BT呢?一次性要在硬盘建立一个8GB的文件,则其实只是建立的那一次和不用FancyCache的情况差不多,其实有点差别,不过不必深究了,接下来就还是上面的那个流程了。

大家可以看出,我有16GB内存的情况下,我设置6小时延时,而6小时中,我下载也罢,还是运行什么东西也罢,所有的读操作,只读一次,写操作,只要不超过8GB的数据量,则没有一次是真实写入的,那么假如我这六小时中下载的东西只是临时看看,准备关机前就删除,或者很多东西只是建立一些临时文件,则这所有的一切都没有对硬盘进行真实的写操作,到我关机时,我的硬盘基本没有工作,对于SSD意义尤为重大。
joe9i0 2013-08-10
无敌福禄寿,fancycache给你提速,静音,延长硬盘寿命
http://itbbs.pconline.com.cn/diy/14854803.html


MEMDISK已经过时,教你玩FancyCache缓存,让你的系统跑在尖峰
http://acer.it168.com/thread-1957039-1-1.html
joe9i0 2013-08-10

请冰大评测/点评...
spiritfrog 2013-08-10
用了ramdisk,也就是存放浏览器临时文件和QQ的照片,高级的应用没试过。
卡夫卡 2013-08-10
请冰大评测/点评...
icewubin 2013-08-10
垃圾一个,别去用,会丢数据的。
寂寞秋江 2013-08-12
2011年刚配电脑的时候,在win7 x64 系统上试过这个软件,才用了一会会,系统就没响应、死机了,重启后立马把它卸载掉。
Yanghisun 2013-09-10
开发人员用这个,大概会哭死。
辛辛苦苦改了5个小时的代码,以为存盘了。
下次开机一看,毛都没有,傻眼了。
dieslrae 2013-09-10
一个ssd才多少钱,要这玩意做什么
Global site tag (gtag.js) - Google Analytics