Repository navigation
feat: estatísticas de rede do modo de medição no log do servidor - #36
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Com
?perf=1, o resumo de rede que o cliente já escrevia no console a cada 2 s (net.stats) agora também vai para o log do servidor de jogo, e ganha o pior quadro da janela.worstFrameMs(netStats.ts): o maior intervalo entre dois quadros da janela. Um engasgo de 200 ms some na média de FPS e é exatamente o que o jogador sente como lag.followNetwork.ts):navigator.sendBeaconparaPOST /perf/statsna porta do servidor de jogo, como texto puro. Não há preflight de CORS, e o envio não espera resposta.main.ts): a rota grava cada resumo como uma linhaclient.statsem JSON, com o IP de quem mandou, ao lado do que o servidor já registra. Corpo que não é JSON viraclient.stats-invalid; o limite é 4 KiB.Motivo: no relato de lag de 19/10, a aba de automação do Chrome não servia para medir, porque fora de foco ela roda a 1 FPS, e o console de quem jogou não é legível de fora. Com a medição no log do servidor, uma partida de 30 s já separou máquina de rede: 60 FPS de mediana, 0 correções em 5575 confirmações e 21 ms de RTT. Era a máquina.
Verificação
npm run verifypassa: 276 arquivos de teste, 100% de cobertura. A rota foi testada comcurle com uma partida real no Chrome.