内存=书桌(伸手就拿得到),磁盘=书柜(找一本要起身),CPU=你;加载=把书从书柜搬到桌上。
这是本课的第二个专栏(第一个在第二章讲 CPU 与二进制)。它要回答的问题是:内存和磁盘的区别,怎么讲给一个爱打游戏的初中生听。
一、先从她每天都在做的事说起
讲内存和磁盘,最省力的入口不是电脑,是自己那张书桌。 书桌:摊着正在写的作业、正翻的书,伸手就拿得到。 书柜:所有书都在里面,但找一本要站起来走过去。 一旦她点头说【我懂了】,后面所有话都能挂在这张桌子上。
二、一张对照表
你本人 → CPU:做题的那双手,算得飞快,但一次只能拿一样东西。 书桌 → 内存:临时放正在用的东西,快但小,而且一放学就清空(断电就丢)。 书柜 → 磁盘:所有东西都长期存着,大但慢,找东西要起身。 把书从书柜搬到桌上 → 加载:程序每次运行都得先搬一趟。 桌上摆不下先摊地上 → 虚拟内存:地方不够时先借点地板,但拿地上的东西更慢。
三、用一个她熟悉的游戏算笔账
挑一个大游戏,比如 60 GB 的。 60 GB 全在书柜里躺着——游戏本体就住这儿。 真正搬到桌上的只有那 8 GB 左右——当前这一关要用的那些。 搬 8 GB:从固态硬盘大约 4 秒,从机械硬盘要 55 秒。 这一算,【换成 SSD 加载快很多】就不再是玄学了。
四、顺便把【卡顿】讲清楚
卡顿常常被误会成【电脑算不过来】。 真实的场景往往是:正算到一半,发现还要用一本没搬上桌的书。 那就只能停下来、起身、去书柜找一趟——这一趟就是几毫秒。 一秒里来上几百次,画面就一卡一卡的。 所以【换更大的内存】有时比【换更快的 CPU】更能治卡顿——因为卡的不是算,是等。
五、讲给孩子的三个要点
讲完上面那些,只留三句话给她就够了: 一、桌子越乱,找东西越慢。 —— 这就是为什么要省内存。 二、常用的书放在手边。 —— 这就是缓存的意义。 三、断电时桌上会清空,书柜还在。 —— 这就是为什么【忘了保存】会出事。 最后一条她多半最有共鸣,也可以顺手把【记得保存】讲完了。
六、动手 Demo:用游戏打比方——内存与磁盘
把电脑想成你的书桌和书柜:桌上是内存、柜里是磁盘。 加载就是把书从书柜搬到桌上。
game_gb = 60 # 游戏本体,躺在【书柜】里
need_gb = 8 # 当前要用的,搬到【桌上】
print("磁盘里躺着 %d GB" % game_gb)
print("内存里只有 %d GB" % need_gb)
for name, mbps in (("固态硬盘", 2000), ("机械硬盘", 150)):
print("%s 搬 %d GB 要 %.1f 秒" % (name, need_gb, need_gb * 1024 / mbps))
实跑输出:
--------------------------------------------------------------------
用游戏打比方——内存与磁盘
--------------------------------------------------------------------
把电脑想成你的**书桌和书柜**:
角色的说法 电脑里的说法 比喻成什么
-------------------------------------------------------------
CPU 算得飞快的那颗芯片 你本人——做题的手
内存 临时放正在用的数据 书桌——伸手就拿得到
磁盘 永久存放所有东西 书柜——找一本要起身
加载 把程序从磁盘搬进内存 把书从书柜搬到桌上
虚拟内存 内存不够时借磁盘 桌上摆不下,先摊地上
拿一个 60 GB 的游戏算算:
躺在书柜里的 60 GB
真正搬到桌上的 约 8 GB
从固态硬盘搬 8 GB 约 4.1 秒
从机械硬盘搬 8 GB 约 54.6 秒
所以【换成 SSD 加载快很多】不是玄学:
**游戏本体 60 GB 都躺在书柜里,真正搬到桌面上的只有那 8 GB。**
而【卡顿】往往是另一回事:
**搬到一半发现还要别的书,又得起身去书柜找一趟——**
这一趟就是几毫秒,一秒里来上几百次,画面就一卡一卡的。
60 GB 本体都躺在书柜里,真正搬到桌上的只有那 8 GB。 搬同样 8 GB:SSD 约 4.1 秒,HDD 约 54.6 秒——这就是换 SSD 变快的来由。
30 秒实验
- 想一想:手机上的微信为什么用久了会变卡、清理缓存又能好一阵子。
- 把【记得保存】和【断电清空】连起来,讲给身边的人听一遍试试。
常见误区
- 把内存说成【电脑的记忆】。内存是临时用的桌子,磁盘才是长期存的书柜。
- 用【容量大小】来解释快慢。快慢的真正原因是【要不要找】和【有没有机械动作】。
自测三问(点开对答案)
1. 把内存和磁盘比作什么最贴切? —— 内存=书桌(快、小、断电清空),磁盘=书柜(慢、大、长期保存)。 2. 加载这个比喻对应什么? —— 把书从书柜搬到桌上——运行程序前必须先把内容搬进内存。 3. 游戏卡顿最常见的比喻是什么? —— 算到一半发现还要用一本没搬上桌的书,只能停下来去书柜找一趟。- ☐ 下一章(第七章 程序在怎样的环境下运行)
相关笔记
- 文件是以字节为单位记录的 — 书柜里那些字节
- 程序加载到内存后才能运行 — 搬书这一趟到底在做什么
- 节约内存的编程技巧 — 桌子越乱找东西越慢
- 🔵 计算机基础 · 索引 — 硬件底层的入门课
- ⚙️ 程序是怎样跑起来的 · 索引