Skip to content

Instantly share code, notes, and snippets.

@reginadiana
Last active April 23, 2026 00:06
Show Gist options
  • Select an option

  • Save reginadiana/f3602f1f2952adbef97cafcdd9248448 to your computer and use it in GitHub Desktop.

Select an option

Save reginadiana/f3602f1f2952adbef97cafcdd9248448 to your computer and use it in GitHub Desktop.
Anotações sobre Performance

Performance

Vários estudos mostram que a performance final para o usuário, que ele percebe ao abrir o navegador desktop ou no 3G do mobile depende mais do frontend do que do backend.

Um site rápido leva no máximo 1s para carregar, um site mediano leva entre 1 e 2.5s para carregar e um site lento leva mais de 2.5s para carregar.

Removendo javascript inutil

Em coverage conseguimos ver todo o css e javascript que não estão sendo utilizados em vermelho.

image

A performance é calculada a partir de 6 métricas. Cada métrica captura algum aspecto relacionado a velocidade de carregamento. O ideal é foquemos em uma metrica especifica por vez.

LCP - First Contentful Paint - Primeira Exibição de Conteúdo

É uma métrica do Core Web Vitals (disponíbilidado pelo Google) que menssura o tempo necessário para que o maior elemento seja mostrado em tela.

O tempo ideal para essa métrica é de 1.2s. Para melhorar essa métrica, temos que trabalhar para carregar menos css, javascript e arquivos estáticos como imagens, icones e videos, permitir que o backend retorne apenas os dados necessários/backend lento.

Dispositivos mobile possuem um limite de CPU e memória. 60% da conexão desses dispositivos ao redor do mundo é 2G.

Para olhar essa métrica, é necessário acessar a aba Performance do DevTools do Chrome. Perceba que o elemento que leva mais tempo para renderizar é a imagem do sapato rosa.

Screenshot 2026-04-22 at 20 23 25

CLS - Cumulative Layout Shift - Mudança Cumulativa de Layout

CLS (Cumulative Layout Shift) mede a estabilidade visual da página, quantificando mudanças inesperadas de layout que ocorrem durante o carregamento. Ele é importante porque essas mudanças podem prejudicar a experiência do usuário, especialmente quando levam a interações incorretas.

image

Para observar essa métrica em prática, acessamos a aba Performance do DevTools. Perceba que existe layout shift nela a ponto de deixar a experiencia ruim, pois a métrica está em vermelho. Também é listado quais elementos se moveram durante o carregamento. O ideal é que existam espaços reservados para os elementos renderizaram em tela.

Screenshot 2026-04-22 at 20 41 36

INP - Interaction to Next Paint - Interação com a Próxima Pintura

INP (Interaction to Next Paint) é uma métrica dos Core Web Vitals que mede o tempo entre uma interação do usuário e a próxima atualização visual da interface. Ele considera múltiplas interações ao longo da sessão e reporta um valor representativo das piores latências, desconsiderando outliers extremos, sendo um indicador da responsividade percebida da aplicação.

Para observar essa métrica em prática, acessamos a aba Performance do DevTools. Nela, toda vez que realizamos um dos 3 tipos de ação: clique, digitação e toque (mobile) é registrado o tempo de resposta visual em tela na listagem. No exemplo da nossa aplicação, a ação que leva mais tempo para dar um feedback visual é a digitaçao da busca.

Enquanto o LCP mede, de forma geral, o carregamento, o tempo para que o usuário veja as coisas em tela, o INP mede o tempo de interação, isto é, beleza, meu site carregou, mas será que consigo interagir de forma rápida também?

Screenshot 2026-04-22 at 20 34 05

Longas Tarefas do Javascript

Uma das métricas de performance é o time to interactive, que representa quando os usuários podem de fato interagir com a página e obter uma resposta. Uma long task pode contribuir para um tempo maior a partir do momento que ela "congela" a UI, impedindo com que os usuários possam interagir com ela. Esse processo não deve levar mais que 50ms pois consomem muita CPU. O que podemos fazer é trabalhar para carregar os recursos nos momentos necessários.

  • Diminua a quantidade de cookies e requests da página.

  • Faça o cache de arquivos estáticos.

  • Adie o carregamento do não for necessário para o primeiro carregamento da página e faça de forma assincrona.

  • Diminua o trafego de dados diminuindo o payload do servidor.

  • Habilite o GZIP no servidor para comprimir arquivos html, css e js.

Para observar o valor de cada uma dessas métricas no painel do datadog, basta acessar o módulo RUM (Real User Monitoring) via Digital Experience > Summary OU Digital Experience > Optimization como na imagem abaixo.

Screenshot 2026-04-22 at 21 02 08

Elements > Event Listenings: Lista todos os eventos que estão na página.

Elements

O que conseguimos fazer:

  • Inspecionar elementos html e analizar as propriedades css de cada um.
  • Arrastar os elementos html
  • Adicionar/Modificar/Remover html e propriedades css
  • ctrl + f abre um input de busca por seletores html e css
  • Ao selecionar um elemento, conseguimos ter uma visão de seus elementos pai
  • Event Listening conseguimos ver todos os eventos associados a um determinado elemento
  • Capturar print do elemento selecionado
  • Toogle Element State faz com que possamos forçar um estado do elemento nem precisar provocar esse estado sozinho (hover/active/focus/target/visited/etc)
  • box model é onde conseguimoos ver as propriedades de espaçamento interno, externo, borda, largura e altura em pixels.
  • Na lista de propriedades css de um elemento, é mostrado em qual arquivo e qual linha foi definido.

Console

O que conseguimos fazer:

Sources

O que conseguimos fazer:

  • Salvar as alterações que fizemos em disco com workspace, podemos ver as modificações e reverte-las
  • Mostra os arquivos do projeto de forma mimificada a fim de melhorar a performance
  • Debugar javascript. Podemos usar o brekpoint, que funciona como um prybybug no Rails ou IEx.pry no Elixir, tornando a investigação do código mais dinamica e eficiente do que usar apenas o console.log()
  • Em snippet podemos criar arquivos javascript e executar código.

Network

O que conseguimos fazer:

Performace

O que conseguimos fazer:

Memory

O que conseguimos fazer:

Application

O que conseguimos fazer:

Lighthouse

O que conseguimos fazer: analizar o score de SEO, acessibilidade, performace, melhores práticas e PWA nas versões mobile e desktop.

  • Para cada tipo de score, o tools pode retornar uma lista com os pontos a melhores acompanhado de um material de consulta, que te ajudará a resolver aquele problema e melhorar o score.

JavascriptProfile

O que conseguimos fazer:

Layers

O que conseguimos fazer:

Media

O que conseguimos fazer:


DevTools

Para abrir: F12

Navegação

image

Inicia inspeção dos elementos: CRL + shift + c. Agora, basta passar o mouser por cima dos elementos na pagina. Abre o toogle device toolbar: CRL + shift + M

chrome://version mostra as informações do navegador

ctrl + f abre a busca dos elementos no devtools

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment