Simple non-academic performance comparison of available open source implementations of R-tree spatial index using linear, quadratic and R* balancing algorithms as well as bulk loading.
Simple non-academic performance comparison of available open source implementations of R-tree spatial index using linear, *quadratic and R-star balancing algorithms as well as bulk loading (Sort-Tile-Recurse or combined methods).
List of currently measured libraries:
More libraries have been suggested, see the GitHub Issues.
First prototype, API usage and parameters matched as much as I could, hopefully without major bugs.
TODO: explain details
Complete set of result logs in results directory.
HW: Intel(R) Xeon(R) CPU E5-2687W 0 @ 3.10GHz, 16 GB RAM; OS: Windows 7 64-bit SW: Visual Studio 2012
bgi
- boost::geometry::index (_rt is dynamic variant: L,Q,R etc. parameters specified at run-time)
lsi
- libspatialindex
ct
- Boost.Geometry-only, compile-time specification of rtree parameters
rt
(or non suffix) - Boost.Geometry-only, run-time specification of rtree parameters
L
- linear
Q
- quadratic
R
- rstar
itr (or no suffix)
- iterative insertion method of building rtree
blk
- bulk loading method of building R-tree (Split-Tile-Recurse for lsi
, custom algorithm for bgi
)
insert 1000000 - number of objects small random boxes
query 100000 - number of instersection-based queries with random boxes 10x larger than those inserted
stats generated using lsi's API and purposely written visitor for Boost.Geometry (not yet in Boost trunk)
This project is driven by curiosity and for my own purposes, with hope to obtain useful and interesting results, for myself and others too. I do not have any objective of making ultimate performance shootout. This is not a rocket science, but a simple set of C++ programs, with likelyhood of bugs or inconsistencies. Found any, please report. Comments and improvements are always welcome!
Distributed under the Boost Software License, Version 1.0. See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.