記憶體究竟有多快

2021-09-08 21:45:38 字數 1833 閱讀 9614

一般來說。cpu需要0個週期來訪問其暫存器,1-30個週期來訪問快取記憶體,50-200個週期來訪問主存。

對於intel core i7來說。這個值可以很具體。intel core i7的主頻約在2-3ghz。可以計算出。

l1—指令快取

l1-資料快取

l2-快取

l3-快取

記憶體訪問週期44

1130-40

50-200

快取大小

32kb

32kb

256kb

8mb若干gb

訪問時間

2ns2ns

5ns14-18ns

24-93ns

也就是說,訪問記憶體的時間是ns級別的。

再來看看磁碟。

磁碟的訪問時間=尋道時間+旋轉延遲+資料傳輸時間。對於普通的7200轉stat磁碟。這個值是:9ms+4ms+0.02ms=13.02ms。

也就是說,如果從磁碟隨機訪問乙個位元組,需要13.02ms,比從記憶體獲取的時間24-93ns,至少要多14萬倍。相差5個資料級,何其巨大的差距。

順序讀寫磁碟會快一些。 假設乙個碟片有1000個扇區,每個扇區512位元組,7200轉。順序讀可以忽略掉尋道的時間。所以吞吐量是 扇區數×扇區大小×轉速=1000*512/(60/7200)=58mb/s。這個資料似乎不咋樣。如果使用多盤系統。stat ii的介面,吞吐量可以達到300mb/s。追求極限效能可以mount裸盤直接操作多盤。

儲存器山

《深入理解計算機系統》一書中提到了乙個儲存器山的概念。教授先生別出心裁的將儲存器的吞吐量,畫成了一座山。

儲存器山的測試程式是這樣的:

kernel_loop(elems, stride):for (i = 0; i < elems; i += stride)

result = data[i];

x軸表示的是讀取步長,y軸是吞吐量,z軸是資料總量的大小。

可以看出來步長越小,資料資料總量越小。效能越好。

很明顯,山是不是平滑的,是成階梯狀。紅色部分為l1快取,綠色為l2快取,淺藍是l3快取,深藍是記憶體。我們可以得一些資料。

l1-資料快取

l2-快取

l3-快取

記憶體磁碟

ssd快取大小

32kb

256kb

8mb十幾gb

幾tb幾百gb

訪問時間

2ns5ns

14-18ns

24-93ns

13.0ms

30-300us

吞吐量6500mb/s

3300mb/s

2200mb/s

800mb/s

60mb/s

250mb/s

也就是說,去除快取記憶體的記憶體,吞吐量效能只有800mb/s而已。比起磁碟的300mb/s,網路的100mb/s。也只是快了幾倍。平時說記憶體比磁碟快許多,其實沒有那麼多,如果不好好操作記憶體,記憶體的頻繁讀寫,也可以成為系統瓶頸。

總結

現在處理器的主頻已經停止了增長。但是快取記憶體仍然以摩爾定律的速度增長的。長久的看,快取記憶體頻率逐漸會追上處理器的效能,容量也會越來越大。但是記憶體則不容樂觀,雖然容量增加了許多,但是效能確沒有大的提公升,磁碟的狀況也是類似;ssd剛剛開始普及,趨勢不明顯。

但可以看到,ssd的吞吐量和記憶體的吞吐量相去並不大。也就是說在未來,當ssd完全替代了磁碟。我們要像現在操作磁碟一樣小心翼翼地操作記憶體,才有可能寫出符合那個時代計算機效能的程式。相比之下,ssd的使用比磁碟要輕鬆一些,畢竟隨機讀寫的速度在一兩個數量級上。

SAP ABAP雜湊表讀數究竟有多快

以下資料 為abap程式 測速工具 對照組取開發機也有的域值表dd07t 資料量為138萬 取值語句select from dd07t into corresponding fields of table gt data 測速程式執行時間單位為微秒 1秒 1000毫秒 1000000微秒,測速程式執...

資料驅動創新的速度究竟有多快

在過去,大資料是關於收集大量資訊,希望找到一些方法來收集對趨勢 潛在問題等的洞察力。但是,越來越多的企業在領域中正超越這種強調積累資料,並集中在 現在 的資料上,當資訊流入組織以建立直接的商業機會時,對資訊起作用並作出反應。這是乙個快速資料時代,它正在改變企業對顛覆和創新的看法。這種變化並不只是預期...

美文 遠方究竟有多遠

遠方究竟有多遠 青春是一縷煙在懵懵懂懂之間溜走,年華是指間沙也在猶豫不決之中流逝。太多的夢想,最終也只是夢想,反倒是現實的殘酷才顯示出夢想的價值,而遠方終究是遠方,沒有勇氣,沒有嘗試,沒有努力,遠方便也成為了永遠的遠方。曾經的夢想,隨著晝夜交替 四季更迭而化為散落的玉珠,一串串的記憶都到了終點,而我...