最好的方法是简单地将标头写入新文件,然后附加旧文件的内容。
C++ 不提供在现有文件开头插入的方法,因此这确实是最好的选择。只需确保从旧文件中读取足够大的块并将它们附加到新文件中即可。虽然缓冲可以缓解小块执行此操作的大部分问题,但更多函数调用仍然会导致性能下降。
这可能是最小的,但它仍然存在。对于 2G 文件,我可能会以半 GB 的块开始,除非内存非常宝贵。这允许更大的文件大小,而不会浪费太多内存,并且四次读/写调用不太可能成为性能问题。
但是,与所有优化一样,要测量,不要猜测。有各种低级事物可能会影响 C++ 标准文档未提及的性能(而且确实如此)。由于您的问题没有提及特定的操作系统,因此我已据此回答,但这些特定的操作系统可能会(a)做出不同的反应;(b) 提供其他可以加快速度的非标准调用。
归档时间: |
|
查看次数: |
360 次 |
最近记录: |