Amélioration des performances de notre plateforme : plus de rapidité, moins d’attente

image

Dans un environnement industriel, chaque seconde compte. Nous savons à quel point la fluidité et la rapidité d’exécution de nos outils sont essentielles pour vos opérations quotidiennes. C’est pourquoi nous avons travaillé en profondeur sur l’optimisation des performances de notre plateforme, aussi bien en mode en ligne (online) qu’en mode hors ligne (offline).

Ces évolutions se traduisent déjà par des gains de temps considérables pour nos utilisateurs, et encore plus pour vos équipes sur le terrain.

1. Un bond en avant sur les sélections automatiques et manuelles

Le plus grand gain de performances se situe au niveau des briques sélections automatiques et manuelles.

Avant
Maintenant
• Pour afficher 10 équipements avec 10 caractéristiques chacun, le système effectuait 10 requêtes API pour charger les équipements, puis 10 requêtes API par équipement, pour chaque caractéristique → soit 110 requêtes API. • Chaque requête prenant environ 0,2 secondes, nous avions 22 secondes de chargement au total (en mode en ligne).
• Pour afficher 10 équipements avec 10 caractéristiques chacun, seules les 10 requêtes principales sont nécessaires au système pour charger les informations → soit 10 requêtes API. • Chaque requête prenant environ 0,2 secondes, nous avons 2 secondes de chargement au total.

➡️ Résultat : un affichage quasi instantané, avec des données déjà connues du serveur. Les recalculs ou mises à jour ne sont faits que lorsque cela est nécessaire (par exemple si une valeur est modifiée).

Une optimisation grâce au suivi des modifications

Techniquement parlant, voici le principe de fonctionnement de ces optimisations :

  • Un champs appelé “est_modifiée” a été ajoutée à chaque donnée transitant dans nos outils. Ce champs peut être à :
    • “vrai”, indiquant que la valeur a été renseignée ou modifiée par un agent.
    • “faux”, indiquant que la valeur n’a pas été renseignée ou modifiée par un agent, ou qu’elle se calcule automatiquement.
  • Pour toute donnée ayant le champs “est_modifiée” sur “faux”, nous ne calculerons pas ni ne chargerons pas cette donnée depuis la base de donnée.
  • Concrètement : depuis le lancement d’Ermeo:
    • 174 millions de données issues des interventions n’ont jamais été modifiées,
    • 67 millions de données ont réellement été saisies par des intervenants.

2. Calculs et pré-remplissages optimisés

  • Les valeurs calculées (exemple : C = A + B) ne sont désormais générées qu’au moment où elles sont réellement utilisées, et non plus systématiquement.
  • Tous les champs par défaut et pré-remplissages (textes, nombres, dates, choix multiples, etc.) bénéficient également de la logique “est_modifiée” et ne sont donc calculés et chargés que lorsque nécessaire.

➡️ Exemple : si un calcul C = A + B n’a jamais été modifié, le système ne va pas le recréer mais simplement l’afficher.

Exceptions sur les calculs et pré-remplissages

Certaines données continuent à être traitées comme précédemment, notamment :

  • Les tâches associées à des attributs d’interventions lorsque leur remontée en temps réel est activée,
  • Les attributs d’utilisateurs (nécessaires pour les transferts d’interventions ou envois d’emails par exemple),
  • Les dates du jour (qui doivent être recalculées le jour de l’intervention).

3. Précision sur le mode hors ligne

Le mode hors ligne bénéficie également de ces évolutions, même si les gains sont moins spectaculaires qu’en mode en ligne.

  • Les téléphones plus anciens voient une nette amélioration car les insertions dans la base de données locale sont moins nombreuses,
  • Les tâches pré-remplies, qui étaient la principale source de frustration en mode hors ligne, sont désormais beaucoup plus rapides puisque les pré-remplissages sont optimisés.

4. Impact de la fonctionnalité de performance sur les rapports

La nouvelle optimisation des performances modifie la manière dont les données des rapports sont stockées :

  • Avant : toutes les informations des widgets d’un rapport étaient stockées.
  • Désormais : seules les informations des widgets modifiés sont stockées côté serveur.

Résultat : le chargement des rapports est environ deux fois plus rapide lors de grandes interventions.

➡️ Exemple : pour des formulaires volumineux, le temps d’ouverture est passé de 8–10 minutes à environ 3–4 minutes.

5. En résumé

Ces optimisations apportent :

  • Un gain de rapidité considérable sur les sélections et les pré-remplissages,
  • Une expérience fluide, même sur des appareils plus anciens,
  • Une réduction massive des temps de chargement, équivalente à plusieurs centaines de jours économisés pour l’ensemble de nos clients,
  • Une modification de la gestion des widgets dans la génération des rapports.

Ces évolutions s’inscrivent dans notre engagement à rendre nos outils toujours plus performants, fiables et adaptés à vos enjeux industriels.