Besoin · Performance d'un logiciel

Votre logiciel métier est devenu lent : trouver la cause avant de tout refaire

Un logiciel métier qui ralentit au fil des années souffre le plus souvent d'une cause localisée : une requête sans index adapté, un historique qui a décuplé, un traitement lourd exécuté pendant que l'utilisateur attend, ou un hébergement sous-dimensionné. Un diagnostic mesuré permet souvent de corriger sans tout réécrire : YMHB Web commence par cette mesure, avant de proposer une correction ciblée ou une refonte.

L'essentiel

  • Un logiciel qui ralentit avec le temps souffre souvent d'un problème localisé (base de données, volume, code ou hébergement) que l'on peut mesurer avant de corriger.
  • La documentation de PostgreSQL rappelle que les index accélèrent la recherche de lignes, mais ajoutent une surcharge au système et doivent être utilisés avec discernement.
  • Pour une page web, Google retient comme repères un affichage principal en 2,5 secondes au plus et une réaction aux interactions en 200 millisecondes au plus.
  • Sur le projet Cap Vert, la génération d'un rapport PDF côté serveur est passée d'environ 2,6 secondes à moins d'une seconde.
  • Refaire un logiciel lent ne se justifie que si l'architecture, la technologie ou le modèle de données empêchent toute correction durable.

Lent pour qui, à quel moment, depuis quand ?

Avant toute correction, il faut savoir précisément ce qui est lent, pour qui et depuis quand, car « le logiciel rame » recouvre des causes très différentes. Chez un grossiste, la liste des livraisons du jour met quarante secondes à s'afficher chaque matin à 7 h 30, quand tous les préparateurs se connectent ensemble. Dans un bureau d'études, c'est l'export mensuel des heures qui échoue. Dans un réseau d'agences, seule l'agence la plus éloignée se plaint. Trois symptômes, trois pistes.

Ce que vous observezPiste la plus probable
Un seul écran est lent, tout le tempsRequête mal écrite ou index manquant sur ce que l'écran recherche
Tout ralentit aux mêmes heuresServeur saturé par les connexions simultanées, ou tâche planifiée lourde au même moment
La lenteur s'aggrave de mois en moisVolume qui grandit sans archivage ni pagination
C'est lent depuis une date préciseMise à jour, import massif ou changement d'hébergement à cette date
Seuls certains sites ou postes sont touchésRéseau local, connexion internet ou matériel, plutôt que le logiciel

Quelles sont les causes les plus fréquentes ?

Les causes les plus fréquentes se répartissent en cinq familles, et un même logiciel en cumule souvent deux.

La base de données

Une recherche sur une colonne non indexée oblige la base à parcourir toute la table. La documentation de PostgreSQL indique qu'un index permet au serveur de retrouver des lignes précises beaucoup plus vite, mais que les index ajoutent une surcharge à l'ensemble du système et doivent être utilisés avec discernement : en poser partout ralentit les enregistrements. La même documentation précise que les statistiques du planificateur de requêtes sont mises à jour par les commandes ANALYZE et VACUUM ANALYZE et restent toujours approximatives. Après un import massif, des statistiques périmées peuvent conduire la base à choisir un mauvais plan d'exécution.

Le volume

Dix ans d'historique affichés d'un bloc, des pièces jointes stockées dans la base, des tables de journaux jamais purgées : ce qui passait avec mille lignes ne passe plus avec un million.

Le code

Cas typique : un écran affiche cent commandes et lance une requête distincte pour chaque client, soit cent une requêtes au lieu de deux. Autres classiques : des totaux recalculés à chaque affichage, un PDF ou un e-mail générés pendant que l'utilisateur attend.

L'interface

Des pages qui chargent des milliers de lignes ou des images en pleine résolution ralentissent le navigateur, surtout sur les postes anciens et les tablettes.

L'hébergement

Un serveur mutualisé, une mémoire insuffisante ou un disque lent plafonnent tout le reste. Augmenter la machine soulage parfois, mais masque souvent une cause qui reviendra.

