Holy Smokes TileMill is Fast

It is fairly unfair of me to talk about tile cache generation time for the county via AGS, GeoServer, and TileMill. They are all running on very different machines, and AGS is using a different database backend than GeoServer and TileMill. The base maps are all different as well.

Plus, if you have read your EULA you know that publishing a benchmark for an Esri product could result in lawyers rappelling from helicopters and a black bag over your head.

So, this isn’t fair, and it isn’t a benchmark. Just some observations. Note that AGS caches the data in its native state plane for a variety of (bad) reasons; GeoServer and TileMill transform the data to the One True Projection on the fly.


  • Our AGS and SDE servers are beasts. The units we use to measure the time AGS takes to make a base map (say levels 8 to 18) tile set for the county is days.

  • GeoServer is running on a decent if aging server (the typical 1U dual CPU cheapest-Dell-offers job). PostGIS is on a fairly low-powered virtual machine. The units we use to measure the time GeoServer takes to make the tiles is hours. As in ~7 of them.

  • TileMill running on my laptop while I was simultaneously watching lolcats on YouTube and yelling at somebody on Reddit did this:


The units you use to measure the time it takes for TileMill to generate a cache for the county is minutes. I ran it again today to make sure I wasn’t nuts. 00:56:12s.