CPU可以跑多快?地球到火星的距离告诉你!Hollis共 1121字,需浏览 3分钟 ·2021-10-13 00:16 我们在之前的文章中介绍了一张出自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亿公里,差不多是从地球到火星的距离。现在你应该对计算机系统中各种时延有一个直观上的认知了吧。有道无术,术可成;有术无道,止于术欢迎大家关注Java之道公众号好文章,我在看❤️ 浏览 27点赞 评论 收藏 分享 手机扫一扫分享分享 举报 评论图片表情视频评价全部评论推荐 CPU可以跑多快?地球到火星的距离告诉你!Java技术迷0数据告诉你ClickHouse有多快程序源代码0【实时性迷思】CPU究竟跑的有多快?嵌入式杂牌军0你的距离庭霜是一个与原生家庭有矛盾的叛逆男生,为了逃避原来的家庭,他在德国读书。异国他乡没什么朋友,弟弟擅自你的距离你的距离0火星或地球火星或地球0如果你到地球来亲爱的外星访客,如果你到地球来,这些事情要知道:我们人类,居住在各种各样的地方,生活在各种各样的家里如果你到地球来如果你到地球来0到爱的距离 (2013)到爱的距离 (2013)0轻轻的告诉你轻轻的告诉你0点赞 评论 收藏 分享 手机扫一扫分享分享 举报