Optimize DEMHandler with a cache
Problème de performance
Actuellement, l'acces au DEM se fait à chaque fois par un appel à GDAL qui utilise des lock, un profiling a été effectué pour en arriver au constat suivant : Temps perdu estimé: environ 13% en moyenne.
Objectif
Une seule obtention des élévations sur une fenêtre liée au stream courant.
Comment
Offrir un mécanisme explicite permettant de cacher les hauteurs sur une région choisie.
Faire que les fonctions d'accès aux hauteurs tapent en priorité dans ce cache au lieu de poser la question à GDAL.
La mise en cache explicite se ferait idéalement depuis les fonctions
BeforeThreadedGeneratedData
de certains filtres.
Ensuite, l'accès à la donnée cachée serait transparente, sans le moindre besoin de verrou.
Condition de bon fonctionnement: deux filtres fonctionnant simultanément ou enchainés dans un pipeline Python ne doivent pas requêter une mise en cache.
NB: on a déjà des problèmes similaires si on enregistre des DEM/Geoid sur une zone avec des données incompatibles.