原来机械硬盘比内存慢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)

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

相关推荐
奔跑吧邓邓子13 小时前
【C语言实战(75)】C语言内存探秘:泄漏检测与分析实战
linux·c语言·windows·内存·开发实战·泄露检测
天硕国产存储技术站6 天前
DRAM缓存与HMB技术谁更适合工业应用?天硕工业级SSD固态硬盘提供参考
固态硬盘·国产ssd·国产ssd品牌
天硕国产存储技术站7 天前
国产固态硬盘推荐:天硕工业级SSDDRAM缓存与HMB技术详解
缓存·固态硬盘·国产ssd·国产ssd品牌
c#上位机8 天前
如何判断本地磁盘是固态硬盘还是机械硬盘
机械硬盘·固定硬盘
存储国产化前线12 天前
从浪涌防护到系统可控,天硕工业级SSD重构工业存储安全体系
ssd·固态硬盘·1024程序员节·工业级固态硬盘
天硕国产存储技术站15 天前
天硕全国产工业级固态硬盘如何突破边缘计算存储瓶颈?
国产化·固态硬盘·国产ssd
adny-code22 天前
[fastgrind] 一个轻量级C++内存监控及可视化开源库
c++·内存·性能分析·高性能计算
『往事』&白驹过隙;1 个月前
浅谈内存DDR——DDR4性能优化技术
科技·物联网·学习·性能优化·内存·ddr
利白2 个月前
iceoryx高性能进程间通信中间件,在Windows环境的编译教程
中间件·内存·进程通信·ipc·iceoryx
岚天start2 个月前
K8S容器POD内存快照导出分析处理方案
云原生·容器·kubernetes·内存·快照·pod·内存快照