首页 > 解决方案 > 持续写入文件是否会损害程序的性能?

问题描述

想象一个读取文件的并行“高性能程序”,每个进程对输入数据执行一项任务,然后每个进程将任务的输出写入单个共享输出文件,然后重复此过程。

在性能方面,在每个进程完成任务时将输出写入文件是否效率低下?

将结果存储在数组中并在最后将数组写入输出文件会更有效吗?

标签: cparallel-processingiohpc

解决方案


这是必须利用完整的 IO 磁盘读写而没有来自客户端进程或线程的延迟的问题。如果使用标准 C 库调用,则它使用在换行符处刷新的内存缓冲区或进行 fflush() 调用。如果数据不够大,使用数组是有效的,可以在最后写入文件,因此性能要求高的任务不会遭受 IO 延迟。


推荐阅读