CPU可以跑多快?地球到火星的距離告訴你!
我們在之前的文章中介紹了一張出自Google大神 Jeff Dean的圖,這張圖展示系統(tǒng)中各種關(guān)鍵操作的時(shí)延具體有多少。
需要注意的是這張圖上的數(shù)據(jù)自2012年后就沒有再更新過了,統(tǒng)計(jì)自2020年的最新數(shù)據(jù)見這里:
這張圖中一個(gè)小的黑方塊代表1納秒,一個(gè)藍(lán)色的方塊代表100納秒,一個(gè)綠色的方塊代表10微秒,一個(gè)紅色的方塊代表1毫秒。
盡管這種表示方法已經(jīng)比第一張圖形象很多了,但在我們(人類)看來對這些納秒沒太多概念,畢竟人類的反應(yīng)時(shí)間僅僅0.2 -0.3秒,比這更短的時(shí)間人類是沒有太多感覺的。
為了讓大家能更加直觀的感受速度差異,我們依然以第一張表為例,并且把計(jì)算機(jī)世界中的0.5納秒當(dāng)做1秒來換算一下,這樣你就能清楚的感受到這些計(jì)算機(jī)世界中各個(gè)硬件巨大的速度差異了。
我們再來看一下:
現(xiàn)在就很有意思了,假定L1 cache的訪問延遲為1s,那么訪問內(nèi)存的延遲就高達(dá)3分鐘。
從內(nèi)存上讀取1MB數(shù)據(jù)需要5天,從SSD上讀取1MB需要20天,磁盤上讀取1MB數(shù)據(jù)高達(dá)1年的時(shí)間。
更有趣的來了,假設(shè)物理機(jī)重啟的時(shí)間為2分鐘,如果也將0.5ns視為1s的話那么2分鐘就相當(dāng)于5600年,中華文明上下五千年,大概就是這樣一個(gè)尺度。
現(xiàn)在你應(yīng)該能直觀的感受到CPU的速度到底有多快了吧。
以上都是基于時(shí)間維度換算的。
接下來我們基于距離維度進(jìn)行了一次更有意思的換算。
CPU訪問L1 cache 的時(shí)延為0.5ns,假定在這個(gè)時(shí)間尺度下我們能行走1米,大概是你從在家里走兩步拿個(gè)快遞的距離。
CPU訪問內(nèi)存的時(shí)延里我們可以行走200米,大概是你出門去個(gè)便利店的距離。
CPU從內(nèi)存中讀取1MB的時(shí)延我們可以行走500公里,這個(gè)距離大概是從北京到青島的直線距離。
網(wǎng)絡(luò)包在數(shù)據(jù)中心內(nèi)部走一圈的時(shí)延可以讓我們行走1000公里,大概是從北京到上海的直線距離。
從SSD中讀取1MB的時(shí)延可以讓我們行走2000公里,大概是從北京到深圳的距離。
??
從磁盤中讀取1MB的時(shí)延可以讓我們行走40000公里,正好是圍繞地球轉(zhuǎn)一圈的距離。
而網(wǎng)絡(luò)數(shù)據(jù)包從美國加利福尼亞到荷蘭轉(zhuǎn)一圈的時(shí)延可以讓我們行走30萬公里,正好是從地球到月球的距離。
物理機(jī)一次重啟的時(shí)延可以讓我們行走1.2億公里,差不多是從地球到火星的距離。
現(xiàn)在你應(yīng)該對計(jì)算機(jī)系統(tǒng)中各種時(shí)延有一個(gè)直觀上的認(rèn)知了吧。
本文轉(zhuǎn)載自微信公眾號「碼農(nóng)的荒島求生」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系碼農(nóng)的荒島求生公眾號。