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 pathGravando 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 analyzeVisualizaçã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/calleesRastreamento 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 CPUFiltrando 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 internalsNavegando 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 lineTime 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 modelInspecionando 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 isolationTime 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 renderDefinindo 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 InstrumentsDicas 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 consistencyVerificaçã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
- Fundamentos do Instruments: Time Profiler
- Instruments Allocations e Leaks
- Main Thread Checker e travamentos
- Otimização de caminhos críticos: COW, inlining e especialização