以小块或一次性写入文件是否更好?

时间:2013-04-10 13:00:50

标签: perl memory file-io

我必须用Perl在一个文件上写多行,这是逐行写入小块的优点或缺点,而不是保存所有内容并只访问文件句柄一次写入所有内容?

2 个答案:

答案 0 :(得分:6)

Perl在引擎盖下执行文件写入缓冲 - 它会将数据保存到有大量块,然后立即写入。

因此,即使您多次写入文件句柄,对文件的实际写入次数也是有限的。写很多次都没有明显的性能损失 - 除非你做了明确规避缓冲的事情(例如每次写时设置$|=1或关闭并重新打开文件)。

如果最方便,你应该逐行写。

答案 1 :(得分:1)

一旦你知道要写入的数据是什么,写入数据通常会更方便,所以这样做。重复使用文件句柄没有任何缺点。

而且,是的,如果写入的数据总量大于输出缓冲区的大小,那将节省一些内存,但实际上,除非你要写几十兆字节,否则内存消耗的差异并不重要,因此请以最清晰,最容易维护的方式编写。