RAM 到底有什么用处?

RAM 到底有什么用处?

我知道这听起来像一个简单的问题,但我到处搜索过,他们只是说“存储数据以便更快地使用”。我知道 RAM 用来加载程序,但是是整个程序加载进去还是只加载一部分?

答案1

在描述整个 CPU/RAM/硬盘系统如何交互时,我使用了一个类比,我将进行整个类比,它涵盖的不仅仅是 RAM,但我认为它会有所帮助。


想象一下,您的计算机就像一个厨房,运行程序就像做一顿饭。

如果您有两位厨师(多核处理器),您可以更快地制作一些饭菜,一个人可以切胡萝卜,而另一个人可以削土豆皮。但是,食谱中的某些部分只有一位厨师可以做,例如在立式搅拌机中搅拌所有东西。无论您有 1 位厨师还是 4 位厨师,搅拌食材所需的时间都相同。这就是为什么您无法对所有步骤进行多线程处理,有些步骤需要时间,并且无法跨处理器进行拆分。

现在开始讨论记忆
最快的内存是 CPU 寄存器,它们就像你的切菜板。它非常小,只能保存你当前正在处理的内容。

如果某样东西不在你面前,你会去哪里?你会去食品储藏室拿,这是 CPU 缓存。你没有离开厨房,但你确实必须停下手头正在做的事情几秒钟,花点时间走到食品储藏室拿你想要的东西。

但是,如果您需要的东西不在食品储藏室里,该怎么办?好吧,您去街角的商店,这是您的 RAM。现在,离开厨房(CPU)开车去街角商店(RAM)需要几分钟,比步行到厨房里的食品储藏室慢 100 倍,但您的食品储藏室大小有限,您无法将所有东西都存放在里面。(双通道内存就像开着两辆车去商店,您可以带两倍的东西回家,因此您不需要跑那么多趟)

但是街角商店只是街角的小商店。如果你需要的东西街角商店没有存货,你会怎么做?那么你可以开车进城,去大型超市,这是你的硬盘。现在超市很大,你几乎可以在那里买到任何东西,但也有缺点。与街角商店相比,超市离街角商店有几英里远,开车去那里需要一个小时,那里的员工不在乎,结账的速度也很慢,这比去街角商店(RAM)要花 100 倍的时间,比步行到食品储藏室(CPU 缓存)要花 100,000 倍的时间。而这段时间里,你的食谱(程序)就在那里等着你获取必要的配料以继续。

但是对于那些超级超市都没有的超级特别订购的东西怎么办呢?那么你可以去邮购,然后等待1-3天为了让它显示出来,这是从互联网上获取的一些东西。与等待几秒钟去食品储藏室相比,这是一个永恒的时间。

答案2

RAM 用于存储计算机“当前正在使用”的所有内容。例如,Windows(或 Mac OS 或 Linux)的部分,为您提供桌面、文件查看等。您现在使用的浏览器已加载到内存中。理想情况下,当您退出程序时,它会完全从内存中删除,但有时不会发生这种情况并导致内存泄漏。

回答你的具体问题,小程序通常会完全加载到内存中,但在某些情况下,尤其是大型程序,只有主要部分和一些重要的子部分总是被加载,如果你调用程序中很少使用的部分,它可能必须将其单独读入内存。

此外,有时程序会被操作系统 (Windows、Mac OS、Linux 等)“预加载”。这意味着程序位于 RAM 中,等待着,因此当您打开它时,它就在那里,不必读入内存。如果操作系统认为您很快就会想要打开该程序,它就会这样做。

更令人困惑的是,如果您需要的内存比实际拥有的内存更多,操作系统将占用部分硬盘,使其充当 RAM。这称为“交换”或“分页”,用于此目的的驱动器部分称为“交换空间”或“交换文件”或“分页文件”。

(最后两段感谢 Darael 的建议)

如果这不准确,请纠正我,我会修改这个答案。

答案3

计算机的 RAM 用于存储操作系统和程序运行时所需的数据。CPU 直接与 RAM 交互,因此它可以直接用作正在运行的程序的工作内存或“临时空间”。未分配给正在运行的程序的内存通常由操作系统用作缓存,存储经常或最近访问的数据以实现对这些数据的高速访问,因为 RAM 的速度甚至比 SSD 还要快,更不用说硬盘了。(请注意,您的 CPU 有自己的内部缓存和寄存器,它们非常小,但比系统 RAM 还要快,但这超出了本讨论的范围。)

如果计算机上安装的 RAM 数量不足以支持系统上运行的所有软件,操作系统会将当前未使用的数据从 RAM 交换到硬盘上,将当前需要的数据保留在 RAM 中。当需要从 RAM 交换出的数据时,操作系统会将其从硬盘移回 RAM。此过程称为分页,速度可能非常慢,因为 RAM 的随机数据访问速度比硬盘快几个数量级,因此如果物理内存不足,系统速度将比正常情况慢得多,并且磁盘活动很多。

这就是为什么在计算机中添加 RAM 可以提高性能的原因,特别是当您的系统内存为 2 GB 或更少时。非常大的 RAM(> 8 GB)通常只能带来有限的益处,除非您同时运行多个大型程序或虚拟机,或者磁盘负载繁重,此时可以使用额外的内存来加快一次访问大量数据的速度。

要了解更多信息,请参阅维基百科文章“记忆层次”

相关内容