要想解答这个问题,我们需要知道cpu、内存与程序这几者的关联,实际上非常简单:

首先,可执行程序存储在磁盘中(当然也可以是其它介质),可执行程序中实际上主要包含两部分内容:机器指令以及指令依赖的数据;

程序运行时首先被加载(load)到内存中,被加载到内存中的程序摇身一变就成为了我们说的进程,当然,内存中还运行着另一种特殊的程序:操作系统。

只有当CPU真正执行机器指令时相应的进程才开始运行,此时CPU不断的从内存中取出指令并执行指令,当然除了机器指令外还需要读取内存中的数据。

可以看到,当程序运行时与CPU交互的是内存而不是磁盘,内存中存储指令和数据、而CPU使用指令和数据,因此从这个角度看这是一个类似生产者与消费者问题,内存就好比大厨、CPU好比食客,如果大厨上菜太慢那么食客就要挨饿。

除此之外,操作系统对内存的使用也不可忽略。

操作系统是如何利用内存的?

为充分利用内存与磁盘资源,现代操作系统中有很多非常聪明的设计。

由于CPU一次只能运行一个程序,即使在多核系统中一般来说同时存在的进程数远远多于核数,也就是说在某一个时刻并不是所有的程序都在运行,即使对正在运行的进程来说由于局部性原理的存在,进程地址空间中总会有一部分指令或者数据是暂时用不到的。

基于这些,操作系统先驱们看到了可以充分利用内存的机会,我们可以将暂时用不到的指令或者数据放到磁盘上去(swap out),当使用这些数据或者指令时再从磁盘加载到内存中(swap in),这样内存中不就有更多空间运行更多进程了吗,这种思想在操作系统中被称之为demand paging,属于虚拟内存的一部分。

其次,操作系统会将剩余的空闲内存当做磁盘缓存,有时当系统负载较低时我们的程序并不能充分利用内存,那么这些空闲的内存就真的毫无用处了吗?显然不是的,我们知道磁盘是一种低速的存储设备,既然这样为什么不把空闲的物理内存当做磁盘的缓存呢?

大家可能都有这样的体验,开始打开一个全新的文件时通常会比较慢,但当你再次使用该文件时将明显感觉到速度会快很多,背后的原理就在于此,如果此时你的内存不足,那么操作系统就没有那么多的空闲内存来当做磁盘缓存,此时你将真正体验到磁盘蜗牛般的速度。

现在,我们就可以回答开始提出的问题了,增加内存会加快计算机运行速度吗?显然这样分为两种情况来讨论。

内存充足

如果你的内存本身就很充足,那么在这种情况下增加更多内存将不会让你的计算机跑的更快,因为CPU作为食客吃饭的速度是有限的,大厨做的菜再多也没有,你也没办法让食客吃的再快一些。

这就好比你问给一辆卡车装更多轮子会让开车跑得更快吗?

答案显然不是的,尽管这并不能让卡车跑得更快,但增加更多轮子会让货车有更高的载重。

对内存来说也是这样,尽管增加更多内存并不能让计算机跑得更快,但这显然会让我们可以同时运行更多程序。

增加更多内存意味着你可以同时开启更多浏览器网页、可以同时开启更多虚拟机、同时渲染更多高清视频、同时处理更多复杂的3D模型、同时训练更多机器学习模型等等,此时你的内存不是瓶颈,CPU将很可能成为瓶颈,因为CPU的运行速度也就是每秒内执行的机器指令数量是有限的。

内存不足

此时大厨上菜速度太慢,食客总是挨饿,因此大厨需要上更多的菜。

我们知道,大部分程序在运行过程中会频繁的申请内存,申请内存是一项看似简单实际上非常复杂的操作、尤其是在系统内存不足的场景下,此时申请内存往往涉及到更多复杂的查找或者异常处理,这时我们的程序运行速度将会明显变慢。

内存不足时磁盘与内存之间可能会有更多的交换,此时系统的速度将受限于磁盘,并且由于不能缓存磁盘文件, 那么我们开启进程或者打开文件的速度将明显变慢。

在这种情况下增加内存将更好地喂饱CPU,因此将明显加快计算机的运行速度。

总结

从上述分析我们知道,关于增加内存是否可以加快计算机速度取决于你的场景,如果你的设备内存充足,那么此时增加内存不会明显加快计算机运行速度。

