環境(戴爾伺服器):
cpu:4
核3.1ghz
;記憶體:
4g
1.
寫檔案速度測試結果
(10s)
環境:死迴圈進行寫檔案,隨著迴圈輪詢每個檔案,每次迴圈把內容寫入輪到的這個檔案
條件(輪詢寫檔案的個數)結果
(檔案大小總和:單位g)1
1.50
21.44
1001.39
5001.35
1000
1.31
2000
1.24
3000
1.20
5000
1.15
上面是單執行緒模式。後面又嘗試了一下多執行緒模式,發現資料差不多,沒有什麼區別。
結論:1、
伺服器檔案
io速度大概是
150m/s
。 2、
隨著寫檔案數目的增多,
io速度減少。這裡是磁碟尋道時間在影響速度。
3、 單個執行緒即可使
io達到頂峰。說明
cpu處理能夠遠比
io處理要快。
結論:隨著讀寫檔案的增多,單位時間內寫的速度會降低
2.
tcp通訊
recv
和send
時間比較
環境:tcp
伺服器和客戶端
(非阻塞),
每次傳送和接受的緩衝為
1000
位元組 發包間隔
send
函式執行時間
(us)
recv
函式執行時間
(us)
usleep 50000910
usleep 500076
usleep 012
結論:
tcp發包執行時間與
udp發包時間差不多,但是收包要比
udp慢很多
tcp的recv cpu
時間較多。
3.
udp通訊
recv
和send
時間比較
環境:udp
伺服器和客戶端
(非阻塞),
每次傳送
1000
位元組,接收為
4096
位元組 發包間隔
send
函式執行時間
(us)
recv
函式執行時間
(us)
usleep 5000081
usleep 2500081
usleep 500081
usleep 020
結論:通過上面發現,
tcp的發包和
udp在時長上差別不大。但是在收包上要比
udp慢。
cpu消耗也大。
4.
寫檔案時測試
fwrite
函式執行時間
執行過程:檔案開啟後,連續
fwrite20
次,得到每次呼叫
fwrite
的時間 注意:
(用我自己虛擬機器測試,戴爾伺服器測試過程中沒有出現
)測試得到的結果有可能會全部時間為
0或者部分為
0,而且全部測試過程都有概率出現這種情況,
每次fwrite
的位元組數規律(
呼叫時間較長的是哪幾次
)5001,
9,1710001,
5,9,
13,1720001,
3,5,
7,9,
11,13,
15,17,
1930001,
2,3,
5,6,
7,9,
10,11,
13,14,
16,17,
18,204000
每次呼叫時間都較長
5000
每次呼叫時間都較長
6000
每次呼叫時間都較長
結論:核心
buf:
4096
,每次傳送的資料超過
4096
時,每次傳送呼叫的時間都較長
檔案I O 乙個小程式
編寫乙個檔案複製程式 c語言版本 include include int main int argc,char argv if in fopen argv 1 rb null if out fopen argv 2 wb null while ch getc in eof if ferror in ...
linux怎麼檢視乙個檔案有多少行
linux檢視乙個檔案有多少行的方法 1 登入linux系統,在系統桌面的空白處右擊 2 在彈出的下拉選項裡,點選 開啟終端 選項 3 在開啟的終端中,執行 wc l filename 命令即可檢視。本教程操作環境 red hat enterprise linux 6.1系統 dell g3電腦。l...
IO4 1封裝乙個刪除檔案函式
需求如題。首先,我們需要建立乙個檔案 filename path py.txt try f open filename path,w 寫入模式,會沖刷掉檔案內容 print f.write 作者,黃蓉 f.close except 異常處理 print s檔案找不到 filename path 成功...