簡體   English   中英

要顯式指定緩沖區大小時,應該使用fread / fwrite還是read / write系統調用?

[英]should you use fread/fwrite or read/write system calls when you want to specify the buffer size explicitly?

我有一個應用程序,我想在其中讀/寫數據,但同時我想指定將要使用的緩沖區的大小,以使應用程序更高效(I / O相關)。

我實現了兩個版本,一個使用讀/寫系統調用,一個使用fread / fwrite函數來指定緩沖區大小,我調用了setvbuf函數。

但是,我注意到大型輸入的運行時間差異約為2。

這引起了一些問題,當您想利用從磁盤傳輸數據塊的功能以最大程度地減少I / O總量時,是否應該始終首選使用讀/寫系統調用。

這取決於要讀取/寫入的數據量,如果將緩沖區設置得很小,則讀取/寫入大量數據的效率很低。

是一個比較。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM