CPU可以跑多快?地球到火星的距离告诉你!

2021-10-11 00:00:00 让我们 距离 是从 时延 行走
我们在之前的文章中介绍了一张出自Google大神 Jeff Dean的图,这张图展示系统中各种关键操作的时延具体有多少。
需要注意的是这张图上的数据自2012年后就没有再更新过了,统计自2020年的新数据见这里:
这张图中一个小的黑方块代表1纳秒,一个蓝色的方块代表100纳秒,一个绿色的方块代表10微秒,一个红色的方块代表1毫秒。
尽管这种表示方法已经比张图形象很多了,但在我们(人类)看来对这些纳秒没太多概念,毕竟人类的反应时间仅仅0.2 -0.3秒,比这更短的时间人类是没有太多感觉的。
为了让大家能更加直观的感受速度差异,我们依然以张表为例,并且把计算机世界中的0.5纳秒当做1秒来换算一下,这样你就能清楚的感受到这些计算机世界中各个硬件巨大的速度差异了。
我们再来看一下:
现在就很有意思了,假定L1 cache的访问延迟为1s,那么访问内存的延迟就高达3分钟。
从内存上读取1MB数据需要5天,从SSD上读取1MB需要20天,磁盘上读取1MB数据高达1年的时间。
更有趣的来了,假设物理机重启的时间为2分钟,如果也将0.5ns视为1s的话那么2分钟就相当于5600年,中华文明上下五千年,大概就是这样一个尺度
现在你应该能直观的感受到CPU的速度到底有多快了吧。
以上都是基于时间维度换算的。
接下来我们基于距离维度进行了一次更有意思的换算。
CPU访问L1 cache 的时延为0.5ns,假定在这个时间尺度下我们能行走1米,大概是你从在家里走两步拿个快递的距离。
CPU访问内存的时延里我们可以行走200米,大概是你出门去个便利店的距离。
CPU从内存中读取1MB的时延我们可以行走500公里,这个距离大概是从北京到青岛的直线距离。
网络包在数据中心内部走一圈的时延可以让我们行走1000公里,大概是从北京到上海的直线距离。
从SSD中读取1MB的时延可以让我们行走2000公里,大概是从北京到深圳的距离。
从磁盘中读取1MB的时延可以让我们行走40000公里,正好是围绕地球转一圈的距离。
而网络数据包从美国加利福尼亚到荷兰转一圈的时延可以让我们行走30万公里,正好是从地球到月球的距离。
物理机一次重启的时延可以让我们行走1.2亿公里,差不多是从地球到火星的距离。
现在你应该对计算机系统中各种时延有一个直观上的认知了吧。


往期精选

程序员之天梯排行榜,你在哪一级?
Linux 抄袭 Unix ?今日终有定论!
用 MySQL 实现一个分布式锁,这也太强了。。
牛逼!有人用漫画带你了解 Linux 内核长啥样

再见!程序员!这次情况严重升级了...

缓存和数据库一致性问题,看这篇就够了!

精致全景图 | linux内核输出的日志去哪里了?

相关文章