SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
QGIS Performance Improvements
Scottish QGIS User Group
March 19th 2014
Martin Dobias
Lutra Consulting
Who are we?
● A group of consulting engineers specialising in:
● GIS (Open Source GIS)
● Software Development
● Numerical Modelling (in the water engineering sector)
Introduction to Python
About me
● With Lutra Consulting since autumn 2013
● Background in computer science
● Self-taught in GIS
● QGIS developer since 2005
● Python support
● Advanced symbology and labeling support
● Expressions
● Under the hood improvements (libraries, vectors, canvas, ...)
QGIS Performance Improvements
Performance Problems in QGIS
● DEMO
● Slow rendering
● Every map refresh can take several seconds with complex projects
● Rendering freezes user interface
● User has to wait with any actions until the rendering has finished
QGIS Performance Improvements
Rendering in QGIS (1)
QGIS Performance Improvements
Rendering in QGIS (2)
QGIS Performance Improvements
Parallelization
● Algorithms vary significantly in how parallelizable they are
● Embarrassingly parallel problems
● e.g. rendering of 3D scenes, serving static files from web server
● Inherently serial problems
● e.g. iterative numerical methods
QGIS Performance Improvements
Parallel Rendering in QGIS (1)
● Each layer rendered to a separate image, then composed together
● N-times faster!
● Framework to handle scheduling (QtConcurrent)
● Use all available CPU cores
● Automatic load balancing
QGIS Performance Improvements
Parallel Rendering in QGIS (2)
● Real world
● Speed improvement depends on data
● One complex layer may dominate total time → smaller speed improvement
● Lower waiting time with remote services → higher speed improvement
QGIS Performance Improvements
User Interface Freeze
● Application waits for events and handles them
● When busy, events need to wait to be processed
● Move the rendering to the background!
QGIS Performance Improvements
Rendering in Background
● Users may do some changes that affect rendering while rendering is still in progress
● e.g. change layer style, delete a layer
● Possible solutions:
● Do nothing
● Do not allow such actions
● Make sure all such actions are safe
QGIS Performance Improvements
Rendering in Background - Problems
● Data used for rendering must be protected from simultaneous access
● Complex task, needs to be addressed rigidly
● Locking
● Waiting
● If not done properly: dead-locks, crashes
● Copying
● May add overhead
● QGIS uses both locking and copying when appropriate
QGIS Performance Improvements
DEMO
QGIS Performance Improvements
Project History
● Summer 2010: Started as a Google Summer of Code (GSoC) project
● Spring 2013: Updates to QGIS infrastructure before the 2.0 release (API changes)
● Winter 2013: Implementation of the parallel/background rendering
● Spring 2014: Merged into QGIS master branch, will be in 2.4 release
QGIS Performance Improvements
Looking into the Future...
● Cancellation of raster data requests (needs also work in GDAL)
● Vector caching
● Faster labeling and vector reprojection
● Rendering with OpenGL
QGIS Performance Improvements
Summary
● QGIS 2.4 will be
● More interactive when browsing maps
● Able to use all available CPUs for rendering
● Q & A
QGIS Performance Improvements
Tips for Better Performance
● Vector layers: use spatial index
● Raster layers: use overviews
● Rendering configuration
● Turn on render caching
● Turn off anti-aliasing
● Vector styling
● Thin lines
● Polygons without border
● Without data-defined properties
● Data store specific features
● PostGIS – disable SSL mode on local network
QGIS Performance Improvements

Contenu connexe

Tendances

CodeFest 2014. Vedran Mikulic — Booking Fast Development
CodeFest 2014. Vedran Mikulic — Booking Fast DevelopmentCodeFest 2014. Vedran Mikulic — Booking Fast Development
CodeFest 2014. Vedran Mikulic — Booking Fast Development
CodeFest
 
Bachelor's Thesis Presentation (shortened)
Bachelor's Thesis Presentation (shortened)Bachelor's Thesis Presentation (shortened)
Bachelor's Thesis Presentation (shortened)
Nikita Kurpas
 
