iOS Performance Optimization Series 06|A maneira correta de usar instrumentos
A ferramenta em si não é difícil. O que é difícil é fazer uma pergunta clara, em vez de olhar um monte de fotos e não chegar a nenhuma conclusão.
Quando tive contato pela primeira vez com a Instruments, a experiência foi muito parecida:
- Ferramenta aberta
- Grave um segmento
- Vi muitas curvas e cronogramas
- Acho que há muita informação
- Mas no final ainda não consigo descobrir qual é o problema.
Superficialmente, isso parece muito difícil, mas na verdade está mais próximo da situação comum quando você entra com uma pergunta muito vaga.
O uso verdadeiramente eficiente de Instrumentos sempre foi:
Faça uma pergunta suficientemente específica e deixe que as ferramentas ajudem a restringi-la.
1. Os instrumentos têm mais medo de serem considerados um “scanner universal”
Quando muitas equipes têm problemas de desempenho, elas dirão:
- Abra Instrumentos e dê uma olhada
Esta frase em si está correta, mas sem a segunda metade:
- O que exatamente você quer ver?
- Que hipótese você deseja testar?
- Atualmente é mais um problema de CPU, memória ou thread principal?
Que os Instrumentos podem facilmente se tornar um “amplificador de informação”:
- Muita informação
- Muitas fotos
- Muitas linhas
- mas nenhuma conclusão clara
Portanto, prefiro pensar nisso como uma “ferramenta de validação e estreitamento” em vez de um “scanner que fornece respostas automaticamente”.
2. Se houver um problema primeiro, selecione a página da ferramenta, e não o contrário.
Uma sequência mais eficiente é geralmente:
- Primeiro determine a que tipo de problema o problema se parece mais.
- Decida que tipo de instrumentos abrir
Por exemplo:
- Inicialização lenta: mais preocupado com a distribuição do tempo da fase de inicialização
- Cartão de lista: mais preocupado com questões relacionadas ao thread principal e ao frame
- Alta memória: mais preocupado com objetos e tendências de mudança de memória
- Aquecimento e consumo de energia: mais preocupado com a atividade da CPU de longo prazo e tarefas em segundo plano
Caso o problema ainda não tenha sido classificado, basta abrir a ferramenta diretamente. É fácil ver tudo como um problema e, no final, nada pode ser dito com precisão.
3. Os instrumentos não apresentam benefícios durante o uso. Superficialmente, parece que não consegue clicar, mas na verdade está mais próximo do caminho do “fenômeno → hipótese → verificação”.
O que uso com mais frequência é:
1. Registre o fenômeno primeiro
Por exemplo:
- Atraso óbvio ao rolar a lista rapidamente
- Demora muito para clicar na primeira tela da página inicial
- A memória está aumentando cada vez mais depois que uma determinada página é acessada novamente várias vezes.
2. Faça outra hipótese provisória
Por exemplo:
- Pode ser que o thread principal esteja ocupado por recálculo
- Pode ser que muito trabalho seja feito no caminho crítico da primeira tela
- Pode ser que o objeto não seja liberado ou o cache não seja reciclado
3. Use instrumentos para verificar esta hipótese
Dessa forma, ao olhar a foto, você não está apenas “observando a diversão”, mas respondendo a uma pergunta específica.
4. O maior valor dos Instrumentos é dizer “em qual camada o problema está principalmente”
Isto é muito importante.
O que é mais necessário no estágio inicial de muitos problemas de desempenho é saber primeiro:
- Principalmente um problema de CPU
- Ou é um problema de thread principal?
- Ou é um problema de tendência de memória?
- Ainda há problemas com o link de inicialização?
Uma vez que o julgamento do nível esteja correto, a escavação subsequente será muito mais fácil. Portanto, não espero que a Instruments me dê a “resposta final” diretamente na primeira vez. Espero que isso me ajude a restringir significativamente o escopo.
5. Um mal-entendido comum: concentre-se apenas no valor, não no caminho da operação
Após a gravação, algumas pessoas prestarão atenção especial a:
- Um determinado número é alto?
- Um certo pico é lindo?
Certamente vale a pena olhar para eles, mas os próprios números podem facilmente perder o contexto quando retirados do contexto.
Por exemplo, você também deve saber:
- Depois de qual operação ocorreu esse pico?
- É uma inicialização a frio, rolagem, corte de página ou retorno ao primeiro plano?
- O que exatamente o usuário fez quando o problema ocorreu?
Como os problemas de desempenho não são estáticos, eles estão sempre vinculados a um determinado caminho.
6. Um método mental mais próximo do combate real
Se eu fosse resumir em palavras simples, diria:
- Não basta subir e ver tudo.
- Decida primeiro o que precisa ser verificado
- Primeiro descubra “onde está o principal problema”
- Então vá mais fundo nesse nível
Ou seja, Instrumentos é mais parecido com:
- lupa
- Localizador
Em vez de um assistente inteligente que “informará automaticamente a causa raiz quando você abri-lo”.
7. Conclusão: Se você sabe usar Instrumentos, você entrará com perguntas.
Para resumir, eu diria:
A premissa de que os Instrumentos são realmente úteis é abordar um problema suficientemente específico e deixar que as ferramentas ajudem a verificar ou restringir o problema.
Depois de acertar essa sequência, ela pode ser extremamente valiosa; Se a ordem estiver errada, pode facilmente se tornar “olhando um monte de fotos, mas no final não aconteceu nada”.
What to read next
Want more posts about iOS Performance Optimization?
Posts in the same category are usually the best next step for reading more on this topic.
View same categoryWant to keep following #iOS?
Tags are useful for related tools, specific problems, and similar troubleshooting notes.
View same tagWant to explore another direction?
If you are not sure what to read next, return to the homepage and start from categories, topics, or latest updates.
Back home