GeotrekCE / Geotrek-admin

Paths management for National Parks and Tourism organizations
https://geotrek.fr
BSD 2-Clause "Simplified" License
129 stars 76 forks source link

2.84 - Retour sur performances #3176

Open jeromesourdin opened 1 year ago

jeromesourdin commented 1 year ago

Bonjour,

Après une journée de test suite a la migration en 2.84.1, voici nos premières constatations :

Nous n'avons pas constaté d'amélioration dans la vitesse d'affichage lorsqu'on souhaite modifier un itinéraire. Si le temps de chargement augmente apparemment avec la longueur de l'itinéraire, il est déjà rébarbatif dès les petits, notamment lorsqu'on a du travail à la chaîne à faire comme corriger la topologie des itinéraires ! Un temps d'attente compris entre 15 et 30 secondes lorsqu'on a 100 itinéraires à modifier (comme c'est à peu près le cas actuellement), cela fait déjà entre 25 et 50 minutes d'attente, et je ne parle pas du temps dû au chargement du gpx de contrôle qui en rajoute encore pas mal, ou encore le temps de sauvegarde lorsqu'on enregistre. nous avons fait quelques répétitions chronométrées :

On a le temps de décomposer le chargement :

  1. affichage du cadre de page (animation dans l'onglet du navigateur) : 3 à 4' quel que soit l'itinéraire
  2. affichage du fonds de carte à l'échelle de l'itinéraire à modifier (fin de l'animation dans l'onglet du navigateur) : entre 1 à 2' (petit itinéraire) et 2 à 3' (grand itinéraire)
  3. affichage de l'ensemble des itinéraires de la zone (en jaune) : autour de 3' quel que soit l'itinéraire, même si étape pas toujours visible, mais quel intérêt ?
  4. affichage de l'ensemble des tronçons (en violet épais, parfois déjà distingués en deux couleurs avant affinage du trait) : de 5' après étape 2 ou 4 à 6' après étape 3 (petit itinéraire) à 5' à 10' après étape 2 ou 4 à 8' après étape 3 (grand itinéraire)
  5. distinction des tronçons empruntés et non empruntés par un itinéraire (brun et violet) : de instantané (petit itinéraire) à 2 à 4' (grand itinéraire) lorsque étape visible
  6. affichage de l'itinéraire à modifier, ouf ! : quasi instantané (petit itinéraire) à 18 à 20' (grand itinéraire)

Si ça peut aider a faire avancer le sujet des perfs 😃

camillemonchicourt commented 1 year ago

Merci pour ce retour complet sur les améliorations de performances dans la version 2.84. Celles-ci sont détaillées sur https://github.com/GeotrekCE/Geotrek-admin/issues/2967#issuecomment-1149615273 Les évolutions de performances de la 2.84 concernent uniquement le chargement des objets sur la carte (avec ou sans cache pré-existant). Cela ne concerne pas à ma connaissance, la reconstruction d'une topologie (comme un itinéraire) sur la carte quand on veut la modifier.

Concernant le fait qu'au survol d'un objet sur la carte, il ne se mette pas en surbrillance c'est une régression fonctionnelle "normale" et identifiée, liée à la pagination des listes pour améliorer leurs performances de chargement dans la version 2.82. C'est détaillé et expliqué ici : https://github.com/GeotrekCE/Geotrek-admin/issues/3110

L'affichage du résultat du filtre "Topologie valide" sur la carte ne semble pas bien fonctionner en effet (en lien avec https://github.com/GeotrekCE/Geotrek-admin/issues/2515#issuecomment-1161439650), mais j'ai l'impression que c'est global à tous les filtres. On ne voit plus de loader de chargement quand un filtre est en cours de recherche. Et c'est en effet particulièrement pénalisant pour ce filtre "Topologie valide" qui est très long.

Concernant les filtres qui restent appliqués quand on passe d'un module à un autre, ce n'est pas forcément souhaitable et pertinent, mais il est là depuis longtemps, et il faudrait voir si c'est un problème ou si c'est au contraire une fonctionnalité qui a été implémentée de cette manière volontairement.