Мне нужно создать 3D R*-дерево, возможно, для длительного хранения, но производительность также будет проблемой. Чтобы создать дерево, я решил использовать spacialindex Boost и нашел два возможных метода.
Либо я создаю его напрямую, используя объекты, как здесь: Индекс полигонов хранится в векторе, однако это не позволяет мне сохранять и загружать его без повторного создания R*-дерева.
Или я мог бы использовать сопоставленный файл, как описано здесь: Индекс, хранящийся в сопоставленном файле с использованием Boost.Interprocess, однако я не уверен, достаточно ли хороша производительность запросов в этом случае.
Мое r-дерево будет содержать несколько тысяч записей, но, скорее всего, меньше 100 000. Теперь мой вопрос: есть ли серьезные проблемы с производительностью при использовании сопоставленных файлов по сравнению с использованием стандартных объектов? Кроме того, если создание R*-дерева примерно из 100 000 значений не занимает много времени (я мог бы хранить все ограничивающие рамки и соответствующие ключи/данные в файле), то лучше пропустить сопоставленный файл и просто создавать дерево каждый раз, когда я запускаю программу?
Надеюсь, кто-нибудь сможет мне здесь помочь, так как документация на самом деле не предоставляет много информации (хотя она все же намного лучше, чем документация libspacialindex).