gpt4 book ai didi

c++ - 在 std::string 中读取整个文件或使用 std::ifstream 操作文件哪个更好?

转载 作者:太空狗 更新时间:2023-10-29 21:19:03 26 4
gpt4 key购买 nike

我实际上正在开发科学的 C++ 模拟程序,这些程序读取数据,从中计算大量值,最后将结果存储在一个文件中。我想知道在程序开始时一次读取所有数据是否比在程序期间通过 std::ifstream 继续访问文件更快。

我使用的数据不是很大(几 MB),但我什至不知道堆分配的“大”是什么......

我想这取决于数据等等(经过一些测试,实际上它取决于),但我想知道它取决于什么以及是否有一种我们应该遵循的一般原则。

长话短说,问题是:保持文件打开并使用文件操纵器是否比潜在的大堆分配和使用字符串操纵器更快?

最佳答案

看看mmap .该 API 允许您使用与 RAM 相同的分页机制将文件描述符映射到您的地址空间。这样,您应该既能获得随机访问数据的好处,又不会不必要地将不需要的数据复制到 RAM 中。

关于c++ - 在 std::string 中读取整个文件或使用 std::ifstream 操作文件哪个更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28544933/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com