- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个基于文件的点云八叉树,以便在非常大的文件(无法存储在 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?我看过这篇文章,但它对我的特定问题没有帮助。
最佳答案
但是,您可以使用其中任何一个:
boost::iostreams::mapped_file
object 你得到一个文件映射到内存与数组接口(interface)。没有比这更简单的了。您也可以使用 boost::iostreams::stream
将 std::iostream
接口(interface)附加到映射文件的装饰器。boost::interprocess::file_mapping
requires using boost::interprocess::mapped_region
将 file_mapping
映射到内存中。此方法更灵活,因为它允许使用不同的访问权限映射文件的各个部分(而不是整个文件),但它也更复杂。关于c++ - boost mapped_file 或 file_mapping,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53390105/
我正在创建一个基于文件的点云八叉树,以便在非常大的文件(无法存储在 ram 中)上管理过滤器。这个方法的瓶颈,到目前为止,是叶子的I/O(因为我经常要写,重写文件和读取文件......) 所以我想使用
我有一个文件解析器,它将文件加载为文件映射对象,然后根据调用者的需求映射区域。可以在本地或通过网络访问这些文件。 这个文件读取是顺序的。 我有两种方法 - Approach 1 Create a fi
我正在编写一个对延迟敏感的应用程序,它在初始化时读取文本文件。我分析并重写了我所有的算法,这样我 85% 的执行时间来自以下几行: boost::interprocess::file_mapping
对于这个问题,我将一个大的三维体从文件加载到一个程序中,但通常一次只需要查看三个平面 (x,y,z)。我目前正在使用 Boost::Interprocess::File_Mapping 创建文件 (3
我是一名优秀的程序员,十分优秀!