Comment se déroule un diagnostic de performance ?

Un diagnostic de performance suit cinq étapes, de la mesure à la preuve du gain.

  1. Mesurer les temps de réponse par écran et par heure, sur plusieurs jours, à partir des journaux du serveur et de la base. On ne corrige jamais à l'intuition.
  2. Reproduire la lenteur sur une copie de l'environnement, avec un volume réaliste, pour tester sans toucher à la production.
  3. Analyser les requêtes. Sous PostgreSQL, la commande EXPLAIN affiche le plan d'exécution choisi par le planificateur ; EXPLAIN ANALYZE exécute réellement la requête et affiche le nombre réel de lignes et le temps passé dans chaque étape. Comme la requête est exécutée, la documentation indique d'encadrer une requête de modification par BEGIN et ROLLBACK pour ne pas en garder les effets.
  4. Classer les causes trouvées par gain attendu et par risque.
  5. Corriger, puis mesurer à nouveau avec les mêmes indicateurs, pour prouver le gain et repérer toute régression.

Le diagnostic aboutit à un rapport écrit : causes mesurées, corrections proposées et gain attendu pour chacune. Quand le code a été écrit par d'autres, il s'inscrit dans une reprise de logiciel existant.

À partir de quand un écran est-il assez rapide ?

Un écran est assez rapide quand il ne fait plus attendre la personne dans son geste de travail ; ce seuil se fixe écran par écran, avec les utilisateurs. Pour les applications web, Google publie des repères utiles. Selon web.dev, une page offre une bonne expérience lorsque son élément principal s'affiche en 2,5 secondes au plus (LCP), qu'elle réagit aux interactions en 200 millisecondes au plus (INP) et que sa mise en page reste stable avec un score de 0,1 au plus (CLS), ces valeurs étant mesurées au 75e centile des chargements.

Pour un logiciel métier, nous traduisons ces repères en objectifs écrits dans le cahier de recette, par exemple « la liste des tournées s'affiche en moins de deux secondes avec un an d'historique ». Un objectif chiffré met fin aux débats sur la sensation de lenteur.

Quelles corrections, pour quel effet ?

Chaque cause a sa correction, et chaque correction son revers : l'effet se juge toujours par une nouvelle mesure.

CorrectionQuand elle s'appliquePoint de vigilance
Index cibléRecherche ou tri fréquent sur une colonne non indexéeChaque index ralentit un peu les écritures
Réécriture de requêteRequêtes en cascade, jointures inutilesVérifier que les résultats restent identiques
Pagination et filtres par défautListes qui chargent tout l'historiqueGarder une recherche complète accessible
Calculs mis en cacheTotaux recalculés à chaque affichageDéfinir quand le cache se met à jour
Traitement en tâche de fondPDF, e-mails, imports, exportsPrévenir l'utilisateur quand c'est terminé
ArchivageDonnées anciennes rarement consultéesRespecter les durées de conservation
Hébergement revuServeur encore saturé après les correctionsVérifier d'abord que le code n'est pas en cause

Cap Vert : un rapport PDF passé d'environ 2,6 s à moins d'une seconde

Cap Vert Operations nettoie des stations-service, des stations de lavage et des panneaux solaires ; ses équipes de terrain produisent des rapports d'intervention avec photos et signatures, envoyés au client en PDF. En reprenant le système hérité d'un prestataire précédent, YMHB Web a ramené la génération d'un rapport PDF côté serveur d'environ 2,6 secondes à moins d'une seconde.

La rapidité perçue tient aussi à l'architecture : l'application terrain fonctionne hors ligne, avec des files d'attente pour les photos, les PDF et les e-mails qui repartent automatiquement au retour du réseau. Le technicien n'attend pas la connexion pour passer à l'intervention suivante. Le projet est décrit sur la page Cap Vert.

Corriger ou refaire : où passe la limite ?

