Performance Dashboard Recycling Performance Period Total September 2012 – September 2013
Mapnik2 Performance, September 2011
-
Upload
development-seed -
Category
Technology
-
view
3.241 -
download
2
description
Transcript of Mapnik2 Performance, September 2011
![Page 1: Mapnik2 Performance, September 2011](https://reader033.fdocuments.us/reader033/viewer/2022051817/547ba313b4af9fb4158b4f17/html5/thumbnails/1.jpg)
Mapnik 2Performance Optimizations
Dane Springmeyer | Development Seed
Sunday, September 11, 2011
![Page 2: Mapnik2 Performance, September 2011](https://reader033.fdocuments.us/reader033/viewer/2022051817/547ba313b4af9fb4158b4f17/html5/thumbnails/2.jpg)
Breakdown
• Core (rendering pipeline)
• Vector Output
• Datasources
• Image encoding
• Styling
Sunday, September 11, 2011
![Page 3: Mapnik2 Performance, September 2011](https://reader033.fdocuments.us/reader033/viewer/2022051817/547ba313b4af9fb4158b4f17/html5/thumbnails/3.jpg)
Geometry Storagefaster, more memory efficient allocator
japan quake / massive landuse polygons
why tile.osm.org is already running mapnik trunk
Artem/MapQuest contribution
type: coreSunday, September 11, 2011
![Page 4: Mapnik2 Performance, September 2011](https://reader033.fdocuments.us/reader033/viewer/2022051817/547ba313b4af9fb4158b4f17/html5/thumbnails/4.jpg)
Spirit2 ParsingGrammer based string parsing
(expressions, filters, colors, wkt, dbf, svg transforms)
Artem / Weait Contribution
type: coreSunday, September 11, 2011
![Page 5: Mapnik2 Performance, September 2011](https://reader033.fdocuments.us/reader033/viewer/2022051817/547ba313b4af9fb4158b4f17/html5/thumbnails/5.jpg)
Proj4 reprojectionLeveraging lock-free transforms if >= 4.8
4.8 not yet released so you need proj trunk
Tom Hughes - Mapnik London 2010 sprint
type: coreSunday, September 11, 2011
![Page 6: Mapnik2 Performance, September 2011](https://reader033.fdocuments.us/reader033/viewer/2022051817/547ba313b4af9fb4158b4f17/html5/thumbnails/6.jpg)
Raster reprojection
New and fast: mesh based interpolation
Alberto Valverde - MeteoGrid/Madrid
type: coreSunday, September 11, 2011
![Page 7: Mapnik2 Performance, September 2011](https://reader033.fdocuments.us/reader033/viewer/2022051817/547ba313b4af9fb4158b4f17/html5/thumbnails/7.jpg)
Faster AA linesNew option to use 2-3X faster anti-aliased line rasterization:
<LineSymbolizer rasterizer=”fast” />
Drops short segments, less precise line caps/joins
type: coreSunday, September 11, 2011
![Page 8: Mapnik2 Performance, September 2011](https://reader033.fdocuments.us/reader033/viewer/2022051817/547ba313b4af9fb4158b4f17/html5/thumbnails/8.jpg)
Label PlacementFaster math
New options for fast placements or return early (minimum-path-length)
Konstatin Kaefer / Herman Kraus
type: coreSunday, September 11, 2011
![Page 9: Mapnik2 Performance, September 2011](https://reader033.fdocuments.us/reader033/viewer/2022051817/547ba313b4af9fb4158b4f17/html5/thumbnails/9.jpg)
Clang support
2x speed of compiles than gcc
Supports link-time optimization (gold linker and libLTO)
type: coreSunday, September 11, 2011
![Page 10: Mapnik2 Performance, September 2011](https://reader033.fdocuments.us/reader033/viewer/2022051817/547ba313b4af9fb4158b4f17/html5/thumbnails/10.jpg)
MetaWritersMetadata collected during image rendering (in same pass).
Can be output as GeoJSON or streamed using mapnik::memory_datasource
Hermann / GSOC project
type: vector outputSunday, September 11, 2011
![Page 11: Mapnik2 Performance, September 2011](https://reader033.fdocuments.us/reader033/viewer/2022051817/547ba313b4af9fb4158b4f17/html5/thumbnails/11.jpg)
grid_rendererHighly optimized hit grids encoded as utf8 feature id’s in json
Invisible, tiled interactivity
http://developmentseed.org/blog/2011/sep/07/see-how-utfgrid-works-visible-map/
type: vector outputSunday, September 11, 2011
![Page 12: Mapnik2 Performance, September 2011](https://reader033.fdocuments.us/reader033/viewer/2022051817/547ba313b4af9fb4158b4f17/html5/thumbnails/12.jpg)
MemoryDatasource
Dynamic, direct in-memory creation to render from http/json (think couchdb)
type: datasourcesSunday, September 11, 2011
![Page 13: Mapnik2 Performance, September 2011](https://reader033.fdocuments.us/reader033/viewer/2022051817/547ba313b4af9fb4158b4f17/html5/thumbnails/13.jpg)
Other new Pluginsrasterlite (wavelets in sqlite)
mongodb (experimental: github/springmeyer)
type: datasourcesSunday, September 11, 2011
![Page 14: Mapnik2 Performance, September 2011](https://reader033.fdocuments.us/reader033/viewer/2022051817/547ba313b4af9fb4158b4f17/html5/thumbnails/14.jpg)
Postgres pool
Fixed to allow fuller utilization and benefit of pg connections between many threads
type: datasourcesSunday, September 11, 2011
![Page 15: Mapnik2 Performance, September 2011](https://reader033.fdocuments.us/reader033/viewer/2022051817/547ba313b4af9fb4158b4f17/html5/thumbnails/15.jpg)
Shapefile mmap
Ultra fast shared memory-mapped region cache - > 5x faster i/o
Artem / FOSS4G “WMS Shootout”
type: datasourcesSunday, September 11, 2011
![Page 16: Mapnik2 Performance, September 2011](https://reader033.fdocuments.us/reader033/viewer/2022051817/547ba313b4af9fb4158b4f17/html5/thumbnails/16.jpg)
SQLite* rtree indexes
* shared cache
* fast, lock free access between threads
(Almost as fast as shapefiles now in mapnik)
type: datasourcesSunday, September 11, 2011
![Page 17: Mapnik2 Performance, September 2011](https://reader033.fdocuments.us/reader033/viewer/2022051817/547ba313b4af9fb4158b4f17/html5/thumbnails/17.jpg)
PNG Size and Speed
* faster, more flexible png quantiziation
* fixed palettes - ultra fast color reduction (save on encoding time without quant cost)
* direct access to zlib fast compression
type: image encodingSunday, September 11, 2011
![Page 18: Mapnik2 Performance, September 2011](https://reader033.fdocuments.us/reader033/viewer/2022051817/547ba313b4af9fb4158b4f17/html5/thumbnails/18.jpg)
Filter-mode=firstOption on <Style /> to break after first rule match
Critical for CSS support and avoiding combinatorial explosion
type: stylingSunday, September 11, 2011
![Page 19: Mapnik2 Performance, September 2011](https://reader033.fdocuments.us/reader033/viewer/2022051817/547ba313b4af9fb4158b4f17/html5/thumbnails/19.jpg)
Feature CachingOption on Layer:
<Layer feature-caching=”true”/>
Allows re-use of features within layer with multiple styles (road-casing)
type: stylingSunday, September 11, 2011
![Page 20: Mapnik2 Performance, September 2011](https://reader033.fdocuments.us/reader033/viewer/2022051817/547ba313b4af9fb4158b4f17/html5/thumbnails/20.jpg)
Expressions
framework for runtime evaluation of styling properties
<PolygonSymbolizer color=”[field]” />
type: stylingSunday, September 11, 2011
![Page 21: Mapnik2 Performance, September 2011](https://reader033.fdocuments.us/reader033/viewer/2022051817/547ba313b4af9fb4158b4f17/html5/thumbnails/21.jpg)
Raster Colorizerframework for runtime evaluation of styling properties
<RasterSymbolizer> <RasterColorizer default-mode="discrete" default-color="white" > <stop color="#222222" value = "0" mode = "linear" /> <stop color="#EEEEEE" value = "25" /> </RasterColorizer> </RasterSymbolizer>
type: stylingSunday, September 11, 2011
![Page 22: Mapnik2 Performance, September 2011](https://reader033.fdocuments.us/reader033/viewer/2022051817/547ba313b4af9fb4158b4f17/html5/thumbnails/22.jpg)
Carto
New CSS language/parser (js, C++)
Inherits features of less.js (variables,nested styles,mixins)
type: stylingSunday, September 11, 2011
![Page 23: Mapnik2 Performance, September 2011](https://reader033.fdocuments.us/reader033/viewer/2022051817/547ba313b4af9fb4158b4f17/html5/thumbnails/23.jpg)
SVG SupportSVG rendering of icons
Gradients, transforms (rotate/scale/shear)
http://developmentseed.org/
type: stylingSunday, September 11, 2011
![Page 24: Mapnik2 Performance, September 2011](https://reader033.fdocuments.us/reader033/viewer/2022051817/547ba313b4af9fb4158b4f17/html5/thumbnails/24.jpg)
Mapnik 2 release
• Next week, more than a year in process
• Try now:sudo add-apt-repository ppa:mapnik/nightly-trunksudo apt-get updatesudo apt-get install libmapnik2 libmapnik2-dev mapnik2-utils
• Learn more: http://trac.mapnik.org/milestone/Mapnik%202.0
Sunday, September 11, 2011
![Page 25: Mapnik2 Performance, September 2011](https://reader033.fdocuments.us/reader033/viewer/2022051817/547ba313b4af9fb4158b4f17/html5/thumbnails/25.jpg)
Thank you!
Dane Springmeyertwitter/springmeyergithub/springmeyer
Sunday, September 11, 2011