原来机械硬盘比内存慢10万倍

我们都知道机械硬盘的速度很慢,内存的速度很快,那么不同存储器之间的差距到底有多大呢?

我们先来看一幅图:

CPU访问寄存器的时间是0.3纳秒,访问L1高速缓存的时间是1纳秒,访问L2高速缓存的时间是4纳秒...

秒、毫秒、微妙、纳秒的计算公式如下:

1s(秒) = 1000 ms(毫秒) = 1000 000 μs(微秒) = 1000 000 000 ns(纳秒)

我们单单这样看可能没什么感觉,我把上面的参数都摘录下来,为了更直观的比较,我把0.3纳秒放大成1秒,其他数据同比例放大,对比一下:

类型 容量 访问时间 相对时间
寄存器 1k 0.3ns 1秒
L1高速缓存 32K 1ns 3秒
L2高速缓存 256k 4ns 12秒
L3高速缓存 8M 40ns 2分钟
内存 16G 100ns 5分钟
固态硬盘 1T 100μs 3.5天
机械硬盘 1T 10ms 1年
网络(北京到上海) - 30ms 3年

在各种存储器操作的耗时被量化之后,我们就有了很直观的感觉。

下面我们切换到人类的视觉来比较一下:

CPU访问寄存器和高速缓存,基本都是几秒钟,最多两分钟就够了,如果访问内存的话需要5分钟,这都算比较快的速度了。

如果CPU要访问硬盘就很慢了,CUP访问固体硬盘(SSD)需要3.5天时间,如果访问机械硬盘,就需要1年的时间。

最慢的是网络,从北京到上海需要3年,如果距离再远点,那就更慢了...

这和我们的体感就对应上了,平时我们打开一个文件的时候感觉很慢,就是因为在读机械硬盘(固态硬盘就快多了),最慢的是打开网页,半天才刷出来。

你可能会问:既然高速缓存那么快,那我们把所有的存储器都换成高速缓存不就行了吗?

答案是不行,有以下几个原因:

  • 成本: 高速缓存是一种非常昂贵的存储器,其制造成本远高于其他存储器类型,所以将所有存储器都设计成高速缓存会显著增加整个系统的成本。
  • 容量: 高速缓存的容量通常较小,如果把所有的存储器都换成高速缓存,就存不下这么多数据了。
  • 特性: 也是最重要的一点,高速缓存是一种易失性存储器,存储的内容在断电时会丢失,如果要长期保存数据,还是要保存到硬盘中。

存储器的层次关系是这样的:

(图片来源:https://xiaolincoding.com/os/1_hardware/storage.html#cpu-cache)

存储器层次结构是为了在性能、容量和成本之间取得平衡,存储容量越大,速度就越慢,成本也就越低,价格就越便宜。

相关推荐
岚天start2 天前
K8S容器POD内存快照导出分析处理方案
云原生·容器·kubernetes·内存·快照·pod·内存快照
七夜zippoe13 天前
Python性能优化实战(三):给内存“减负“的实用指南
python·内存·优化
闲人编程14 天前
Python第三方库IPFS-API使用详解:构建去中心化应用的完整指南
开发语言·python·去中心化·内存·寻址·存储·ipfs
.YM.Z15 天前
数据在内存中的存储
c语言·内存
danzongd1 个月前
浅谈C++ const
c++·内存·优化·汇编语言·计算机系统·寄存器
ChenXi-9961 个月前
笔记本电脑开机慢系统启动慢怎么办?【图文详解】win7/10/11开机慢
固态硬盘·电脑开机慢·win10/win11启动慢·系统垃圾清理·禁用后台应用·禁用开机启动程序·极智c盘清理
Tipriest_1 个月前
如何判断自己的电脑或主机是否支持DDR5内存?
电脑·内存·ddr4·ddr5·主机检测工具
布朗克1682 个月前
jvm分析篇---1、先认识下dump文件
java·jvm·内存·dump
喧星Aries2 个月前
简单易懂,快表 详解
操作系统·内存·计算机组成原理
moton20172 个月前
【软件系统架构】系列七:系统性能——计算机性能深入解析
网络·系统架构·内存·cpu·计算机性能