<分区>
假设我在 Linux 上有一个非常快且无限的数据源(比如套接字,/dev/null 或/dev/random),我需要用 C/C++ 将此类数据写入磁盘。在给定硬件上完成该任务的最快代码是什么? fwrite(), unbuffered write(), 一些 boost ASIO 功能?
<分区>
假设我在 Linux 上有一个非常快且无限的数据源(比如套接字,/dev/null 或/dev/random),我需要用 C/C++ 将此类数据写入磁盘。在给定硬件上完成该任务的最快代码是什么? fwrite(), unbuffered write(), 一些 boost ASIO 功能?
最佳答案
那么就原始输出速度而言,您将不得不对其进行基准测试,具体取决于测试、QoI、平台、您正在编写的内容以及其他任何文件、fstreams 或 POSIX 基元的漏洞主机可以是最快的。
但是,如果您可以使用 Boost asio 之类的东西,那么由于它的异步特性,您可能会获得明显的 boost ,它可以在仍在写入磁盘的同时继续读取下一个工作。
编辑:我会选择 boost asio,它可以让您在等待固有的缓慢操作(文件和网络 IO)的同时最好地利用您的资源。
关于c++ - 在 Linux 上将文件写入磁盘的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13279319/