← Projetos Leonardo Borges Ramos

Case · Desempenho deste site

Medir antes de mexer.

Três problemas de desempenho do próprio Machinova, cada um com a causa achada por medição, e duas ideias que pareciam boas até a medição reprovar.

Papel
Tudo: é o meu site
Quando
Agosto a outubro de 2026
Ferramentas
Chrome DevTools Protocol · traces · Long Animation Frames · testes que reprovam a regressão
Resultado
21 → 60 fps¹ · pior quadro 1.251 → 183 ms² · CLS 0,60 → 0³

1. A rolagem a 21 fps não era o 3D

A virada da abertura para a segunda sala arrastava: 48,5 ms por quadro. Um estudo apontava cinco causas; a medição refutou quatro (re-render, layout, coleta de lixo, densidade de pixel). O trace fechou o caso: 0,5 s de JavaScript contra ~9 s de rasterização e composição na mesma janela de 13,8 s. Quadro longo sem tarefa longa de JS é composição.

A causa: cinco camadas de fundo, cada uma com 1,85 tela de área e transparência, somavam ~9 telas de mistura por quadro, o teto de uma GPU integrada. Virou caixas do tamanho da tela, com a mesma geometria reescrita. Para provar que o desenho não mudou, comparei o fundo pixel a pixel em sete posições: diferença média de 0,37 em 255.

antes48,5 ms
depois16,8 ms

Ficou um teste que reprova acima de 30 ms por quadro, e ele foi visto reprovando com o defeito de volta.

2. A passagem para a segunda sala: de 1.251 ms a 183 ms

Pior quadro na primeira visita, em 1920×1080, com a pessoa rolando desde o primeiro segundo. Três causas:

ideia reprovada2.401 ms
14/09, antes1.251 ms
20/09, antes717 ms
20/09, no ar183 ms

Duas ideias reprovadas pela medição: criar os programas do 3D mais cedo não mudou nada (961 / 817 / 1.039 ms contra 864 / 936 / 865 ms), e só trabalhar com a página parada piorou muito: quem rola sem parar nunca dá a folga, e o pior quadro foi a 2.401 ms.

3. A página que pulava: CLS 0,60 → 0

O canvas do 3D era reposicionado por propriedades de layout a cada ajuste, e o navegador contava cada reposicionamento como a página pulando: CLS de 0,60 em 1366, 0,14 em 1920 e 0,10 no tablet. Agora ele anda por transform, ancorado no canto. Medido hoje no ar: 0,000 no notebook, no monitor grande e no celular.

antes0,60
depois0,000

O método

¹ 30/08/2026, Chrome com GPU, medidor da própria página; no ar, 17,4 ms (~57 fps).

² 14/09 e 20/09/2026, 1920×1080, primeira visita, Chrome real sem freio; quatro visitas frias seguidas no ar: 183 · 200 · 284 · 283 ms.

³ 09/10/2026 (antes); 20/10/2026 no ar, script testes/_dez-segundos.mjs em 1366, 1920 e 390.

Quer conversar sobre este projeto?