記憶體,磁碟,cache等訪問速度

2021-07-30 03:20:53 字數 888 閱讀 5837

google 工程師jeff dean 首先在他關於分布式系統的ppt文件列出來的,到處被引用的很多。

numbers everyone should know

l1 cache reference 讀取cpu的一級快取 0.5 ns

branch mispredict(轉移、分支**) 5 ns

l2 cache reference 讀取cpu的二級快取 7 ns

mutex lock/unlock 互斥鎖\解鎖 100 ns

main memory reference 讀取記憶體資料 100 ns

compress 1k bytes with zippy 1k位元組壓縮 10,000 ns

send 2k bytes over 1 gbps network 在1gbps的網路上傳送2k位元組 20,000 ns

read 1 mb sequentially from memory 從記憶體順序讀取1mb 250,000 ns

round trip within same datacenter 從乙個資料中心往返一次,ping一下 500,000 ns

disk seek 磁碟搜尋 10,000,000 ns

read 1 mb sequentially from network 從網路上順序讀取1兆的資料 10,000,000 ns

read 1 mb sequentially from disk 從磁碟裡面讀出1mb 30,000,000 ns

send packet ca->netherlands->ca 乙個包的一次遠端訪問 150,000,000 ns

我們關注一下記憶體 和 磁碟的訪問速度, 上面是指隨機訪問,那麼 相差 1000 000倍,但如果是順序訪問的話大約為 7倍。

**

處理器訪問記憶體時,CPU核 cache

圖1cpu 訪問記憶體時的硬體操作順序 cpu 訪問記憶體時的硬體操作順序,各步驟在圖中有對應的標號 1 cpu核心 圖1中的 arm 發出va 請求讀資料,tlb translation lookaside buffer 接收到該位址,那為什麼是 tlb先接收到該位址呢?因為 tlb是 mmu中的...

記憶體對其加速cpu訪問速度原理

記憶體對齊問題是每乙個c程式設計師都應該考慮過的問題,c編譯器的規則明確規定了對齊問題,就是乙個struct中按照最長的型別對齊,比如考慮下面的結構體 struct abc char a int b char c 在32位x86機器上它的大小是多少呢?是12,為什麼呢?因為該結構體中最長的型別是in...

MySQL遠端訪問及訪問速度慢等問題解決

1.訪問速度慢 現象 訪問資料庫速度慢,完成一次連線或資料訪問需要將近5s左右。原因 每次訪問資料庫,mysql就會試圖去解析來訪問的機器的domain name,如果這時解析不成功,等一段時間會失敗,資料才能被取過來。解決方法 修改配置檔案在 mysqld 下新增skip name resolve...