0Pricing
Swift Academy · Aula

Fundamentos do Instruments: Time Profiler

Registre o uso da CPU, leia árvores de chamadas e encontre pontos críticos no seu código.

Fundamentos do Instruments: Time Profiler é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Swift Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Swift Academy inclui 4 aulas no total.

Por que usar o Instruments

O Xcode Instruments é um conjunto de ferramentas para análise de desempenho. O Time Profiler mostra onde o tempo de CPU está sendo gasto para que você possa encontrar os pontos críticos.

// Launch: Xcode → Product → Profile (Cmd+I)
// Choose "Time Profiler" template
// Run your app and exercise the slow path

Gravando um rastreamento

Clique no botão de gravação no Instruments, use o recurso que deseja analisar e pare a gravação em seguida.

// 1. Connect device or use simulator
// 2. Launch with Profile (Cmd+I)
// 3. Select Time Profiler
// 4. Record for 5-30 seconds
// 5. Stop and analyze

Visualização da árvore de chamadas

A árvore de chamadas mostra as funções pelo tempo de CPU consumido. Os caminhos de chamada mais pesados aparecem no topo da hierarquia.

// Call Tree columns:
// Self %: time spent in this function exclusively
// Symbol Name: function or method name
// Expand to see callers/callees

Rastreamento de pilha mais pesado

O painel do rastreamento de pilha mais pesado mostra o único caminho de chamada mais amostrado — geralmente, o melhor lugar para começar a otimizar.

// In Time Profiler:
// View → Heaviest Stack Trace
// Pinpoints the exact line consuming the most CPU

Filtrando amostras

Ative "Ocultar bibliotecas do sistema" e "Inverter árvore de chamadas" para se concentrar no seu próprio código em vez das estruturas da Apple.

// Call Tree options (bottom of Instruments):
// ☑ Invert Call Tree    – shows leaf functions first
// ☑ Hide System Libraries – filters out OS internals

Navegando até o código-fonte

Clique duas vezes em um símbolo na árvore de chamadas para ir diretamente à linha responsável no Xcode.

// Double-click → opens file in Xcode at the hot line
// Red/orange annotation shows time spent per line

Time Profiler + SwiftUI

Em aplicativos SwiftUI, procure chamadas inesperadas a body — redesenhos excessivos aparecem como entradas repetidas de View.body na árvore de chamadas.

// Common SwiftUI hot spots:
// - body called 100+ times per second
// - Equatable not implemented, causing unnecessary diffs
// - Heavy computation in body instead of a model

Inspecionando a thread principal e as threads em segundo plano

A faixa de execução na parte superior mostra a atividade de cada thread. Picos de CPU em threads em segundo plano podem indicar trabalho excessivo fora da thread principal.

// Thread lanes: Main Thread, Thread 2, Thread 3...
// Select a thread to see its call tree in isolation

Time Profiler na inicialização

Meça o tempo de inicialização do aplicativo analisando o desempenho desde o lançamento e observando os primeiros segundos do rastreamento.

// Instruments → File → Launch Profile
// Measures time from process start to first frame render

Definindo uma linha de base

Grave um rastreamento de linha de base antes de otimizar. Depois das alterações, faça uma nova análise e compare os resultados para confirmar a melhoria.

// Baseline: 45ms for imageLoad()
// After optimization: 8ms for imageLoad()
// Confirm: 5.6x speedup verified in Instruments

Dicas para uma análise precisa

Faça a análise em um dispositivo físico com uma compilação Release. Simuladores e compilações Debug distorcem as medições de desempenho.

// Always:
// 1. Use physical device
// 2. Build with Release configuration (Product → Scheme → Edit → Build → Release)
// 3. Repeat measurement 3+ times for consistency

Verificação rápida

Qual opção da árvore de chamadas do Instruments mostra as funções folha (que consomem mais tempo) no topo da lista?

Recapitulação da lição

Faça a análise com Cmd+I → Time Profiler. Use Invert Call Tree + Hide System Libraries para ver primeiro o seu código. Clique duas vezes nos símbolos para navegar até o código-fonte. Faça a análise no dispositivo no modo Release. Estabeleça linhas de base antes e depois das otimizações para confirmar a melhoria.

Perguntas Frequentes

A aula “Fundamentos do Instruments: Time Profiler” é grátis?

Sim — o texto completo de “Fundamentos do Instruments: Time Profiler” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Swift Academy, atualize para CoddyKit PRO. O curso de Swift Academy inclui 4 aulas no total.

O que vou aprender em “Fundamentos do Instruments: Time Profiler”?

Registre o uso da CPU, leia árvores de chamadas e encontre pontos críticos no seu código. Você pratica Swift Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Swift Academy?

Nenhuma experiência prévia é necessária. Swift Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Fundamentos do Instruments: Time Profiler”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Swift Academy?

Sim. Cada aula de Swift Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Fundamentos do Instruments: Time Profiler
  2. Instruments Allocations e Leaks
  3. Main Thread Checker e travamentos
  4. Otimização de caminhos críticos: COW, inlining e especialização
← Voltar para Swift Academy