1

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

4

1 回答 1

1

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

但是,如果您可以使用 Boost asio 之类的东西,那么由于它的异步特性,您可能会获得明显的加速,它可以在仍在写入磁盘的同时继续读取下一个工作。

编辑:我会选择 boost asio,它可以让你在等待固有的缓慢操作(文件和网络 IO)的同时最好地利用你的资源。

于 2012-11-07T22:28:42.600 回答