【阅读分享】为什么现在的电脑都这么吃内存?

2018-07-1111:28:12 12 2,960
摘要

那是不是占用这么多内存就非常不好呢?相信没有人愿意回去DOS那刀耕火种的年代,有了这么多内存不用也不会生利息。如果你担心开的应用太多时内存不够用,那就多虑了。在内存紧缺的时候,这些内存会被swap出去,并不会占着不动。这种机制能提高软件和页面加载速度,提升用户体验,何乐而不为?

二十年以前,电脑爱好者都在钻研修改 dos 的配置文件,希望能够节省出更多的低端内存。640K 以下的空间寸土寸金,那是个小而美的时代。WinXP 一开机,也只有数百 MB 的内存被占用;而从 Win7 开始,在同一台电脑上,开机你就会发现已经有数个 G 被占用了:

【阅读分享】为什么现在的电脑都这么吃内存?

发生了什么事?这是不是微软和 Intel 的阴谋呢?不对,好像没有 Intel 什么事,是不是微软和三星的阴谋呢?还是 Win7/Win10 又大又蠢呢?

【阅读分享】为什么现在的电脑都这么吃内存?

作为阴谋论的鉴定反对者,我一向认为一个阴谋,如果牵扯的人数过多或者过于复杂,一定会被泄露或者失败。这种层级的阴谋是不可能的。作为一个反例, 在现代的 Linux 发行版中,例如 Ubuntu 中,你也会发现一样的现象:

那这些内存都被拿去干了什么呢?

软件的摩尔定律

IT 界有个“笑话”,叫做“无论硬件给了你什么新能力,软件都会把它拿走!”,这并不是空穴来风,软件的内存需求和硬件的摩尔定律走势高度相关。

造成这种结果的原因是多方面的,这里也不打算展开讨论,留待将来细谈。这里仅仅强调,如果硬件提供了更大的内存,软件总是倾向于使用它。这在很多情况下并不一定是件坏事,使用好多余的内存,甚至预使用将来会有的内存,曾经帮助 google 成功,也为我们提供了更广阔的平台。

SuperFetch

那么具体到我们这个例子,为什么 Win7 一开始会占用多大数 G 内存呢?它的原因是 SuperFetch,一个从 Vista 就被引入的功能。

微软发现我们的内存越来越多,在开始时并没有被很好的使用,一个新想法被提了出来。SuperFetch 会根据用户使用历史记录,保存一个常用软件清单,在开机后就把根据总内存大小,将合理的一部分内存用来预调入最常用的几个软件。从而大大减小软件打开速度和响应度,提升用户体验。所以你会发现,你的总内存大,预调入的软件也多,内存占用多;内存小,预调入的软件也少,内存占用少。总的来说,维持一个比例。所以内存大,不但可以打开更多的应用,初始状态时打开应用程序也更快。看来钱多就是好啊!

其他原因

不但操作系统,软件 app 也在大内存时代开始倾向于占据更多的内存并提升用户体验。我们那 Chrome 来说,我们开启每个标签页,每个插件和扩展程序,Chrome 就会开一个新的进程。这样有好处,某个进程死了,页面不受影响,别的页面更不受影响,但进程 overhead 消耗的内存也是巨大的。加上 Chrome 会根据总的内存大小,开启网页预加载,导致大量占用内存:

【阅读分享】为什么现在的电脑都这么吃内存?

用户:我就上个网,你就占据真么多,真的好吗?

【阅读分享】为什么现在的电脑都这么吃内存?

Chrome:我先占住了再说

Firefox 也有类似的机制。

结论

那是不是占用这么多内存就非常不好呢?相信没有人愿意回去 DOS 那刀耕火种的年代,有了这么多内存不用也不会生利息。如果你担心开的应用太多时内存不够用,那就多虑了。在内存紧缺的时候,这些内存会被 swap 出去,并不会占着不动。这种机制能提高软件和页面加载速度,提升用户体验,何乐而不为?

历史文章推荐:

  • 本博客公众号
  • 扫一扫关注!
  • weinxin
  • 本博客小程序
  • 微信内浏览本博客
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:12   其中:访客  6   博主  6

    • 云顶天的世界 云顶天的世界 3

      读高中的时候家里第一台电脑是64M内存的,大学时期的电脑是P4 512M内存,同学各种羡慕。现在用的surface pro是16G内存,下月会要换一台dell 7520 移动工作站配的32G内存,以后再升级到64G。汇报完毕~

      • 青山 青山 5

        嗖嗖嗖,电脑管家就显示,内存占用百分之七十多了

        • ZAERA ZAERA 4

          让OS机器学习不好吗?所以有必要升级个固态硬盘,换上16G的内存

            • 明月登楼 明月登楼 Admin

              @ZAERA 呵呵,我已经过了拼电脑配置的年纪了!目前8G内存,我都感觉浪费了!

            • 千眼网 千眼网 1

              反正你有多少内存,我就占用多少。

              • 康乐民博客 康乐民博客 5

                总结一句话:那就是你电脑的内存还是不够大,我一个个人家用电脑,双通道16G的内存你敢信?