Mapnik2 Performance, September 2011

3,207 views
3,001 views

Published on

Dane previewed the performance features in the upcoming Mapnik 2 release at the State of the Map conference. Video of the talk is here: http://vimeo.com/28898061.

Published in: Technology, Art & Photos
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,207
On SlideShare
0
From Embeds
0
Number of Embeds
810
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Mapnik2 Performance, September 2011

  1. 1. Mapnik 2 Performance Optimizations Dane Springmeyer | Development SeedSunday, September 11, 2011
  2. 2. Breakdown • Core (rendering pipeline) • Vector Output • Datasources • Image encoding • StylingSunday, September 11, 2011
  3. 3. Geometry Storage faster, 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
  4. 4. Spirit2 Parsing Grammer based string parsing (expressions, filters, colors, wkt, dbf, svg transforms) Artem / Weait Contribution type: coreSunday, September 11, 2011
  5. 5. Proj4 reprojection Leveraging 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
  6. 6. Raster reprojection New and fast: mesh based interpolation Alberto Valverde - MeteoGrid/Madrid type: coreSunday, September 11, 2011
  7. 7. Faster AA lines New 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
  8. 8. Label Placement Faster math New options for fast placements or return early (minimum-path-length) Konstatin Kaefer / Herman Kraus type: coreSunday, September 11, 2011
  9. 9. Clang support 2x speed of compiles than gcc Supports link-time optimization (gold linker and libLTO) type: coreSunday, September 11, 2011
  10. 10. MetaWriters Metadata 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
  11. 11. grid_renderer Highly 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
  12. 12. MemoryDatasource Dynamic, direct in-memory creation to render from http/json (think couchdb) type: datasourcesSunday, September 11, 2011
  13. 13. Other new Plugins rasterlite (wavelets in sqlite) mongodb (experimental: github/ springmeyer) type: datasourcesSunday, September 11, 2011
  14. 14. Postgres pool Fixed to allow fuller utilization and benefit of pg connections between many threads type: datasourcesSunday, September 11, 2011
  15. 15. Shapefile mmap Ultra fast shared memory-mapped region cache - > 5x faster i/o Artem / FOSS4G “WMS Shootout” type: datasourcesSunday, September 11, 2011
  16. 16. SQLite * rtree indexes * shared cache * fast, lock free access between threads (Almost as fast as shapefiles now in mapnik) type: datasourcesSunday, September 11, 2011
  17. 17. 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
  18. 18. Filter-mode=first Option on <Style /> to break after first rule match Critical for CSS support and avoiding combinatorial explosion type: stylingSunday, September 11, 2011
  19. 19. Feature Caching Option on Layer: <Layer feature-caching=”true”/> Allows re-use of features within layer with multiple styles (road-casing) type: stylingSunday, September 11, 2011
  20. 20. Expressions framework for runtime evaluation of styling properties <PolygonSymbolizer color=”[field]” /> type: stylingSunday, September 11, 2011
  21. 21. Raster Colorizer framework 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
  22. 22. Carto New CSS language/parser (js, C++) Inherits features of less.js (variables,nested styles,mixins) type: stylingSunday, September 11, 2011
  23. 23. SVG Support SVG rendering of icons Gradients, transforms (rotate/scale/shear) http://developmentseed.org/ type: stylingSunday, September 11, 2011
  24. 24. Mapnik 2 release • Next week, more than a year in process • Try now: sudo add-apt-repository ppa:mapnik/nightly-trunk sudo apt-get update sudo apt-get install libmapnik2 libmapnik2-dev mapnik2-utils • Learn more: http://trac.mapnik.org/ milestone/Mapnik%202.0Sunday, September 11, 2011
  25. 25. Thank you! Dane Springmeyer twitter/springmeyer github/springmeyerSunday, September 11, 2011

×