[Nuxeo World 2013] Roadmap 2014 - Product part
[Nuxeo World 2013] Roadmap 2014 - Product part[Nuxeo World 2013] Roadmap 2014 - Product part
[Nuxeo World 2013] Roadmap 2014 - Product part
Nuxeo
 

Tendances (20)

CodeFest 2014. Vedran Mikulic — Booking Fast Development
CodeFest 2014. Vedran Mikulic — Booking Fast DevelopmentCodeFest 2014. Vedran Mikulic — Booking Fast Development
CodeFest 2014. Vedran Mikulic — Booking Fast Development
 
Build, deploy and scale: Django, GraphQL and SPA (DjangoCon EU 2021)
Build, deploy and scale: Django, GraphQL and SPA  (DjangoCon EU 2021)Build, deploy and scale: Django, GraphQL and SPA  (DjangoCon EU 2021)
Build, deploy and scale: Django, GraphQL and SPA (DjangoCon EU 2021)
 
Building Websites using Drupal 7
Building Websites using Drupal 7Building Websites using Drupal 7
Building Websites using Drupal 7
 
Google cloud infrastructure workshop
Google cloud infrastructure workshopGoogle cloud infrastructure workshop
Google cloud infrastructure workshop
 
GraphQL API Crafts presentation
GraphQL API Crafts presentationGraphQL API Crafts presentation
GraphQL API Crafts presentation
 
Bachelor's Thesis Presentation (shortened)
Bachelor's Thesis Presentation (shortened)Bachelor's Thesis Presentation (shortened)
Bachelor's Thesis Presentation (shortened)
 
Extending and Integrating QlikView
Extending and Integrating QlikViewExtending and Integrating QlikView
Extending and Integrating QlikView
 
Sprint 16
Sprint 16Sprint 16
Sprint 16
 
Dataflow Visualization using ASCII DAG
Dataflow Visualization using ASCII DAGDataflow Visualization using ASCII DAG
Dataflow Visualization using ASCII DAG
 
GraphQL Bangkok Meetup 6.0
GraphQL Bangkok Meetup 6.0GraphQL Bangkok Meetup 6.0
GraphQL Bangkok Meetup 6.0
 
[Nuxeo World 2013] Roadmap 2014 - Product part
[Nuxeo World 2013] Roadmap 2014 - Product part[Nuxeo World 2013] Roadmap 2014 - Product part
[Nuxeo World 2013] Roadmap 2014 - Product part
 
Jenkins Workflow - An Introduction
Jenkins Workflow - An IntroductionJenkins Workflow - An Introduction
Jenkins Workflow - An Introduction
 
PouyaKarimiv12
PouyaKarimiv12PouyaKarimiv12
PouyaKarimiv12
 
Micro Services Intro
Micro Services IntroMicro Services Intro
Micro Services Intro
 
Design Summit - Technology Vision - Oleg Barenboim and Jason Frey
Design Summit - Technology Vision - Oleg Barenboim and Jason FreyDesign Summit - Technology Vision - Oleg Barenboim and Jason Frey
Design Summit - Technology Vision - Oleg Barenboim and Jason Frey
 
Building Fullstack Serverless GraphQL APIs In The Cloud
Building Fullstack Serverless GraphQL APIs In The CloudBuilding Fullstack Serverless GraphQL APIs In The Cloud
Building Fullstack Serverless GraphQL APIs In The Cloud
 
Introduction to-angular js
Introduction to-angular jsIntroduction to-angular js
Introduction to-angular js
 
Sprint 15
Sprint 15Sprint 15
Sprint 15
 
Sprint 61
Sprint 61Sprint 61
Sprint 61
 
Sprint 60
Sprint 60Sprint 60
Sprint 60
 

Similaire à QGIS UK: QGIS Performance Enhancements (Lutra Consulting)

