【发布时间】:2016-01-06 08:18:48
【问题描述】:
我有一个将字符串写入文件的 Go 程序。我有一个循环,它被迭代 20000 次,在每次迭代中,我将大约 20-30 个字符串写入文件。我只是想知道将其写入文件的最佳方法。
方法一:在代码开头保持打开文件指针, 为每个字符串编写它。它可以进行 20000*30 次写入操作。
方法 2:使用 bytes.Buffer 将所有内容存储在缓冲区中,然后 把它写在最后。同样在这种情况下文件指针应该是 从代码的开头或代码的末尾打开。做 有关系吗?
我假设方法 2 应该会更好。有人可以用一个理由来证实这一点。 一次写作比定期写作更好。因为文件指针无论如何都会打开。
我正在使用f.WriteString(<string>) 和buffer.WriteString(<some string>) 缓冲区的类型为bytes.Buffer 和f 是打开的文件指针。
【问题讨论】:
标签: performance go io