每個(gè)程序員都應(yīng)該了解的延遲數(shù)字
Jeff Dean 在他關(guān)于分布式系統(tǒng)的 ppt [1] 中列出了“每個(gè)程序員都應(yīng)該了解的數(shù)字(Numbers Everyone Should Know)”,對(duì)計(jì)算機(jī)各類操作的耗時(shí)做了大致估計(jì)。這些數(shù)字在很多地方都很有用, 了解這些數(shù)字有助于我們?cè)谙到y(tǒng)設(shè)計(jì)時(shí)比較不同的解決方案,挑選一個(gè)最優(yōu)的方案。
這些數(shù)字大多是 2009 年給出的,計(jì)算機(jī)發(fā)展到今天, 內(nèi)存、SSD 和機(jī)械硬盤順序讀取速度有了非常大的提升,導(dǎo)致 這些數(shù)字有些過(guò)時(shí),下面給出2020年左右的一些數(shù)據(jù)。
需要注意的是我們 重點(diǎn)在于關(guān)注這些延遲數(shù)據(jù)之間的數(shù)量級(jí)和比例 ,如寄存器/L1/L2緩存的訪問(wèn)時(shí)間在ns級(jí)別 左右;內(nèi)存訪問(wèn)速度大約是 磁盤訪問(wèn)速度的10w倍。而不是糾結(jié)于寄存器的訪問(wèn)時(shí)間究竟是幾ns,這也不可能有一個(gè)統(tǒng)一的答案,因?yàn)槊颗_(tái)計(jì)算機(jī)的硬件不一樣性能 也不一樣。
1ns級(jí)別: 對(duì)cpu寄存器的訪問(wèn)在1ns這個(gè)級(jí)別?,F(xiàn)代cpu的時(shí)鐘周期也在1n秒范圍內(nèi)。











1-10ms級(jí)別:L1/L2緩存的訪問(wèn)時(shí)間以及一些復(fù)雜的cpu指令的執(zhí)行時(shí)間都在這個(gè)級(jí)別。1-10ns級(jí)別: L1/L2緩存的訪問(wèn)時(shí)間以及一些復(fù)雜的cpu指令的執(zhí)行時(shí)間都在這個(gè)級(jí)別。
推薦閱讀:
完全整理 | 365篇高質(zhì)技術(shù)文章目錄整理
專注服務(wù)器后臺(tái)技術(shù)棧知識(shí)總結(jié)分享
歡迎關(guān)注交流共同進(jìn)步
碼農(nóng)有道 coding
碼農(nóng)有道,為您提供通俗易懂的技術(shù)文章,讓技術(shù)變得更簡(jiǎn)單!