State of GeoServer, GeoTools and Friends 2014
State of GeoServer, GeoTools and Friends 2014State of GeoServer, GeoTools and Friends 2014
State of GeoServer, GeoTools and Friends 2014
Jody Garnett
 
SFScon 2020 - Paolo Cavallini - QGIS Software and Community
SFScon 2020 - Paolo Cavallini - QGIS Software and CommunitySFScon 2020 - Paolo Cavallini - QGIS Software and Community
SFScon 2020 - Paolo Cavallini - QGIS Software and Community
South Tyrol Free Software Conference
 

Similaire à QGIS UK: QGIS Performance Enhancements (Lutra Consulting) (20)

QWC2 - modern web maps with QGIS Server
QWC2 - modern web maps with QGIS ServerQWC2 - modern web maps with QGIS Server
QWC2 - modern web maps with QGIS Server
 
2018 - Grupo QGIS Brasil e o lançamento do QGIS 3.4 LTR (Versão de Longo Prazo)
2018 - Grupo QGIS Brasil e o lançamento do QGIS 3.4 LTR (Versão de Longo Prazo)2018 - Grupo QGIS Brasil e o lançamento do QGIS 3.4 LTR (Versão de Longo Prazo)
2018 - Grupo QGIS Brasil e o lançamento do QGIS 3.4 LTR (Versão de Longo Prazo)
 
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
 
State of GeoServer, GeoTools and Friends 2014
State of GeoServer, GeoTools and Friends 2014State of GeoServer, GeoTools and Friends 2014
State of GeoServer, GeoTools and Friends 2014
 
Drupal Architecture and functionality
Drupal Architecture and functionality Drupal Architecture and functionality
Drupal Architecture and functionality
 
CartoDB Inside Out
CartoDB Inside OutCartoDB Inside Out
CartoDB Inside Out
 
GeoServer Feature FRENZY
GeoServer Feature FRENZYGeoServer Feature FRENZY
GeoServer Feature FRENZY
 
Using GIT for Everyone
Using GIT for EveryoneUsing GIT for Everyone
Using GIT for Everyone
 
Under the hood of the Altalis Platform
Under the hood of the Altalis PlatformUnder the hood of the Altalis Platform
Under the hood of the Altalis Platform
 
Berlin AWS meetup: here.com on AWS
Berlin AWS meetup: here.com on AWSBerlin AWS meetup: here.com on AWS
Berlin AWS meetup: here.com on AWS
 
NDGeospatialSummit2019 - Everything You Need to Know About ArcGIS Vector Tiles
NDGeospatialSummit2019 - Everything You Need to Know About ArcGIS Vector TilesNDGeospatialSummit2019 - Everything You Need to Know About ArcGIS Vector Tiles
NDGeospatialSummit2019 - Everything You Need to Know About ArcGIS Vector Tiles
 
QGIS - Free alternative to ArcMap
QGIS - Free alternative to ArcMapQGIS - Free alternative to ArcMap
QGIS - Free alternative to ArcMap
 
State of GeoServer 2.12
State of GeoServer 2.12State of GeoServer 2.12
State of GeoServer 2.12
 
What's coming in Airflow 2.0? - NYC Apache Airflow Meetup
What's coming in Airflow 2.0? - NYC Apache Airflow MeetupWhat's coming in Airflow 2.0? - NYC Apache Airflow Meetup
What's coming in Airflow 2.0? - NYC Apache Airflow Meetup
 
State of GeoServer 2.13
State of GeoServer 2.13State of GeoServer 2.13
State of GeoServer 2.13
 
GitBucket: Open source self-hosting Git server built by Scala
GitBucket: Open source self-hosting Git server built by ScalaGitBucket: Open source self-hosting Git server built by Scala
GitBucket: Open source self-hosting Git server built by Scala
 
Upcoming features in Airflow 2
Upcoming features in Airflow 2Upcoming features in Airflow 2
Upcoming features in Airflow 2
 
Multiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersMultiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for Publishers
 
