给折腾ramdisk的朋友们一点建议

Ramdisk是什么,恐怕不需要我多说大家都知道。至于ramdisk有什么优点,百度一下你能看到因为ramsik有着很快的读写速度所以“放临时文件能加快速度”,“装软件可以秒开”等等各种优化的方法,比较犀利的言论还认为使用ramdisk可以延长续航时间,保护硬盘等等“高阶应用”

在此我觉得第一个想出延长续航时间,用于bt下载来保护硬盘的人实在是碉堡了,连这么神奇的功能都能开发出来。我对您的敬佩犹如滔滔江水,连绵不绝……

我也曾是一个热衷于折腾ramdisk的人,而且这一折腾,就是好几年(我会告诉你我从ramdisk7就开始折腾了么~)也有了不少经验,所以现在写出来和大家分享一下~

首先,也是终极建议,如果采纳,那么你就可以离开这个页面了。那就是,如果你不是富二代而且闲得慌想烧钱玩又或者是想要体验秒开的快感来自high的人,那么我建议您,不管你装的是什么ramdisk,卸了吧!

什么?你说你是32位系统,用不了高位内存?那你为什么不升级64位呢……

然后我来说一说我的理由吧。
其实ramdisk无非就是两种主流用法
一种是放临时文件,这类方法的使用思路就是避免上网、日常使用的软件临时文件读写,将其置于ramdisk,以减少物理磁盘IO,同时加速文件写入的作用
另一种就是秒开,也就是把软件,还有软件常用目录放到ramdisk之中。目的是大幅提升软件打开的速度。
虽然两者都可以见到立竿见影的效果,但是秒开除了提高打开速度,却做不到提高实际使用的性能的。不过如果你喜欢这种沉浸于秒开的快感也未尝不可,但这就和所谓的“开机速度”一样,没什么太大的意义,而且superfetch本身就能在内存充足的时候大幅提升常用软件的启动速度,内存盘的设定反而显得多此一举。而放临时文件,这是个见仁见智的问题,我觉得放临时文件并不值得,一来效果并没有秒开来的显而易见,二来放临时的盘太小容易出问题,太大则会使可用内存减小,反而会使实际性能下降,三来实际使用的时候临时文件往往没那么多,大部分时候内存盘还是空闲的,这部分空闲还不如给系统superfetch来的划算。再说你觉得系统的回写式缓存机制用来干嘛的?

而且,不过现在内存的价格有多白菜,你觉得是SSD便宜呢?还是内存便宜呢?

至于ramdisk可以通过减少访问硬盘来减少耗电量来延长续航,敢问阁下到底测试过没有这做法到底靠不靠谱,能延长多久?
还有那个什么给bt下载保护硬盘,我就懒得吐槽了,各位自己看着办吧……

如果你坚决不采纳这个建议,非要用ramdisk不可,那么请看下文

在觉得非要用ramdisk不可的话,我就建议你熟练掌握使用mklink来建立文件之间的连接符,那会在使用ramdisk的时候起到巨大的作用。当然,如果你懒得去记那些命令,可以考虑使用“Link Shell Extension”这个软件,他也能做到相同的内容。至于这个命令有什么用,我会慢慢说明清楚(详见3l)。

然后,我来谈一谈我对常见的ramdisk的看法吧。
Primo ramdisk
如果你打算短时间内拿ramdisk试一把玩玩,那么我相当推荐你使用他。原因在于1.默认试用30日,拿来玩正好。2.功能出众,动态内存分配特别合适做临时文件盘使用,多种关机写入方式不但保证秒开应用正常使用,还不会造成过长的关机时间,延时加载更可以避免开机时间因读取ramdisk储存在硬盘中的数据而减慢……剩下的我就不说了,省得被当作广告,反正如果真的只是拿ramsisk尝尝鲜,绝对是最佳选择没有之一。