增加内存会让计算机变快吗?相关推荐

  1. 【Elasticsearch】Elasticsearch 中增加分片数量,聚合一定会变快吗?

    1.概述 转载:Elasticsearch 中增加分片数量,聚合一定会变快吗? 在一次聚合测过程中,我们希望通过增加分片数量的方式,让聚合计算过程更快完成.因此准备了一个索引,该索引有2.6亿 条 d ...

  2. 计算机如何配置速度快,怎么设置速度,教您怎么可以让电脑速度变快

    在使用电脑的过程中,我们难免会需要使用电脑下载资源的情况,但是有用户发现在电脑在下载网上的时候,明明网络良好的情况下,却发现下载的速度依然很慢,那么这到底是怎么回事呢?该怎么去解决呢?下面,小编给大家 ...

  3. 怎么样很快的速度锁定计算机,怎样让电脑速度变快

    电脑的运行速度不仅跟电脑硬件配置高低有关,跟电脑系统也有一定的关联.那么怎样让电脑速度变快呢?下面分享的几条提升电脑速度的方法,有兴趣的朋友可以尝试下: 怎样让电脑速度变快? 1.加大运行内存: 如果 ...

  4. 电脑增加内存修改注册表,让你的电脑快到停不下来

    电脑增加内存后注册表的相关设置方法 1.使用"WIN+R"打开运行对话框,输入"regedit"打开注册表编辑器. 2.在注册表中依次打开HKEY_LOCAL_ ...

  5. 高性能计算机储存部件硬盘,为啥电脑换了固态硬盘会变快 它比机械盘强在哪?...

    相信很多玩家都遇到过这样的情况,电脑用一段时间之后感觉变得很慢,想升级电脑却又不知道更换哪个硬件.其实这种现象很常见,这是电脑的响应速度变慢造成的原因.响应速度指的就是我们点击某款应用程序从开始到结束 ...

  6. 计算机如何配置速度快,几种简单设置让电脑运行速度和网速变快!-怎么让电脑速度变快...

    无论多么新的电脑,只要使用时间长了速度和网速就有可能会变慢,下面我为大家说几种让电脑的运行速度和网速变快的方法,简单易学! 让电脑运行速度和网速变快的方法 一.禁止Aero主题Win7系统中提供的Ae ...

  7. 替代计算机内存条,除了增加内存和替换旧笔记本电脑的固态硬盘外,还有哪些其他升级方法?...

    今天早上,作者在Big Fish帐户的后台收到一位网民的私人消息,问我们: "除了增加内存和替换旧笔记本电脑的固态硬盘外,还有哪些其他升级方法? "我相信这个问题很麻烦. 仍然有很 ...

  8. 计算机内存加速,最简单有效的提速——增加内存

    最简单有效的提速--增加内存 笔记本三大件中,升级门槛最低,更换最简单的就是升级内存了.而且,加大内存往往会明显提升电脑的开关机速度.窗口最大.最小化速度,以及程序的运行速度.而且升级内存的成本也最低 ...

  9. 怎么让电脑运行速度变快_加快电脑运行速度的6个秘笈,系统安装,电脑维修必备技巧...

    你的电脑运行缓慢吗?这并不一定意味着你需要把它扔进垃圾桶.有时候你的电脑需要的只是一次很好的清洁.一个维护良好的系统真的可以加速你的电脑. 本文将教你如何清洁你的电脑,使它更接近全新时的运行状态. 第 ...

最新文章

  1. laravel5.5首次使用php artisan migrate注意问题:
  2. hashcode重复可能性探究
  3. python全栈开发 * 表格标签 表单标签 css 引入方式 * 180807
  4. 【3y】从零单排学Redis【青铜】
  5. Java5泛型的用法,T.class的获取和为擦拭法站台
  6. python报错:xml.parsers.expat.ExpatError: not well-formed (invalid token): line 3, column 1的解决办法
  7. matlab仿真对电脑要求,计算机仿真技术matlab基本语法.ppt
  8. [51单片机] 四相五线减速比为1/64步进电机驱动设计
  9. Windows下DOS操作系统(cmd)详解
  10. 高端存储架构的前世今生
  11. 梯形图c语言转换软件,梯形图转化为HEX软件
  12. 3.tensorflow单层神经网络mnist数字识别:训练,加载模型,预测图像
  13. AutoStitch: a new dimension in automatic image stitching
  14. java程序 部署服务器_Java代码如何布署到云服务器
  15. cesium模型不遮挡点线面_cesium 学习(八) 基础绘制(点线面)
  16. 新手玩转Linux Kernel漏洞之Null Pointer Dereference
  17. 论企业集成平台的架构设计
  18. 基于Python仓库管理系统的设计与实现django框架
  19. 达梦数据库--Winodws下DM8客户端安装与功能详解
  20. 世界上面积超过10000平方公里的淡水湖排名

热门文章

  1. 支撑起腾讯公司计费业务的TDSQL
  2. C语言入门系列 -运算符
  3. 基于WiFi的CSI数据做呼吸频率检测-python版(含代码和数据)
  4. 这是一篇假的回顾过去展望未来计划书
  5. 认识物联网系列——物联网架构
  6. LPC1768 关于延时Delay时间与不同等级的优化对比
  7. 子网划分以及网络号的计算
  8. 阿里双十一,3分01秒破百亿;乐视网称贾跃亭无力履行承诺;法乐第未来宣布解职CFO和CTO丨价值早报
  9. 计算机学院表演,计算机学院在校三八服装展演活动中荣获最佳表演奖
  10. MongoDB学习(二)MongoDB 认证详解