無緩衝IO效率測試

2021-05-09 21:45:23 字數 1312 閱讀 7651

io效率測試的報告

其中writefile.c是要寫入的檔案,hello.c是要讀入的檔案,此檔案的大小為十幾兆(一般要比較大結果才可信);

(1)無緩衝io

#include "ourh.h"

#include

#include

#include

#include

unsigned long cifang(int n)

return temp; }

void print_times(int bufsize,clock_t real,struct tms* start,struct tms* end)

int main()

if(n<0)

c_end = times(&tms_end);

printf("buf usersysreal/n");

print_times(buffersize,c_end-c_start,&tms_start,&tms_end);

close(outfile);

close(infile);

i++; }

return 0; }

執行結果:

(2)標準io

#include "ourh.h"

#include

#include

#include

#include

void print_times(int bufsize,clock_t real,struct tms* start,struct tms* end)

int main()

if(ferror(infile))

c_end = times(&tms_end);

printf("buf usersysreal/n");

print_times(buffersize,c_end-c_start,&tms_start,&tms_end);

fclose(outfile);

fclose(infile);

return 0; }

執行結果:

從結果可以看出:

用無緩衝

io讀寫函式操作時,當緩衝區大小設定為

131072

時效率最高,時間分別為

0.0000000.0200000.012000

標準I O緩衝 全緩衝 行緩衝 無緩衝

說明 我只對網路資源進行了整合,方便學習 基於流的操作最終會呼叫read或者write函式進行i o操作。為了使程式的執行效率最高,流物件通常會提供緩衝區,以減少呼叫系統i o庫函式的次數。基於流的i o提供以下3種緩衝 全緩衝 直到緩衝區被填滿,才呼叫系統i o函式。對於讀操作來說,直到讀入的內容...

標準I O緩衝 全緩衝 行緩衝 無緩衝

某日一朋友寫了乙個hello world 出不來結果,如下 include intmain int argc,char argv 注意到,在 中printf語句列印的字串最後沒有帶換行符,而且最後呼叫了 exit函式,這導致了在終端螢幕上顯示不出來字串 hello world 首先介紹一下unix裡...

標準I O緩衝 全緩衝 行緩衝 無緩衝

說明 我只對網路資源進行了整合,方便學習 基於流的操作最終會呼叫read或者write函式進行i o操作。為了使程式的執行效率最高,流物件通常會提供緩衝區,以減少呼叫系統i o庫函式的次數。基於流的i o提供以下 3種緩衝 全緩衝 直到緩衝區被填滿,才呼叫系統i o函式。對於讀操作來說,直到讀入的內...