SFScon 2020 - Paolo Cavallini - QGIS Software and Community
SFScon 2020 - Paolo Cavallini - QGIS Software and CommunitySFScon 2020 - Paolo Cavallini - QGIS Software and Community
SFScon 2020 - Paolo Cavallini - QGIS Software and Community
 
AirBNB's ML platform - BigHead
AirBNB's ML platform - BigHeadAirBNB's ML platform - BigHead
AirBNB's ML platform - BigHead
 

Plus de Ross McDonald

Plus de Ross McDonald (20)

Visualising school catchment areas - FOSS4GUK 2018
Visualising school catchment areas - FOSS4GUK 2018Visualising school catchment areas - FOSS4GUK 2018
Visualising school catchment areas - FOSS4GUK 2018
 
Using QGIS to create 3D indoor maps
Using QGIS to create 3D indoor mapsUsing QGIS to create 3D indoor maps
Using QGIS to create 3D indoor maps
 
Creating and indoor routable network with QGIS and pgRouting
Creating and indoor routable network with QGIS and pgRoutingCreating and indoor routable network with QGIS and pgRouting
Creating and indoor routable network with QGIS and pgRouting
 
Viewsheds and Advanced Calculations
Viewsheds and Advanced CalculationsViewsheds and Advanced Calculations
Viewsheds and Advanced Calculations
 
Using QGIS for ecological surveying
Using QGIS for ecological surveyingUsing QGIS for ecological surveying
Using QGIS for ecological surveying
 
Welcome to the 6th Scottish QGIS UK meeting
Welcome to the 6th Scottish QGIS UK meetingWelcome to the 6th Scottish QGIS UK meeting
Welcome to the 6th Scottish QGIS UK meeting
 
How deep is your loch?
How deep is your loch?How deep is your loch?
How deep is your loch?
 
Data capture with Leaflet and OpenStreetMap
Data capture with Leaflet and OpenStreetMapData capture with Leaflet and OpenStreetMap
Data capture with Leaflet and OpenStreetMap
 
Them thar hills: shadin', texturin', blendin'
Them thar hills: shadin', texturin', blendin'Them thar hills: shadin', texturin', blendin'
Them thar hills: shadin', texturin', blendin'
 
QGIS plugin for parallel processing in terrain analysis
QGIS plugin for parallel processing in terrain analysisQGIS plugin for parallel processing in terrain analysis
QGIS plugin for parallel processing in terrain analysis
 
Mapping narrative: QGIS in the humanities classrom
Mapping narrative: QGIS in the humanities classromMapping narrative: QGIS in the humanities classrom
Mapping narrative: QGIS in the humanities classrom
 
QGIS server: the good, the not-so-good and the ugly
QGIS server: the good, the not-so-good and the uglyQGIS server: the good, the not-so-good and the ugly
QGIS server: the good, the not-so-good and the ugly
 
QGIS UK Thank you for coming
QGIS UK Thank you for comingQGIS UK Thank you for coming
QGIS UK Thank you for coming
 
Decision support tools for forestry using open source software
Decision support tools for forestry using open source softwareDecision support tools for forestry using open source software
Decision support tools for forestry using open source software
 
Installing QGIS on a network
Installing QGIS on a networkInstalling QGIS on a network
Installing QGIS on a network
 
Pgrouting_foss4guk_ross_mcdonald
Pgrouting_foss4guk_ross_mcdonaldPgrouting_foss4guk_ross_mcdonald
Pgrouting_foss4guk_ross_mcdonald
 
Liam Mason QGIS Geoserver SLD
Liam Mason QGIS Geoserver SLDLiam Mason QGIS Geoserver SLD
Liam Mason QGIS Geoserver SLD
 
Phil Bartie QGIS PLPython
Phil Bartie QGIS PLPythonPhil Bartie QGIS PLPython
Phil Bartie QGIS PLPython
 
John Stevenson Volcanoes and FOSS4G Edinburgh
John Stevenson Volcanoes and FOSS4G EdinburghJohn Stevenson Volcanoes and FOSS4G Edinburgh
John Stevenson Volcanoes and FOSS4G Edinburgh
 
