c++ - FILE* 和 ifstream 哪个有更好的内存使用率?

标签 c++ file memory-management ifstream

我需要从大小约为 50MB 的文件中读取固定数量的字节。更准确地说,从 YUV 4:2:0 CIF/QCIF 文件中读取一帧(每帧约 25KB 到约 100KB)。数字不是很大,但我不希望整个文件都在内存中。我正在使用 C++,在这种情况下,哪个 FILE* 或 ifstream 具有更好(更少/最小)的内存使用?请指教。谢谢!

编辑:

我读取固定数量的字节:25KB 或 100KB(取决于 QCIF/CIF 格式)。读数为二进制模式且仅向前。无需寻求。无需写作,只需阅读。

编辑:

如果很难识别其中更好的一个,那么哪个不需要将整个文件加载到内存中?

最佳答案

不可能说 - 这将取决于实现,以及您如何读取您没有描述的数据。一般来说,这里关于性能的问题有些毫无意义,因为它们在很大程度上取决于您对库和语言功能的实际使用、具体实现、您的硬件等。

编辑:要回答您的扩展问题 - 这两个库都不需要您将所有内容读入内存。你认为他们为什么会这样做?

关于c++ - FILE* 和 ifstream 哪个有更好的内存使用率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2746326/

相关文章:

c++ - 具有继承的C++中的段错误

c++ - 使用 DialogBox 作为主窗口是否正确/合适?

file - 套接字描述符基本上是文件描述符的同义词吗?

C - 将字符串数组分配给包含 21 个或更多崩溃的数组

c - 以下 C 程序使用了多少内存?

c++ - 将临时对象的 c_str 返回值传递给 printf

由于虚拟析构函数/clang 的 C++ 链接器警告

php - 优化php和mysql的内存管理

java - 如何使用java中的RandomAccessFile从文件中读取 "long"字节数

java - Android:下载文件代码不起作用