Page:
Benchmark Notes
Pages
A perfect testcase
API changes between v2.0 and v2.1
API changes between v3.0 and v3.1
AWS Lambda
About Mapnik
AlsoFilter
Api changes between v2.1 and v2.2
Api changes between v2.2 and v2.3
Api changes between v2.3 and v3.0
ArchInstallation
Aspect Fix Mode
Benchmark Notes
BoundsClipping
BrokenExceptions
BuildingSymbolizer
CSV Plugin
CairoVersions
CentOS_RHEL
ChangeLog
Code sprint
CodingStandards
Compiler Notes
Compositing
Contributing
DebianInstallation
DebugSymbolizer
DebuggingMapnik
DemoGallery
DeveloperTopics
DevelopingPlugins
Development
ElseFilter
ExampleCode
Expression
FasterCompiling
Fasterlabeling
Filter
FontSet
FreeBSDInstallation
GDAL
GEOS
GSOC Ideas
GSOC2010
GSOC2010_Application
GSOC2010_Ideas
GSOC2011
GSOC2011_Ideas
GeoJSON Plugin
GettingStarted
GettingStartedInPython
GettingStartedInXML
GlyphSymbolizer
GroupSymbolizer
Grouped rendering
Gsoc2012 application
Gsoc2012
HaitiStyles
Home
Ideas
Ideas_Compositing
Ideas_FutureMapnik
Image IO
InstallationTroubleshooting
InternationalText
IntroductionToGIS
Kismet
LabelingSupport
Layer
LearningMapnik
Legending
LinePatternSymbolizer
LineSymbolizer
LinuxInstallation
Logging
MacInstallation
MacInstallationSource
MacInstallation_Homebrew
MacPostGIS_Setup
MacPythonUpgradeIssues
ManagingLargeXmlFiles
MapDesign
Mapnik Development
Mapnik Installation
Mapnik with wxPython
Mapnik2
Mapnik2_Changes
MapnikCodeSprint
MapnikCodeSprint_MCS01
MapnikCodeSprint_MCS01_Location
MapnikCodeSprint_MCS01_Results
MapnikCodeSprint_MCS01_Schedule
MapnikCodeSprint_MCS02
MapnikCoreConcepts
MapnikDependencies
MapnikInstallationSvn
MapnikReferences
MapnikReleaseSteps
MapnikReleases
MapnikRenderers
MapnikTutorials
MapnikUtilities
MapnikViewer
Mapnikinstallation
MarkersSymbolizer
MaxScaleDenominator
MemoryDatasource
MetaWriter
MinScaleDenominator
ModServer
Nik2Img
Notes and caveats
OCCI
OGR
OpenSolarisInstallation
OpenSolarisInstallation_32bit
OpenSolarisInstallation_64bit
OpenSolarisInstallation_TroubleShooting
OpenSuse
OpenSuseInstallation
OptimizeRenderingWithPostGIS
OsmPlugin
OutputFormats
PackageBuilding
Paleoserver
Path Expression
PgRaster
PluginArchitecture
PointSymbolizer
PolygonPatternSymbolizer
PolygonSymbolizer
PostGIS
Postgis async
Python Plugin
Python3k
RFC: Raster color interpretation
Raster
RasterColorizer
RasterSymbolizer
Rasterlite
Related projects and utilities
Release0.6.0
Release0.6.1
Release0.7.0
Release0.7.1
Release0.7.2
Release2.0.0
Release2.0.1
Release2.0.2
Release2.1.0
Release2.2.0
Runtime Logging
SQLite
SVG support
Scale factor
ScaleAndPpi
ShapeFile
ShieldSymbolizer
ShieldSymbolizerTests
Style
StyleShare
Svg rendering gochas
SymbologySupport
Text Rendering Overview
TextSymbolizer
Trac to Github wiki migration notes
Troubleshooting
UbuntuInstallation
UbuntuInstallationOld
UsingCustomFonts
UsingScons
WindowsInstallation
World population tutorial
XMLConfigReference
XmlFormatDiscussion
iOS
mapnik.Datasource
mapnik.Layer
mapnik.Map
my choice
No results
3
Benchmark Notes
artemp edited this page 2013-04-18 09:28:55 -07:00
Log of benchmarking runs using the benchmark/run.cpp
tool available in Mapnik >= 2.2.x
OS X 10.8, libstdc++, April 18, 2013, Lots of Chrome tabs open :)
$ mapnik-config --git-describe
v2.1.0-1076-g60c6592
$ clang++ -v
Apple LLVM version 4.2 (clang-425.0.27) (based on LLVM 3.2svn)
Target: x86_64-apple-darwin12.3.0
Thread model: posix
~/projects/mapnik[master]$ ./benchmark/run
1) encoding blank image as png: 170 milliseconds
2) encoding multicolor image as png8:m=h: 13660 milliseconds
3) threaded -> encoding blank image as png: 50 milliseconds
4) threaded -> encoding multicolor image as png8:m=h: 4960 milliseconds
5) double to string conversion with std::ostringstream: 1060 milliseconds
6) double to string conversion with mapnik::util_to_string: 270 milliseconds
7) double to string conversion with snprintf: 260 milliseconds
8) threaded -> double to string conversion with std::ostringstream: 124930 milliseconds
9) threaded -> double to string conversion with mapnik::util_to_string: 800 milliseconds
10) threaded -> double to string conversion with snprintf: 820 milliseconds
11) threaded -> lonlat -> merc coord transformation (epsg): 2110 milliseconds
12) threaded -> merc -> lonlat coord transformation (epsg): 2120 milliseconds
13) threaded -> lonlat -> merc coord transformation (literal): 3900 milliseconds
14) threaded -> merc -> lonlat coord transformation (literal): 3900 milliseconds
15) threaded -> expression parsing with grammer per parse: 8680 milliseconds
16) threaded -> expression parsing by re-using grammar: 1760 milliseconds
17) threaded -> rule caching using boost::move: 570 milliseconds
18) threaded -> rule caching using heap allocation: 460 milliseconds
19) threaded -> clipping polygon with agg_conv_clipper: 3320 milliseconds
20) threaded -> clipping polygon with mapnik::polygon_clipper: 5090 milliseconds
21) threaded -> font_engihe: created 220000 faces in : 3280 milliseconds
OS X 10.8, c++11/libc++, April 18, 2013
$ mapnik-config --git-describe
v2.1.0-1097-g21b9327
$ clang++ --version
clang version 3.3 (179091)
Target: x86_64-apple-darwin12.3.0
Thread model: posix
1) encoding blank image as png: 170 milliseconds
2) encoding multicolor image as png8:m=h: 13550 milliseconds
3) threaded -> encoding blank image as png: 40 milliseconds
4) threaded -> encoding multicolor image as png8:m=h: 4690 milliseconds
5) double to string conversion with std::ostringstream: 450 milliseconds
6) double to string conversion with mapnik::util_to_string: 240 milliseconds
7) double to string conversion with snprintf: 250 milliseconds
8) threaded -> double to string conversion with std::ostringstream: 2280 milliseconds
9) threaded -> double to string conversion with mapnik::util_to_string: 650 milliseconds
10) threaded -> double to string conversion with snprintf: 640 milliseconds
11) threaded -> lonlat -> merc coord transformation (epsg): 450 milliseconds
12) threaded -> merc -> lonlat coord transformation (epsg): 450 milliseconds
13) threaded -> lonlat -> merc coord transformation (literal): 2660 milliseconds
14) threaded -> merc -> lonlat coord transformation (literal): 2680 milliseconds
15) threaded -> expression parsing with grammer per parse: 4600 milliseconds
16) threaded -> expression parsing by re-using grammar: 1100 milliseconds
17) threaded -> rule caching using boost::move: 320 milliseconds
18) threaded -> rule caching using heap allocation: 330 milliseconds
19) threaded -> clipping polygon with agg_conv_clipper: 2400 milliseconds
20) threaded -> clipping polygon with mapnik::polygon_clipper: 3320 milliseconds
21) threaded -> font_engihe: created 220000 faces in : 3480 milliseconds