当前位置: 首页 > news >正文

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

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

我们先来看一幅图:

在这里插入图片描述
CPU访问寄存器的时间是0.3纳秒,访问L1高速缓存的时间是1纳秒,访问L2高速缓存的时间是4纳秒…

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

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

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

类型容量访问时间相对时间
寄存器1k0.3ns1秒
L1高速缓存32K1ns3秒
L2高速缓存256k4ns12秒
L3高速缓存8M40ns2分钟
内存16G100ns5分钟
固态硬盘1T100μs3.5天
机械硬盘1T10ms1年
网络(北京到上海)-30ms3年

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

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

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

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

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

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

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

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

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

存储器的层次关系是这样的:
在这里插入图片描述
(图片来源:https://xiaolincoding.com/os/1_hardware/storage.html#cpu-cache)

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

http://www.lryc.cn/news/234570.html

相关文章:

  • ElementUI的Dialog弹窗实现拖拽移动功能
  • 生成式AI模型量化简明教程
  • 机器人制作开源方案 | 智能快递付件机器人
  • PostgreSQL技术大讲堂 - 第34讲:调优工具pgBagder部署
  • 《Python日志新宠——Loguru,轻松记录,笑对Bug!》
  • NET8 ORM 使用AOT SqlSugar
  • CCRC认证是什么?
  • linux内核面试题(2)
  • YOLOV5----修改损失函数-ShuffleAttention
  • Kafka(四)消费者消费消息
  • Python uiautomation获取微信内容!聊天记录、聊天列表、全都可获取
  • Java通过Lettuce访问Redis主从,哨兵,集群
  • 嵌入式数据库Sqlite
  • 计算机网络:网络层ARP协议
  • 集成环信IM时常见问题及解决——包括消息、群组、推送
  • Selenium自动化测试框架
  • C#实现观察者模式
  • 什么是持续部署
  • 【Python】Loguru模块更简洁的日志记录库
  • 智慧环保:科技驱动下的环境保护新篇章
  • CTF-PWN环境搭建手册
  • Nginx安装配置与SSL证书安装部署
  • 高性能面试八股文之编译流程程序调度
  • opencv的MinGW-W64编译
  • 在Go编程中调用外部命令的几种场景
  • python学习:break用法详解
  • 【算法萌新闯力扣】:找到所有数组中消失对数字
  • Node.js 安装配置
  • 前端JS 使用input完成文件上传操作,并对文件进行类型转换
  • 探索AI交互:Python与ChatGPT的完美结合!