CPU,硬盤,網絡速度對比(在 CPU 的角度以具體的數據來量化)

在 CPU 的角度以具體的數據來量化 CPU、磁盤、網絡的速度,對計算機各個組件不同的速度差異有個更直觀的認識。

CPU : 每個指令大概需要 0.38ns,以此作爲對比的基本單位 1s
一級緩存:讀取時間大約爲 0.5ns,對比 CPU 的時間大約是 1.3s
CPU 分支預測錯誤: 耗時爲 5ns,對比 CPU 的時間大約是 13s
二級緩存:讀取時間大約爲 7ns,對比 CPU 的時間大約是 18.2s(與一級緩存相差了一個數量級)
鎖:互斥鎖的加鎖和解鎖大約需要 25ns,對比 CPU 的時間大約是 65s(一分鐘)。所以說,在併發編程中,鎖是一個很耗時的操作
內存:每次內存尋址需要 100ns,對比 CPU 的時間大約是 260s(四分鐘,又提升了一個數量級)。CPU 和內存之間的瓶頸被稱爲馮諾依曼瓶頸
一次 CPU 上下文切換:大約耗時爲 1500ns,對比 CPU 的時間大約是 65 分鐘(一個小時)。在上下文切換的時間內,CPU 沒有做任何有用的計算,只是切換了兩個不同進程的寄存器和內存狀態。
在 1Gbps 的網絡上傳輸 2k 的數據需要 20us,對比 CPU 的時間大約是 14.4 個小時(理論值,實際中可能更久),可以看到網絡上非常少的數據傳輸對於 CPU 來說已經很漫長了
SSD 隨機讀取耗時爲 150us,對比 CPU 的時間爲 4.5 天。SSD 的速度已經比機械硬盤快很多了,但對於 CPU 來說速度就想烏龜一樣。所以應該少寫 I/O 設備讀取的代碼,把常用的數據放到內存中作爲緩存。
從內存中讀取1MB 的連續數據,耗時大約是 250us,對比 CPU 的時間是 7.5 天
同一個數據中心網絡上跑一個來回需要 0.5ms,對比 CPU 的時間大約是 15 天(半個月)。
從 SSD 讀取 1MB 的順序數據,大約學院 1ms,對比 CPU 的時間大約是一個月
磁盤尋址時間是 10ms,對比 CPU 的時間是 10 個月
從磁盤讀取 1MB 的連續數據需要 20ms,對比 CPU 的時間是 20 個月。所以說IO 設備是計算機系統的瓶頸
從世界上不同城市的網絡上走一個來回,平均需要 150ms,對比 CPU 的時間是 12.5 年。所以程序和架構都會盡量避免不同城市或者是跨國家的網絡訪問
虛擬機重啓一次需要 4s 的時間,對比 CPU 的時間是 三百多年,
物理服務器重啓一次的時間是 5min,對比 CPU 的時間是 2萬5千年。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章