Superspeed ramdisk plus
说了这个就不说同公司阉割版ramdisk了,反正只是个阉割产物。这家的ramdisk个人认为是最值得信赖的(不是绝对可信,绝对可信的只有你的第二块硬盘!)功能并不出众,但是经典稳定,可以说是稳定性最好的ramdisk,所以如果选择长期使用,那么Superspeed的是最佳选择,一来有完美破解(10.0版)虽然老了点,但其实也没什么问题,而且绝对满足各类强迫症患者的需求。而来该有的功能都有了,没加上的功能几乎都是为了保证稳定而不加上的。(你真的以为动态内存没问题吗,一个最显而易见的情况就是,内存负载大的情况下如果有新的临时文件写入,那么……)

buffalo ramdisk
可以说也是一个功能很出众的ramdisk,但是两大缺点让我觉得他不值得推荐。最显著的缺点是不支持ntfs格式,所以,根据我之前的建议,也就是不支持junction的特性,那么光是这个理由,就足以让我不推荐使用了。另一个比较糟糕的情况就是,只能建立一个磁盘(或许我out了,因为其实已经不折腾这个很久了,如果错了,还请拍砖)……不过他也有优点,就是建立的ramdisk部分的内存会被“硬件保留”让系统可用最大内存减少,避免了系统在内存不足时的意外行为

qsoft ramdisk
另一个功能强大,稳定性也不错的ramdisk,但是你界面就做的友好一点会死啊?!要完全看明白那些设置还得专门去读那些长长的说明文档,伤不起啊伤不起!除此之外倒也没什么特别的缺点。如果你对自己的理解力,耐心,技术有足够的信心,那么不妨使用这个版本的ramdisk

Gavotte ramdisk
缺点和buffalo类似,默认不支持ntfs(没记错的话好像可以用特殊方法强行建立),至于优点……他有什么优点?

其他的ramdisk还有很多,我就不一一说过来了,反正都差不多,没什么特别的特色。
至于性能,除了某几个设计特别失败的不知名的作品,其实意义都不大,莫非你觉得内存盘这种连续读写500m起版,4k随机200m以上的读写速度有那么点变化(哪怕快上一倍)你能感觉得出?

然后,我开始讲一下为什么要去了解mklink命令了。这个命令能干什么我就懒得从网上复制了,可自行百度相关内容了解,使用ntfs文件系统的junction特性可以很好的避免修改环境变量导致的潜在不稳定因素(一个典型的例子是在修改user temp变量后,office系列软件可能在特殊情况下出现环境变量错误,虽然可以通过注册表修改来修复,但是比较麻烦),也可以避免装秒开软件时因为掉电等特殊原因造成内存盘信息丢失而无法使用软件(如果放秒开软件,一般都是最常用的软件,如果发生这种情况,那么后果……)。另外,一个软件无论使用频率多高,总有一部分内容并不常用或并不需要ramdisk来加速,此时可以使用该特性将这部分文件转移到物理磁盘上用来减少内存盘占用,把好钢用在刀刃上。

无论你是准备用来放临时文件,还是准备安装软件,把目录直接指向ramdisk绝对是最差的选择了,没有之一,因为ramdisk的易失性决定了一旦发生意外,那么所有的数据一定是不可逆的丢失,这和硬盘的数据丢失不同,不管是软件,还是专业公司,哪怕是上帝都恢复不了。所以这种方式虽然可能在一般使用时用的很好很流畅,但是存在的一次性的灾难性的风险。当然你可以通过备份手段来减少数据丢失的风险(仅仅是丢失确实可以用数据恢复来修复)但是纵然如此,一旦发生故障,那么快速回复工作状态肯定是不可能的了。而且,万一是内存盘的软件本身出现故障(指不定你的杀毒软件那天就抽了呢)。那么仅仅靠备份数据是远远不够的。

但是如果使用junction特性,通过备份和建立两层连接,那么就可以在已有备份的情况下,迅速恢复工作状态(最简单的方法就是删除原有连接符,建立一个新的连接符指向备份目录重启即可)另一方面,使用目录连接符安装在ramdisk上的软件,一般情况下任何时候都可以完美移动到物理磁盘上而不会出现目录变更的故障(少数直接使用目标地址的软件除外)。建立链接符的方式不多说,建立为这样一种方式的映射

