OsmSharp - v2.0!

Version 2 of the OsmSharp library is released! Among many improvements the most important are several performance improvements. I did some tests to verify the them with each change I made.

 

Performance Tests
Test Measured (Seconds) Percentage
Unmodified 11.22 0.00%
Modified code for resolving points to use smaller increases in search raduis. 10.72 4.46%
Modified short distance calculations using Equirectangular approximation 10.54 6.06%
Modified the graph class to take into account the exceptions before weight calculations. 9.05 19.34%
Modified the graph class to check turnrestrictions before weight calculations. 8.17 27.18%
Removed double checks in graph interpreter. 8.12 27.63%
Changed the to-list in dykstra to a hashset. 5.87 47.68%
Changed the sortedset collection to the .NET 4 variant. 6.25 44.30%
Changed the sortedset collection to an hashset. 6.12 45.45%
Improved the Equirectangular approximation and removed some castings. 5.78 48.48%
Change the regular graph into a sparse graph. 3.025 73.04%

 

These test are averages of 10 test runs using only a small test instance. I have noticed even better increase in perfomance when testing on large instances. The code for executing these tests is on sourceforge!

Another improvement is checking if a point is reachable before routing to it, important for error-checking the osm data. More about this later.

I also started creating basic tutorials to help usage of the library for developers. See the osm wiki!

Anyway, here is the new version:

Latest: OsmSharp_v2.0.4340.zip

Wiki: http://wiki.openstreetmap.org/wiki/OsmSharp

SourceForge: http://sourceforge.net/projects/osmsharp/

Don't hesistate to contact me if you have any questions!