Trace 1 - Benchmark OpenTBS vs OpenSpout
Comparaison de performance entre l'ancien export OpenTBS et le nouveau moteur OpenSpout.
Optimisation des performances backend
Exploitation et traitement de donnees volumineuses
Trace 1
Comparaison mesuree entre OpenTBS et OpenSpout
Trace 1 - Extrait du profiler utilise pour mesurer les temps reels d'export.
Cette trace represente le moment ou j'ai compare l'ancien export Cockpit base sur OpenTBS et templates XLSM avec le nouveau moteur OpenSpout. Elle se place apres la mise en place des jobs et du profiler, quand il fallait prouver que la refonte apportait un vrai gain et pas seulement un changement d'implementation.
- Le temps total moyen passe d'environ 35.87 s a 6.54 s sur le premier benchmark.
- La generation fichier passe d'environ 30.81 s a 1.28 s.
- Sur un export identique plus gros, OpenSpout termine en 18 a 20 s alors qu'OpenTBS termine en 506 s avec une limite memoire augmentee.
Resultats mesures
| Mesure | Ancien OpenTBS | Nouveau OpenSpout | Gain observe |
|---|---|---|---|
| Temps total moyen | 35.87 s | 6.54 s | 5.5x plus rapide |
| Generation fichier moyenne | 30.81 s | 1.28 s | 24x plus rapide |
| Sauvegarde fichier moyenne | 29.28 s | 1.28 s | 23x plus rapide |
| Taille fichier | 853 Ko | 437 Ko | -48.8% |
| Format | XLSM | XLSX | plus leger |
Sur le test plus recent avec les memes donnees d'entree : 49 081 lignes, 10 feuilles, 12 batches et environ 15.25 Mo envoyes. OpenSpout genere le fichier en environ 7.8 s et finit autour de 20 s. OpenTBS, avec 4 Go de memoire PHP pour pouvoir finir, met 488.2 s a generer le fichier et 506.18 s au total.
Analyse des savoir-faire
Le premier savoir-faire travaille est mesurer avant d'optimiser. J'ai ajoute des mesures sur les etapes importantes : creation du job, planification des batches, upload, start, generation, sauvegarde et taille finale. Cela m'a evite de juger seulement au ressenti.
Le deuxieme savoir-faire est comparer deux strategies sur un meme volume de donnees. OpenTBS charge et modifie un template Excel, alors qu'OpenSpout ecrit les lignes en streaming. Avec beaucoup de lignes, cette difference devient visible : le temps et la memoire ne progressent pas de la meme maniere.
Cette trace montre donc que l'optimisation ne vient pas d'un micro-reglage, mais d'un changement de modele : ne plus modifier un fichier Excel lourd, mais construire le fichier ligne par ligne.