典型 PC 系統各種操作指令的大概時間

2021-06-08 23:14:00 字數 1823 閱讀 5007

典型 pc 系統各種操作指令的大概時間

execute typical instruction

執行基本指令

1/1,000,000,000 sec = 1 nanosec

fetch from l1 cache memory

從一級快取中讀取資料

0. 5 nanosec

branch misprediction

分支誤**

5 nanosec

fetch from l2 cache memory

從二級快取獲取資料

7 nanosec

mutex lock/unlock

互斥加鎖/解鎖

25 nanosec

fetch from main memory

從主記憶體獲取資料

100 nanosec

send 2k bytes over 1gbps network

通過 1g bps 的網路傳送 2k 位元組

20,000 nanosec

read 1mb sequentially from memory

從記憶體中順序讀取 1mb 資料

250,000 nanosec

fetch from new disk location (seek)

從新的磁碟位置獲取資料(隨機讀取)

8,000,000 nanosec

read 1mb sequentially from disk

從磁碟中順序讀取 1mb 資料

20,000,000 nanosec

send packet us to europe and back

從美國傳送乙個報文包到歐洲再返回

150 milliseconds = 150,000,000 nanosec

一般來說。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裸盤直接操作多盤。

總結。這些資料都不一定是所用機器的真實資料,但根據比例關係,可以了解到各個流程中的大概耗時。對於寫的程式,也有一些參考依據。

不過若是實際專案,還是需要了解所用機器的真實性能。

Linux系統的操作指令(一)

ctrl alt t 開啟乙個視窗 ctrl shift t乙個控制台視窗內開啟多個視窗,需要幾個用幾個。ctrl alt f1 f7 f1到f6是字元介面,f7為圖形介面 字元介面的作用 裝逼必備 省資源,伺服器一般不安裝圖形介面 圖形介面崩潰後緊急救援 pwd linux系統下沒有c d e盤,...

linux 作業系統的基本指令

根目錄 不要存放檔案 bin 可執行二進位制目錄檔案 boot linux 系統啟動檔案 非必需 dev 裝置檔案目錄 一切皆檔案 etc 配置檔案目錄 home 系統預設的使用者目錄 root 系統管理員目錄 sbin 放置系統管理員使用的可執行命令 tmp 臨時存放檔案目錄 usr 應用程式存放...

中標麒麟作業系統了解的指令

lsb release acat etc release getconf long bit ls bin sh l lrwxrwxrwx 1 root root 4 jan 2920 23 bin sh dash 當然系統預設的 bin sh指向dash。sudo dpkg reconfigure ...