即整个ramdisk映射为处在物理磁盘上的一个过渡目录,如将ramdisk(Z:)映射为"C:\Ramdisk"的一个文件夹,此时处在“Z:\”的目录由于连接符的关系映射为了"C:\Ramdisk"中的目录(如“Z:\Firefox”映射为"C:\Ramdisk\Firefox"此时访问"C:\Ramdisk\Firefox"即访问“Z:\Firefox”)然后再将过渡目录中的文件夹映射为“C:\Program Files\Firefox”此时运行firefox会读取处于“C:\Program Files\Firefox”,再由目录连接符的关系跳转为"C:\Ramdisk\Firefox",最后回到“Z:\Firefox”

尤其推荐不修改环境变量而是通过映射的方式来更改临时文件目录,这样可以避免因临时环境变量多次变化(或是特殊情况)导致临时环境变量出错。

这样,在正常使用的情况下,访问program files中的处于ramdisk的文件可以通过两个连接符跳转到内存盘上,而当ramdisk发生故障时通过改变过渡目录的指向(完全生效需重启)
即当ramdisk发生故障,无法访问其中数据,此时有处在C盘的ramdisk的备份目录(如“C:\Ramdisk Backup”),删除"C:\Ramdisk"的目录连接符,建立一个新的"C:\Ramdisk"连接符指向“C:\Ramdisk Backup”,此时此时运行firefox会读取处于“C:\Program Files\Firefox”,再由目录连接符跳转为"C:\Ramdisk\Firefox",最后回到“C:\Ramdisk Backup”而不是“Z:\Firefox”避免了ramdisk发生故障导致放在ramdisk内的秒开软件无法启动

(当然你也可以不用过渡目录,但是那样的话需要一个一个子目录改过来,操作比较复杂)
此时虽然备份目录中的文件访问速度远远不如ramdisk,但是可以最快的恢复正常使用的状态,然后你需要做的,就是恢复ramdisk中的文件,再更改过渡目录的指向为ramdisk即可快速恢复为ramdisk出现故前的状态了。

这种映射的方式在我看来,是最能保证系统稳定高效工作的一种方案,可以很好的避免因内存盘故障而出现不必要的系统崩溃。

原文地址:https://www.cnblogs.com/duw76/p/9754625.html

时间: 2024-08-30 03:03:59

给折腾ramdisk的朋友们一点建议的相关文章

Java自学之道(一) ------ 给程序入门者的一点建议

Java自学之道(一) ------ 给程序入门者的一点建议 在书场上看到很多有关Java的书籍,但这就像进了瓜地里挑瓜挑的眼花,很多人不知道自己到底该选那本书好.很快精通Java可能只有很少一部分人能实现,那就是他曾经精通过 哪门语言,因为程序设计语言很好学,只要你精通一门语言,就可以做到一通百通.因为每种语言都有其共同点,就拿C语言来说,由于C语言出现的比较早,用的人也比较多,所以人们都习惯了它的语法规则和设计流程,假如现在出现了一门新的语言,而它和C语言的语法规则是天壤之隔,那么它的结果肯

ArcGIS地图文档MXD效率慢的一点建议(二)

经常有用户询问,我的MXD图层比较多,而且配置好了相关的符号,但是我的服务器更换了一下,而且两个服务器的要素类名称都是一样的,我想配置一下新的数据源,而且我的这个MXD已经连接不到原来的数据源了,打开这个MXD,要花费很长时间,请问有什么可以避免的么? 因为这种情况下,打开MXD的时候,会查询数据源,特别是SDE数据源,如果找不到MXD记录的相关参数信息,系统会默认一直在找相应的IP(也可以理解一直在Ping),而且也会寻找你们局域网里面的所有机器,那么如果数据图层比较多,这个时间肯定会比较长的

一位技术大牛对新手的一点建议

今天给大家带来一个大牛的故事,希望给所有学习系统开发的人一点感悟.张生在一线做了十年的开发,经历了网易.百度.腾讯研究院.MIG 等几个地方,陆续做过 3D 游戏.2D 页游.浏览器.移动端翻译 app 等.积累了一些感悟.必然有依然幼稚的地方,就当抛砖引玉,聊为笑谈.喜欢的朋友也可以留下企鹅,大家进一步交流,话不多说; 一.对于团队而言,流程太重要了 张生个人属于性格温和的(程序员大多性格不错),但确实见过少数强势的人,说很多强势的话.在技术上一言而决,一听到任何反对就上升到私人恩怨.这样的风

