想象一个并行的“高性能程序”,它读取文件,每个进程对输入数据执行一个任务,然后每个进程将任务的输出写入单个共享输出文件,然后重复此过程。
就性能而言,在每个进程完成一项任务时将输出写入文件效率低下吗?
将结果存储在数组中并在最后将数组写入输出文件会更有效吗?
答案 0 :(得分:1)
这是必须充分利用IO磁盘读写的问题,而不会延迟客户端进程或线程。如果使用Std C库调用,它将使用在新行或fflush()调用时刷新的内存缓冲区。如果使用数组有效的数据不够大,可以在最后将其写入文件,那么对性能要求很高的任务将不会遭受IO延迟。
答案 1 :(得分:-2)
文件通常比RAM慢。但是,速度要慢多少?如果增速低于1%,大多数人将不在乎。如果速度降低50%,某些人仍然不会在意。
与以往一样,对性能进行一种测量,另一种进行测量,然后确定差异是否显着。该决定通常取决于高度特定于应用程序的因素。