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

标签 c++ file optimization boost fwrite

<分区>

假设我在 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/

相关文章:

c++ - 如何将图像(BYTE*)转换为 Base64

c++ - 具有默认成员值和不完整类型的模板扩展的编译器差异

django - 如何通过Django中的链接下载上传的文件

swift - Swift 整体模块优化在调试时会导致任何问题吗?

c++ - 使用 CppAD 时,IPOPT 不服从约束但不记录违规

c++ - 'void' 之前的预期不合格 ID

c++ - std::atomic load 中的段错误?

c# - 监视文件的更改

JavaScript 本地应用程序保存/加载文件?

MySQL:从子查询到单个查询