为什么内存优化加速软件百害而无一利

本文由 极客范 - 八卦爱好者 翻译自 Chris Hoffman。欢迎加入极客翻译小组,同我们一道翻译与分享。转载请参见文章末尾处的要求。

image1
许多公司都想把“内存优化器”(比如某卫士的点一点释放内存功能)作为他们的PC优化软件的一部卖点推销你。但是,这些软件往往非徒无益——它们不但不会加速你的电脑,反而会使你的电脑速度降低。

这些程序往往利用了初级用户的无知,向他们做出提升性能的虚假承诺。事实上,你的电脑完全知道怎么去管理它的内存(RAM)。它会使用内存来提升机器的性能——没有理由让内存白白闲着着!

你的电脑的内存跑满了?那就对了!

内存优化软件往往利用了群众的无知。你或许会查看一下你的电脑的内存,然后发现它跑满了——例如,你又4GB的内存,然后发现有3GB都在使用中,只有1GB的剩余空间。这一定会让某些人感到惊诧——擦!你看现在的Windows多么臃肿啊!这么可怜的可用内存,还怎么指望运行其他的程序呢?

事实上,现代操作系统很擅长与管理内存。那3GB的使用中的内存并不一定意味着浪费。相反,你的电脑用内存来缓存数据从而加速访问。无论是你在浏览器中打开的网页、你之前运行的程序或者是任何你可能再次访问的数据,你的电脑都会把它保留在你的内存里。当你再次需要这些数据的时候,你的电脑便不需要访问你的硬盘了,仅需从内存里加载文件就可以了。

问题的关键在于没有任何理由让内存处于空闲的状态。即使是你的内存全部用完了你需要更多的内存来运行一个程序,你的电脑也能够立即丢弃这些缓存数据,从而为运行该程序腾出空间。没有任何理由让内存处于闲置中——如果它是空的,那么就是在暴殄天物。如果它跑满了,那么它很可能会帮助你加速程序启动时间以及其他任何需要访问硬盘的东西。

我们可以看到,下面的截图中显示只有极少量的内存真正“空闲”。相当部分的内存用做了缓存,但是对于任何程序来说这些内存仍然是可用内存。

image2-CN

过去,内存耗尽一般表示某处出了问题。如果你在一台电脑上运行Windows Vista操作系统,并且只有不到半GB(512MB)的内存的话,你会感觉到你的电脑时常的卡顿——它不得不时不时地访问一下硬盘,使用硬盘上的页面文件作为内存蹩脚的替代品。不过,对于大多数用户来说,现代的计算机通常都会有足够的内存。甚至一些低端的电脑发售的时候都会配有4GB的内存。除非你经常玩游戏,运行多个虚拟机或者编辑视频,不然这一配置通常来说就足足够用了。

即使内存的问题已经困扰到了你,也没有任何理由去用内存优化软件。内存优化软件就像万灵油一样百害而无一利。

内存优化软件如何工作

当你使用内存优化软件的时候,你将会看到你的内存用量下降。这看上去真的是很有效的事情——毕竟你轻点按钮就把内存用量降下来了。但是,事情并不是这么简单。

内存优化软件事实上以下面的两种方式之一工作:

  •  调用Windows API EmptyWorkingSet 来强制正在运行的程序将工作内存写入Windows的页面文件。
  • 申请大量的内存来强制Windows丢弃缓存数据,并且将程序数据写入页面文件。然后再释放申请的内存,从而降低内存用量。

这两种伎俩确实都能够释放内存,使内存空闲。然而所有的努力不过实在让事情变得更糟罢了——现在你要运行的程序便不得不从页面文件中读取所需数据,从而话费更长的时间。任何用于缓存的内存都可以被丢弃,于是Windows便不得不从硬盘中取得它所需的数据。

换句话来说,这些程序释放了快速存储,却把数据转移到了慢速存储,而后这些数据不得不再次移动到快速存储中。这简直太无厘头了!他们干的事儿不过是卖给了你一个需要用光照才能亮的手电筒!

t015f7b1d041234e5a1

如果Windows需要内存的话,它会把数据载入页面文件或者丢弃一些缓存数据。所有的这些都是在需要的时候自动完成的 ——没有理由在不必要的时候做这些事情,还让你的机器变慢。

诸如PC清理软件,内存优化软件等等,都是骗局而已。它们只不过让不懂内存管理的人们以为它们干了些有益的事情,但实际上做的都是些有害的事情。

