在Linux上将文件写入磁盘的最快方法

时间:2012-11-07 22:25:50

标签: c++ file optimization boost fwrite

假设我在Linux上有一个非常快速且无限的数据源(比如套接字,/ dev / null或/ dev / random),我需要用C / C ++将这样的数据写入磁盘。在给定硬件上实现这一目标的最快代码是什么? fwrite(),unbuffered write(),一些提升ASIO功能?

1 个答案:

答案 0 :(得分:1)

就原始输出速度而言,那么您将不得不对其进行基准测试,具体取决于测试,QoI,平台,您正在编写的内容以及其他任何FILE,fstream或POSIX原语的主机可以是最快的。

但是,如果您可以使用像Boost asio这样的东西,那么由于它的异步特性,您可能会获得更快的速度,它可以继续下一次读取工作,同时它仍在写入磁盘。

编辑:我会使用boost asio,它可以让您在等待固有的慢速操作(文件和网络IO)时充分利用您的资源。