Roger Garbett - QGIS Print Composer
Roger Garbett - QGIS Print ComposerRoger Garbett - QGIS Print Composer
Roger Garbett - QGIS Print Composer
 

Dernier

%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 

Dernier (20)

%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 

QGIS UK: QGIS Performance Enhancements (Lutra Consulting)

  • 1. QGIS Performance Improvements Scottish QGIS User Group March 19th 2014 Martin Dobias Lutra Consulting
  • 2. Who are we? ● A group of consulting engineers specialising in: ● GIS (Open Source GIS) ● Software Development ● Numerical Modelling (in the water engineering sector) Introduction to Python
  • 3. About me ● With Lutra Consulting since autumn 2013 ● Background in computer science ● Self-taught in GIS ● QGIS developer since 2005 ● Python support ● Advanced symbology and labeling support ● Expressions ● Under the hood improvements (libraries, vectors, canvas, ...) QGIS Performance Improvements
  • 4. Performance Problems in QGIS ● DEMO ● Slow rendering ● Every map refresh can take several seconds with complex projects ● Rendering freezes user interface ● User has to wait with any actions until the rendering has finished QGIS Performance Improvements
  • 5. Rendering in QGIS (1) QGIS Performance Improvements
  • 6. Rendering in QGIS (2) QGIS Performance Improvements
  • 7. Parallelization ● Algorithms vary significantly in how parallelizable they are ● Embarrassingly parallel problems ● e.g. rendering of 3D scenes, serving static files from web server ● Inherently serial problems ● e.g. iterative numerical methods QGIS Performance Improvements
  • 8. Parallel Rendering in QGIS (1) ● Each layer rendered to a separate image, then composed together ● N-times faster! ● Framework to handle scheduling (QtConcurrent) ● Use all available CPU cores ● Automatic load balancing QGIS Performance Improvements
  • 9. Parallel Rendering in QGIS (2) ● Real world ● Speed improvement depends on data ● One complex layer may dominate total time → smaller speed improvement ● Lower waiting time with remote services → higher speed improvement QGIS Performance Improvements
  • 10. User Interface Freeze ● Application waits for events and handles them ● When busy, events need to wait to be processed ● Move the rendering to the background! QGIS Performance Improvements
  • 11. Rendering in Background ● Users may do some changes that affect rendering while rendering is still in progress ● e.g. change layer style, delete a layer ● Possible solutions: ● Do nothing ● Do not allow such actions ● Make sure all such actions are safe QGIS Performance Improvements
  • 12. Rendering in Background - Problems ● Data used for rendering must be protected from simultaneous access ● Complex task, needs to be addressed rigidly ● Locking ● Waiting ● If not done properly: dead-locks, crashes ● Copying ● May add overhead ● QGIS uses both locking and copying when appropriate QGIS Performance Improvements
  • 14. Project History ● Summer 2010: Started as a Google Summer of Code (GSoC) project ● Spring 2013: Updates to QGIS infrastructure before the 2.0 release (API changes) ● Winter 2013: Implementation of the parallel/background rendering ● Spring 2014: Merged into QGIS master branch, will be in 2.4 release QGIS Performance Improvements
  • 15. Looking into the Future... ● Cancellation of raster data requests (needs also work in GDAL) ● Vector caching ● Faster labeling and vector reprojection ● Rendering with OpenGL QGIS Performance Improvements
  • 16. Summary ● QGIS 2.4 will be ● More interactive when browsing maps ● Able to use all available CPUs for rendering ● Q & A QGIS Performance Improvements
  • 17. Tips for Better Performance ● Vector layers: use spatial index ● Raster layers: use overviews ● Rendering configuration ● Turn on render caching ● Turn off anti-aliasing ● Vector styling ● Thin lines ● Polygons without border ● Without data-defined properties ● Data store specific features ● PostGIS – disable SSL mode on local network QGIS Performance Improvements