CPU可以跑多快?地球到火星的距離告訴你!
我們在之前的文章中介紹了一張出自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億公里,差不多是從地球到火星的距離。
現在你應該對計算機系統中各種時延有一個直觀上的認知了吧。
本文轉載自微信公眾號「碼農的荒島求生」,可以通過以下二維碼關注。轉載本文請聯系碼農的荒島求生公眾號。