不断写入文件会损害程序性能吗?

时间:2018-11-22 22:17:17

标签: c parallel-processing io hpc

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

就性能而言,在每个进程完成一项任务时将输出写入文件效率低下吗?

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

2 个答案:

答案 0 :(得分:1)

这是必须充分利用IO磁盘读写的问题,而不会延迟客户端进程或线程。如果使用Std C库调用,它将使用在新行或fflush()调用时刷新的内存缓冲区。如果使用数组有效的数据不够大,可以在最后将其写入文件,那么对性能要求很高的任务将不会遭受IO延迟。

答案 1 :(得分:-2)

文件通常比RAM慢。但是,速度要慢多少?如果增速低于1%,大多数人将不在乎。如果速度降低50%,某些人仍然不会在意。

与以往一样,对性能进行一种测量,另一种进行测量,然后确定差异是否显着。该决定通常取决于高度特定于应用程序的因素。