- Plataforma open source projetada e desenvolvida sob liderança do Google com o objetivo de ser a próxima geração da stack de tracing de sistemas
- Analisa a causa de problemas de desempenho e funcionamento ao observar o fluxo de execução com base em tracing em sistemas complexos
- Estabilidade e desempenho de nível de produção, adotada como sistema de tracing padrão do sistema operacional Android e do navegador Chromium
- Coleta eventos de vários processos e threads em um único trace unificado por meio de um daemon de tracing de alto desempenho
- Fornece um SDK C++17 de baixo overhead para instrumentar com precisão mudanças de tempo e estado em aplicações de espaço do usuário
- Coleta contexto de todo o sistema, como escalonamento, frequência de CPU, memória e call stack no Android e Linux, por meio de probes em nível de SO
- UI baseada em navegador para visualizar grandes traces com foco na linha do tempo e explorá-los de forma interativa
- Pode ser executada nos principais navegadores sem instalação separada e também suporta a visualização de vários formatos de trace externos
- Inclui um motor de análise baseado em SQL, permitindo consultar traces como se fossem dados e extrair métricas personalizadas
- A documentação oficial está disponível em perfetto.dev, com guias organizados por etapas para iniciantes e usuários avançados
- Projeto aberto que segue as diretrizes da comunidade open source do Google
Por que usar o Perfetto
- Desenvolvedores de apps e da plataforma Android podem analisar de forma estruturada a causa raiz de problemas de desempenho como lentidão na inicialização, frame drops e ANR
- Desenvolvedores C/C++ podem usar o Tracing SDK para instrumentar o caminho de execução da aplicação e identificar gargalos com precisão
- Desenvolvedores de kernel Linux e de sistemas podem visualizar eventos de kernel baseados em
ftrace para analisar escalonamento, system calls e comportamento de interrupções
- Desenvolvedores do Chromium usam o Perfetto como backend do
chrome://tracing para depurar o funcionamento interno do navegador, do V8 e do Blink
- Engenheiros de performance e SREs podem analisar de forma unificada via SQL formatos diversos como Linux perf, macOS Instruments e Chrome JSON trace
2 comentários
No post publicado há pouco tempo, Meta, o escalonador Linux projetado para o Steam Deck da Valve em servidores de grande escala | GeekNews, também são mostrados materiais de profiling usando o Perfetto.
Vejo essa ferramenta com bastante frequência em outros textos, mas achei que ela ainda não tinha sido apresentada direito no GeekNews, então resolvi postar mesmo que tarde ;)
Minha coletânea favorita de ferramentas de rastreamento: eBPF, QEMU, Perfetto