Refaire un logiciel lent ne se justifie que lorsque la cause est structurelle. Quatre situations font pencher vers la refonte :

  • l'architecture empêche de monter en charge, comme une base Access partagée sur un disque réseau, cas traité dans notre page pour migrer une base Access ou FileMaker ;
  • la technologie n'est plus maintenue, et chaque correction devient un pari ;
  • le modèle de données est faux à la base, avec des informations dupliquées partout ;
  • chaque correction en casse une autre, faute de tests.

Dans les autres cas, des corrections ciblées coûtent moins cher et apportent un gain immédiat. La comparaison détaillée figure dans notre page refonte ou reprise d'un logiciel.

Ce qu'un développeur ne peut pas accélérer

Certaines lenteurs échappent au code et ne se règlent ni par un développement ni par une refonte.

  • Un logiciel en abonnement : sur un SaaS, la base et l'hébergement appartiennent à l'éditeur. Documentez les lenteurs (écran, heure, durée) et adressez-les à son support ; si rien ne bouge, la question devient celle du changement d'outil, abordée dans notre comparatif SaaS ou hébergé chez soi.
  • Le réseau du site : une connexion saturée ou un Wi-Fi d'entrepôt défaillant relèvent de votre infogérant.
  • Les postes : un ordinateur ancien ralentit tout navigateur, quel que soit le logiciel.
  • Le processus : si une commande attend cinq validations successives, la lenteur est organisationnelle.

Questions fréquentes

Pourquoi un logiciel devient-il plus lent avec le temps ?

Un logiciel devient plus lent avec le temps surtout parce que ses données grandissent : des requêtes qui parcouraient mille lignes en parcourent un million, sans index adapté, sans pagination et sans archivage. S'y ajoutent des fonctions greffées au fil des années, des statistiques de base de données périmées après de gros imports, et un hébergement resté dimensionné pour les débuts.

Un serveur plus puissant suffit-il à accélérer un logiciel lent ?

Un serveur plus puissant soulage un logiciel lent lorsque la machine est réellement saturée, mais il masque souvent la vraie cause. Une requête qui parcourt toute une table reste coûteuse sur un serveur deux fois plus gros, et la lenteur revient quand le volume continue de croître. Mieux vaut mesurer d'abord, corriger le code et la base, puis ajuster l'hébergement.

Peut-on accélérer un logiciel sans en avoir le code source ?

Sans le code source, les marges de manœuvre sont limitées : on peut parfois agir sur la base de données (index, statistiques, archivage) si vous y avez accès, ou sur l'hébergement. Pour un logiciel en abonnement, seul l'éditeur peut corriger. Si le logiciel a été développé pour votre entreprise, récupérer le code et les accès est la première étape.

Combien de temps dure un diagnostic de performance ?

La durée d'un diagnostic de performance dépend du nombre d'écrans concernés, de l'accès aux journaux du serveur et de la base, et de la possibilité de reproduire la lenteur sur une copie. Le diagnostic inclut une mesure sur plusieurs jours d'utilisation réelle, nécessaire pour capter les pics de charge. Son périmètre est fixé par écrit avant de commencer.

Un logiciel lent peut-il abîmer les données ?

Oui, un logiciel lent peut indirectement abîmer les données. Quand un écran met trop de temps à répondre, les utilisateurs cliquent deux fois et créent des doublons, ou abandonnent une saisie à moitié enregistrée. Des exports interrompus produisent des fichiers incomplets. Corriger la lenteur réduit donc aussi les erreurs, à condition de nettoyer les doublons déjà créés.

À lire aussi

Sources

  1. PostgreSQL 18 Documentation, 14.1 Using EXPLAIN
  2. PostgreSQL 18 Documentation, chapitre 11 Indexes
  3. PostgreSQL 18 Documentation, 14.2 Statistics Used by the Planner
  4. web.dev (Google), Signaux Web essentiels : LCP, INP et CLS

Prêt à démarrer ?

Décrivez-nous votre situation, pas une liste de fonctionnalités.

Réponse sous un jour ouvré, en général par téléphone. Si un outil du marché suffit, nous vous le dirons.

Premier échange sans engagementCadrage avant chiffrage

AppelerDécrire mon problème