如果文件大小在 1-2GB 左右,向现有文件添加 header (例如文件元数据)的最佳方法是什么?
在 C++ 中
最佳答案
最好的方法是简单地将 header 写入新文件,然后附加旧文件的内容。
C++ 不提供在现有文件开头插入 的方法,因此这确实是最好的选择。只要确保从旧文件中读取足够大的 block 并将它们附加到新文件即可。虽然缓冲会缓解大部分以小块执行此操作的问题,但您仍然会遇到更多函数调用的性能下降。
这可能很小,但它仍然存在。对于一个 2G 的文件,我可能会以 half-gig 的 block 开始,除非内存非常宝贵。这允许更大的文件大小而不会浪费太多内存,并且四次读/写调用不太可能成为性能问题。
但是,与所有优化一样,测量,不要猜测。有各种低级别的东西会影响 C++ 标准文档没有提到的性能(这是正确的)。由于您的问题没有提到特定的操作系统,我已经基于此做出了回答,但这些特定的操作系统可能 (a) react 不同; (b) 提供其他可以更快的非标准调用。
关于c++ - 将标题添加到大文件的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5528754/