[mapserver-dev] fastpath 4326->3857 reprojections

Stephen Woodbridge woodbri at swoodbridge.com
Sat Feb 11 10:02:43 EST 2012


Wow! impressive results. While I know 3857 is the official code it would 
be nice if the patch also recognized 900913 as an alias for 3857, 
because it has been in common use for a few years.

Thanks,
   -Steve W

On 2/11/2012 4:37 AM, thomas bonfort wrote:
> Hi all,
>
> During the codesprint I talked to Daniel about a possible speedup
> patch we could use to bypass going through proj when performing the
> common 4326 to 3857 (google mercator) reprojections. During my trip
> back from the codesprint I implemented a quick patch that does this,
> and I think that the benefits are sufficiently important under this
> (rather common) test case to merit being pushed to trunk.
>
> test-case:
>   - using the mapserver-utils osm mapfile, we seed the first 6 zoom
> levels of the google-mercator grid. Depending on the zoom level, this
> mapfile has two (land and borders) or one (borders) layers that need
> to go through reprojection. There are between 1 and 4 other layers
> that are already in 3857 and therefore do not need reprojecting.
>   - the seeding is done with the mapcache seeding tool, which can be
> configured to use multiple threads to do parallel rendering. The
> seeding is done by directly using the libmapserver api (i.e. direct
> calls to msDrawMap, not going through curl http getmap requests).
>   - bug 4041 (http://trac.osgeo.org/mapserver/ticket/4041) contains a
> patch to avoid locking inside mapserver around proj calls, for trunk
> versions of proj. In the following result spreadsheet "with/without
> 480" refers to the fact that this patch is applied or not (480 stands
> for version 4.8.0 of proj)
>
> without further ado, here's the resulting spreadsheet, which gives the
> time in seconds needed to entirely seed the first 6 zoom levels:
>
> https://docs.google.com/spreadsheet/pub?key=0AnCiCdIXpTHidHJ0YzVmSW54WncwZ2lGSS1wQ2xNZHc&output=html
>
> tl;dr
>
> - if we factor out thread locking (which concerns the cgi/fastcgi
> performance), the speedup is x 2.5
> - in the multithreaded seeding case, the speedup is x 37
>
> --
> thomas
> _______________________________________________
> mapserver-dev mailing list
> mapserver-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapserver-dev



More information about the mapserver-dev mailing list