AB Tasty — EmotionsAI
Le problème
Un client grand compte se plaignait de la latence du tag EmotionsAI sur ses sites en production. Au lancement, son code d’initialisation bloquait plus de 120 ms — autant de temps pendant lequel la page du client restait figée.
La contrainte
Le score EmotionsAI devait rester strictement identique avant et après : la moindre différence aurait faussé les calculs qui en dépendent. Le code était ancien, et devait continuer de tourner sur les navigateurs anciens qu’il supportait. J’étais seul dessus.
La méthode
Il a d’abord fallu reproduire le problème : DevTools en conditions 3G simulées, puis contrôle sur un outil de monitoring externe. Le temps se perdait sur une longue liste d’éléments que le tag parcourait en entier, alors que la plupart des cas ne s’appliquaient pas.
Deux changements : restreindre la liste à ce qui peut réellement s’appliquer, et remplacer le parcours linéaire par une recherche en O(log n) — sans rien casser sur les navigateurs anciens. Le tag optimisé est parti en production.
Le résultat
−56%
Blocking time du tag ramené de 120 ms à 53 ms.
- JavaScript
- Python
- Jupyter
- BigQuery
- SQL
- Django
- MySQL