Back home

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:

  1. Primeiro determine a que tipo de problema o problema se parece mais.
  2. 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”.

FAQ

What to read next

Related

Continue reading