Ajouter de la latence et de la gigue à une application
Tout fonctionne sur une connexion locale rapide. Donnez 300 ms de ping à l’application et vous découvrirez quels écrans ont été écrits comme si la réponse arrivait instantanément.
Trois choses différentes
| Réglage | Ce qu’il fait | D’où cela vient dans la vraie vie |
|---|---|---|
| Latency | Ajoute le même délai à chaque paquet, en millisecondes. | La distance. Un serveur sur un autre continent, ou un satellite. |
| Jitter | Ajoute une part aléatoire par-dessus, de sorte que le délai change sans cesse. | Wi-Fi partagé, réseaux mobiles, tout ce qui est congestionné. |
| Pics de latence | De longs blocages occasionnels, définis par leur fréquence et leur durée. | Un transfert entre antennes-relais, un routeur surchargé. |
Les trois sont exprimés en millisecondes et peuvent s’utiliser ensemble. Les deux valeurs de délai acceptent tout à partir de 0, vous pouvez donc passer de 40 ms, plausibles, à 60 secondes, absurdes.
En ligne de commande
Un délai régulier de 200 ms avec 80 ms de gigue, sur une application :
BeanNetworkTester.exe --latency 200 --jitter 80 --target myapp.exe --duration 60
Plutôt de rares et longs blocages : environ un paquet sur vingt attend une seconde de plus :
BeanNetworkTester.exe --spike-prob 5 --spike-ms 1000 --target myapp.exe
Des valeurs à essayer
- 40 ms : un serveur dans le même pays. Rien ne devrait changer.
- 150 ms : un autre continent. Tout ce qui multiplie les échanges commence à sembler lent, car chaque aller-retour coûte.
- 600 ms et plus : satellite géostationnaire ou Wi-Fi en avion. C’est là que les barres de progression se figent et que la logique de nouvelle tentative s’exécute enfin.
Les profils prêts à l’emploi contiennent des valeurs mesurées : « Distant server (another continent) », « Satellite (low orbit) », « Satellite (geostationary) », « In-flight Wi-Fi », « LTE / 4G ».
Mesurer : regarder le pire cas, pas la moyenne
La gigue modifie à peine une moyenne, et à peine une médiane. Une exécution avec 30 ms de gigue et une sans peuvent afficher presque le même ping « typique » tout en donnant une sensation complètement différente.
Comparez plutôt le 95e centile à la médiane. L’écart entre les deux, c’est la gigue, et c’est cet écart qui rend un appel haché ou un jeu injouable alors que la moyenne a l’air correcte.