如何真正“优化”你的内存

如果你想得到更多的可用内存的话,把内存优化软件扔到垃圾箱里吧,相反你应该试试不去运行你不需要的应用——将其从系统托盘中退出,禁止无用的启动程序等等。

如果你的工作需要更多的内存,同学你该买内存啦!内存其实相当便宜(译者按:JS作祟现在国内的内存价格不便宜!),而且安装也异常简单——从网上随便找一个教程就可以了。你需要注意的只是保证你买的内存的类型适合你的电脑。

image4


不错,内存优化软件能够释放你的PC的内存。但是,那实在是一件扯淡的事情——你的计算机需要使用内存来加速运行。没有理由让内存闲着下蛋!



原文链接: Chris Hoffman 翻译: 极客范 - 八卦爱好者

译文链接: http://www.geekfan.net/7474/

[ 转载请保留原文出处、译者和译文链接。]

伪文艺八卦爱好者。新浪微博:@山形海

11 评论

  1. 尘岳  /  2014 年 3 月 14 日, 上午 8:50 回复

    话说从去年开始,国内内存条就在涨价,搞得我一直想换内存条,到现在都没换

    Thumb up 3 Thumb down 0

  2. 路过  /  2014 年 3 月 14 日, 上午 11:38 回复

    Hidden due to low comment rating. Click here to see.

    Poorly-rated. Like or Dislike: Thumb up 26 Thumb down 31

  3. Flyfish  /  2014 年 3 月 14 日, 下午 2:28 回复

    文中的一张图亮了、、、

    Thumb up 4 Thumb down 2

  4. Flyfish  /  2014 年 3 月 14 日, 下午 2:30 回复

    含沙射影

    Thumb up 7 Thumb down 0

  5. xl  /  2014 年 3 月 14 日, 下午 2:34 回复

    我也经常看到类似的观点。内存占用率高的原因还可能是因为一些不用的进程占用的,进程不用才是对资源的浪费。同样如文章里的360安全卫士,我所见到的是它结束了一些不必要的辅助进程从而降低了内存的占用。而不是通过你说的那种方法。安卓手机也是这样,这就是为什么我们要精简系统删除多余软件的原因,因为很多不用的软件自启动造成内存占用高,虽然你手机有2G内存够用,可以不管。但是不要忘记了,待机时间是和进程数量以及激活时间有关。内存占用高所反映的冗余进程过多的问题才是真正要解决的。

    Thumb up 15 Thumb down 4

    • mlgb  /  2014 年 4 月 9 日, 上午 8:58 回复

      我记得手机ram跟电脑内存好像不是一码事

      Thumb up 0 Thumb down 1

  6. icy  /  2014 年 3 月 15 日, 上午 1:40 回复

    Hidden due to low comment rating. Click here to see.

    Poorly-rated. Like or Dislike: Thumb up 3 Thumb down 9

  7. 老丁  /  2014 年 3 月 16 日, 下午 12:36 回复

    一般情况都是只懂一点点技术,不懂如何利用技术的人会有这样的观点。
    把一个软件的功能用一个windows api 来解释过于狭隘。
    360的加速球我还是了解些的,游戏下场景清理不必要软件,给游戏腾内存,这个场景抓的很准确。
    还有很多类似场景,都是精确抓场景的,实际使用的确很好用,每次电脑卡时我都会去用

    Hot debate. What do you think? Thumb up 8 Thumb down 9

  8. lrxuboring  /  2014 年 3 月 16 日, 下午 1:29 回复

    我只想用360默默把跳出来的快播进程关掉。。

    Thumb up 9 Thumb down 0

  9. babykiss4ever  /  2014 年 4 月 8 日, 下午 10:53 回复

    例如,你又4GB的内存,然后发现有3GB都在使用中,只有1GB的剩余空间。
    错别字。。。你有4GB的内存吧

    Thumb up 2 Thumb down 4

  10. MidoriYakumo  /  2014 年 4 月 29 日, 下午 11:02 回复

    缓存有一部分是磁盘缓存, 对一般用户来说这部分先同步到磁盘之后内存就真的腾出来了, 这时候开大型软件什么的就能迅速申到充足的内存, 要不然一点一点的同步那当然就会卡, 对于有些人来说确实是有这个需求的

    Thumb up 0 Thumb down 0

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">