c++ - 将标题添加到大文件的最佳方法是什么

标签 c++ file header io

如果文件大小在 1-2GB 左右,向现有文件添加 header (例如文件元数据)的最佳方法是什么?

在 C++ 中

最佳答案

最好的方法是简单地将 header 写入文件,然后附加旧文件的内容。

C++ 不提供在现有文件开头插入 的方法,因此这确实是最好的选择。只要确保从旧文件中读取足够大的 block 并将它们附加到新文件即可。虽然缓冲会缓解大部分以小块执行此操作的问题,但您仍然会遇到更多函数调用的性能下降。

这可能很小,但它仍然存在。对于一个 2G 的文件,我可能会以 half-gig 的 block 开始,除非内存非常宝贵。这允许更大的文件大小而不会浪费太多内存,并且四次读/写调用不太可能成为性能问题。

但是,与所有优化一样,测量,不要猜测。有各种低级别的东西会影响 C++ 标准文档没有提到的性能(这是正确的)。由于您的问题没有提到特定的操作系统,我已经基于此做出了回答,但这些特定的操作系统可能 (a) react 不同; (b) 提供其他可以更快的非标准调用。

关于c++ - 将标题添加到大文件的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5528754/

相关文章:

c++ - 右值参数如何工作?

c++ - 从 Python 调用 C++ 函数

c++ - 在 VC++ 中,数组的长度不会在运行时得到验证吗?

c++ - 2 个指向相同值的指针并仅更改其中一个 - 双链表 C++

Python:多次逐行迭代.txt文件

linux - Linux 中的 I/O 性能

PHP header 发送 PHP 文件,而它不应该

Java 输入文件无法打印

c - 在 C 的头文件中声明 static const 变量是否是可接受的做法

python - 如何创建 CSV 文件的标题?