【发布时间】:2015-01-30 08:28:19
【问题描述】:
我需要创建一个 3D R*-tree,也许是为了长时间存储,但性能也是一个问题。 为了创建树,我决定使用 Boost 的 spacialindex,基本上找到了两种可能的方法。
我要么直接使用对象创建它,因为它在这里:Index of polygons stored in vector,但是这不允许我在不再次创建 R*-tree 的情况下存储和加载它。
或者我可以使用此处解释的映射文件:Index stored in mapped file using Boost.Interprocess,但是,我不确定在这种情况下查询的性能是否足够好。
我的 r-tree 将包含数千个条目,但很可能少于 100,000 个。现在我的问题是,与使用标准对象相比,使用映射文件是否存在任何强大的性能问题?此外,如果创建大约 100,000 个值的 R*-tree 不需要花费大量时间(我可以将所有边界框和相应的键/数据存储在一个文件中),那么跳过映射文件并在每次运行程序时创建树?
希望有人可以在这里帮助我,因为文档并没有真正提供太多信息(尽管它仍然比 libspacialindex 的文档更好)。
【问题讨论】:
标签: c++ performance ubuntu-14.04 r-tree boost-geometry