c++ - boost mapped_file 或 file_mapping

标签 c++ boost memory-mapped-files memory-mapping

我正在创建一个基于文件的点云八叉树,以便在非常大的文件(无法存储在 ram 中)上管理过滤器。这个方法的瓶颈,到目前为止,是叶子的I/O(因为我经常要写,重写文件和读取文件......)
所以我想使用内存映射文件技术来让它更快,我听说了 Boost。
但是当我搜索教程时,我看到了两种技术:
一次使用#include <boost/iostreams/device/mapped_file.hpp>
和另一个 #include <boost/interprocess/file_mapping.hpp> .

在我的案例中,我必须经常在文件中写入 3D 点的完整 vector ,然后获取这些文件中的所有信息并从中重新创建 vector 。很多 I/O 操作,可能有很多文件。
我想知道我必须使用哪一个?在哪种情况下我必须使用一个而不是另一个?

谢谢!

附言:Is there a difference between boost iostream mapped file and boost interprocess mapped file?我看过这篇文章,但它对我的特定问题没有帮助。

最佳答案

但是,您可以使用其中任何一个:

关于c++ - boost mapped_file 或 file_mapping,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53390105/

相关文章:

c++ - boost microsec_time_clock.hpp 警告 C4244

c# - 在 C# 中处理内存映射文件的正确方法

c++ - 访问非持久性内存映射文件

C++将时间字符串转换为纪元的秒数

c++ - 如何从外语线程调用python函数(C++)

c++ - std::tr1::shared_ptr 是否会抛出 bad_alloc 并且在 try/catch block 中是个好主意?

c++ - 删除 CallBack 函数中 new 创建的指针

c++ - 将迭代器获取到泛型类 : HOW TO 中的泛型容器

c++ - 为什么 std::ratio 不支持比较运算符?