c - 持续写入文件是否会损害程序的性能?
问题描述
想象一个读取文件的并行“高性能程序”,每个进程对输入数据执行一项任务,然后每个进程将任务的输出写入单个共享输出文件,然后重复此过程。
在性能方面,在每个进程完成任务时将输出写入文件是否效率低下?
将结果存储在数组中并在最后将数组写入输出文件会更有效吗?
解决方案
这是必须利用完整的 IO 磁盘读写而没有来自客户端进程或线程的延迟的问题。如果使用标准 C 库调用,则它使用在换行符处刷新的内存缓冲区或进行 fflush() 调用。如果数据不够大,使用数组是有效的,可以在最后写入文件,因此性能要求高的任务不会遭受 IO 延迟。
推荐阅读
- c++ - 在每列 ROI 中求和 BGR?openCV C++
- list - 在包含元素的嵌套列表中打印一个列表
- xcode - Unity3D / Vuforia AR相机未在相机背景上显示相机馈送
- node.js - Facebook 无法抓取我的安全网址(Nginx)
- python - 如何为 python 2.7 升级 matplotlib 版本
- c# - 如何从更大的列表创建子列表以在 MVC 中循环
- listview - Flutter:水平列表视图的最小高度
- c - 使用指针算术求和数字
- php - 从 Woocommerce 的订单页面完成付款后更新订单元数据
- java - iText7 (PdfSweep):编辑文本时出现 NullPointerException