0
假設我在Linux上有一個非常快速且無限的數據源(例如套接字,/ dev/null或/ dev/random),我需要將這些數據寫入磁盤C/C++。什麼是在給定的硬件上完成的最快的代碼? fwrite(),unbuffered write(),一些boost ASIO函數?在Linux上將文件寫入磁盤的最快方法
假設我在Linux上有一個非常快速且無限的數據源(例如套接字,/ dev/null或/ dev/random),我需要將這些數據寫入磁盤C/C++。什麼是在給定的硬件上完成的最快的代碼? fwrite(),unbuffered write(),一些boost ASIO函數?在Linux上將文件寫入磁盤的最快方法
就原始輸出速度而言,那麼您將不得不基於測試,QoI,平臺,您正在編寫的內容以及FILE,fstream或POSIX中的其他任何東西基元可以是最快的。但是,如果你可以使用類似Boost asio的東西,那麼由於它是異步的本質,你可能會得到一個percieved的加速,它可以繼續讀下一個工作,但它仍然寫入磁盤。
編輯:我會去提升asio,它會讓你最好地利用你的資源,同時等待本質上慢的操作(文件和網絡IO)。
給定的操作系統呢? –
好吧,讓我們來看看Linux –
一條到'gzip -c'的管道可以非常快。 –