2012-11-07 143 views
0

假设我在Linux上有一个非常快速且无限的数据源(例如套接字,/ dev/null或/ dev/random),我需要将这些数据写入磁盘C/C++。什么是在给定的硬件上完成的最快的代码? fwrite(),unbuffered write(),一些boost ASIO函数?在Linux上将文件写入磁盘的最快方法

+0

给定的操作系统呢? –

+0

好吧,让我们来看看Linux –

+0

一条到'gzip -c'的管道可以非常快。 –

回答

1

就原始输出速度而言,那么您将不得不基于测试,QoI,平台,您正在编写的内容以及FILE,fstream或POSIX中的其他任何东西基元可以是最快的。但是,如果你可以使用类似Boost asio的东西,那么由于它是异步的本质,你可能会得到一个percieved的加速,它可以继续读下一个工作,但它仍然写入磁盘。

编辑:我会去提升asio,它会让你最好地利用你的资源,同时等待本质上慢的操作(文件和网络IO)。