【发布时间】:2016-01-13 02:21:49
【问题描述】:
我正在为自己编写一个小 C++ 程序。在它开始时,我一直读取一个文件到底部,然后,在程序结束之前,我需要从头开始再次读取该文件。
我的问题是,在执行期间打开文件是否更有效(即使我不会使用它)并在我再次需要它时将其倒回,或者我应该第一次关闭它然后再次打开它什么时候需要?
编辑:澄清一下,我的问题不仅与我正在从事的特定项目有关。它真的很小(不到 300 行代码),所以不会有任何明显的性能差异。我问的是一般的打开、关闭和“倒带”文件,所以它适用于其他大型项目,性能和内存可能实际上很重要
【问题讨论】:
-
如果你有方法,有没有两种方法都试过并测试了所需的时间?
-
优化 C++ 代码的第一条规则:衡量一切。
-
如果您不使用该文件,您可能应该关闭它,这样您就不会捆绑它。
-
一开始你为什么要读两遍?如果您保持打开状态-那么您就不会期望内容发生变化...
-
一般来说,打开它会更快,因为“倒带”通常只是重置文件偏移量。但细节很重要。无论如何,由于在大多数情况下所有文件元数据都会被缓存,因此差异甚至可能无法衡量。
标签: c++ performance file