4 ms·
I recently did an evaluation of Valhalla, ORSM, and Graphhopper for routing based on openstreetmap data. Valhalla was nice in that it could preprocess and serv
by zylepe 8y ago
I recently did an evaluation of Valhalla, ORSM, and Graphhopper for routing based on openstreetmap data.
Valhalla was nice in that it could preprocess and serve results with only a few GB of RAM, but it could only handle <1rps as the end was more than a few miles from the start since it doesn’t use contraction hierarchies.
OSRM was super fast, especially for very short routes (>1k rps on a single core) but it requires 300+GB of RAM to preprocess the world and 64GB of RAM to serve direction requests which gets a bit too expensive for me.
Graphhopper was nearly as fast as OSRM for short routes, but just as fast for longer routes. It can preprocess the world with only 64GB of RAM, and can serve direction requests happily on machine with only 16GB of RAM.
I ended up going with Graphhopper, but still may need to shut down my site...
- Axtrix 8y agoI'm going to do a similar test to evaluate some routing alternatives. How did you perform your tests?
- zylepe 8y agoFor routing performance I ran them each locally with instructions from their github repos and the OSM extracts for a single state or city from https://download.geofabrik.de https://download.geofabrik.de then used https://github.com/codesenberg/bombardier https://github.com/codesenberg/bombardier to test latency/throughput with sample requests. For resources to preprocess the world I ran Valhalla on my laptop and it preprocessed the world overnight. For graphhopper I kept running it on bigger and bigger digitalocean droplets until it just barely finished on their $640/month 64gb cpu-optimized droplet in about 12h. I didn’t even try osrm after reading that it needed about 300gb of ram. Let me know if you have any better findings!