对于大陆网络环境下android开发环境搭建的一点建议

首先,我的这篇博文不是教你如何搭建android开发环境.我相信这类的文章已经有很多了,如有需要可以百度一下.我这里将要说的对于大陆网路环境下,如果能够访问到android开发过程中需要的一些资源. 因为方法和资源都是有时效性的,所以参考本文请注意时间. [如何获取android SDK] 其实这个东西国内很多站点可以下载到,可能不是最新的罢了.所以这里谈论的是最新的android SDK的下载. 问题的根本是你不能直接访问http://developer.android.com/站点. 所以你

技术更新如此快的情况下,给程序员的一点建议

昨天老婆说,你永远不知道未来是什么样子,儿子将来的用的技术,与现在的完全是不同的. 这里我还真有点要说的,其实我是真的什么都没教儿子--有点冤. 我只想教他如何吸烟,就我本人来说,因为五岁吸过一根烟,所以才产生了一生的免疫.想抽就抽,不想抽就不抽. 另外,也想教他玩几个电子游戏,因为小时候接触,都会产生一生免疫. 当然,这些直接就被老婆否了.~~,想起有个医生发明了一个论点:吃鼻咖,能加强免疫.他首先想到拿他女儿做实验,你猜怎么着?当然是被他领导否了. ---------------------

能给新手一点建议吗

现在html.css.javascript都学了,不能说精通了,但是还是会用:jquery也了解了一点,知道怎么用,但是从没有用过:我知道下一步我该学习什么,我也下载了很多关于web前端的pdf的书籍但是里面讲的都是一些概念,都能看懂,但是一直看概念没有地方用,感觉好无聊啊:所以需要一些东西能把所学的巩固起来,大家能给一些建议吗?不然我都不敢在往下学习什么更加深的东西了,总觉得自己不行啊:不知道该怎么实战啊.

20年的老程序员对新入行的朋友的一些建议

从事编程这一行也已经20年了,到今天为止,有关编程方面的知识我也写了六七门课程了,教授课程的时间也已超过了1000小时,下面我所说的全部是我多年来的实践的经验之谈. 编程真的不是一件容易的事. 不管你多喜欢或是多会编程,在学习和解决问题上总会碰到障碍.工作的时间越久就越能明白这个道理.不过这倒是一个让人进步的机会,因为你要一直不断的学习才能很好的解决你面前的难题.如果你已不有了进取心,那么当遇到难道无法解决时你就会想要放弃. 编程也是最让人沮丧的事情 正常的编程过程都是这样的:尝试.失败.学习.

对于刚开始学习Java的人一点建议

1)适合自己的图书才是最好的,最好的书并不一定适合你,看自己的情况.(如果你是一个Java初学者一上手就捧一本Thinking in Java在手里,我想你的日子是不会好过的,那样的书给有一定基础的人看的,当工具书使用的,当然有一定基础后,可以跟着上边流程学,如果你能学下来,那么你的基础就不用说了) 2)看书要用心,多动脑,实践很重要,要抱着怀疑的态度看书.(再好的书也可能会出现错误,人非圣人吗!多练这个很重要,如果你光看不练,我想你年过几天会就会忘的差不多了!) 3)遇到问题多查帮助文档,还可

[转]一个it老总对于新人的一点建议

1.一定要有独立的人格.独立的思想.一个经过独立思考而坚持错误观点的人比一个不假思索而接受正确观点的人更值得肯定.不要成为灌输教育的牺牲品. 2.在进行职业生涯规划的时候,不妨以此作为思考的出发点.根据不同的职业生涯规划来塑造各自的核心竞争力.只有知道自己以后要做什么,才能知道自己应该学什么. 3.专业无冷热,学校无高低.没有哪个用人单位会认为你代表了你的学校或者你的专业.千万不要因为你是名牌大学或者热门专业而沾沾自喜,也大可不必因为你的学校不好或者专业冷门而自卑. 4.千招会,不如一招熟.十个