Adicione latência e jitter a um aplicativo
Tudo funciona em uma conexão local rápida. Dê 300 ms de ping ao aplicativo e você descobre quais telas foram escritas como se a resposta chegasse instantaneamente.
Três coisas diferentes
| Configuração | O que faz | De onde vem na vida real |
|---|---|---|
| Latency | Adiciona o mesmo atraso a cada pacote, em milissegundos. | Distância. Um servidor em outro continente, ou um satélite. |
| Jitter | Adiciona uma quantidade aleatória por cima, de modo que o atraso muda o tempo todo. | Wi-Fi compartilhado, redes móveis, qualquer coisa congestionada. |
| Picos de latência | Travadas longas ocasionais, definidas por frequência e duração. | Uma transferência entre torres de celular, um roteador sob carga. |
Os três estão em milissegundos e podem funcionar juntos. Os dois valores de atraso aceitam qualquer número a partir de 0, então você pode ir de 40 ms, plausíveis, a 60 segundos, absurdos.
Pela linha de comando
Constantes 200 ms com 80 ms de jitter, em um aplicativo:
BeanNetworkTester.exe --latency 200 --jitter 80 --target myapp.exe --duration 60
Em vez disso, travadas raras e longas: mais ou menos um pacote em vinte espera um segundo a mais:
BeanNetworkTester.exe --spike-prob 5 --spike-ms 1000 --target myapp.exe
Números que valem a pena testar
- 40 ms: um servidor no mesmo país. Nada deve mudar.
- 150 ms: outro continente. Tudo que conversa muito começa a parecer lento, porque cada ida e volta custa.
- 600 ms ou mais: satélite geoestacionário ou Wi-Fi de avião. É aqui que as barras de progresso travam e a lógica de nova tentativa finalmente roda.
Os perfis prontos trazem valores medidos: “Distant server (another continent)”, “Satellite (low orbit)”, “Satellite (geostationary)”, “In-flight Wi-Fi”, “LTE / 4G”.
Como medir: olhe o pior caso, não a média
O jitter mal mexe em uma média, e mal mexe em uma mediana. Uma execução com 30 ms de jitter e outra sem ele podem mostrar quase o mesmo ping “típico” e ainda assim parecer completamente diferentes.
Compare então o percentil 95 com a mediana. A diferença entre os dois é o jitter, e é essa diferença que deixa uma chamada picotada ou um jogo injogável enquanto a média ainda parece boa.