We are just picking our heads up from an intense three week performance sprint on Mapnik and Carto — the core map rendering components powering our map design studio TileMill — and we are happy to report a greater than 30% performance boost. Many of these improvements will be available soon in the core TileMill app but several in Mapnik are already live in TileMill 0.5.1 rolled out last Friday.
The graph below shows Mapnik’s speed under high load, when these new performance features really shine.
This recent speed win is in addition to several other recent performance gains in TileMill. The last few releases have leveraged scalable interactivity using UTFGrids and key performance APIs in Mapnik like metatiling, which helped us make TileMil twice as fast in the 0.4 release.
As you can see, we are not resting when it comes to finding ways to boost the performance of our mapping stack. Fast maps open doors. But to do this properly you need a set of rendering benchmarks that expose a hard problem set. So when this year’s FOSS4G rendering benchmark got underway, I decided to enter Mapnik again and proposed the use an extract of OpenStreetMap data for Colorado (the conference location of both FOSS4G and State of the Map the weekend before) imported with imposm. The MapServer team, who leads and organizes the benchmark each year, proposed a stylesheet each competitor should match, and the race was on soon after.
The task of dynamic rendering of OpenStreetMap data — its large size and complexity, combined with the unique needs of multi-scale cartography, make it an excellent test case. In terms of TileMill, custom styling of OpenStreetMap data should be possible without compromising on beauty or speed. As AJ notes in his post on the OSM Bright stylesheet, we’ve started designing stylesheets highly tailored to the very fast PostGIS schema of the imposm tool.
In short, a small dose of healthy competition is helping drive creative ideas for performance. As you can see from our ambitious set of milestones, we’re still hard at work at optimizing several things that are classically expensive about OpenStreetMap rendering like label placement, line rendering, PostGIS datasources, and image encoding, which is especially difficult with many colors and many blank tiles.
Stay tuned for more updates soon. We’re seeing some great opportunities for TileMill to expose more advanced options to fast track style optimization.