ETTrace é um Open
LarLar > blog > ETTrace é um Open

ETTrace é um Open

Apr 09, 2023

InfoQ Homepage Notícias ETTrace é um criador de perfil de código aberto para iOS com o objetivo de simplificar a otimização de desempenho

07 de junho de 2023 2 minutos de leitura

por

Sergio De Simone

Recentemente aberto pela Emerge Tools, fabricante de várias ferramentas de análise para aplicativos iOS, o ETTrace visa simplificar o perfil de desempenho do iOS, fornecendo visualizações intuitivas e operação direta.

O ETTrace enfrenta a forte concorrência do criador de perfil de bloco integrado Xcode, que é a solução padrão de fato para otimização de desempenho de aplicativos iOS. No entanto, diz Noah Martin, engenheiro da Emerge Tools, há muito a melhorar no Xcode Time Profiler:

Na Emerge, conversei com muitos engenheiros que trabalham em aplicativos grandes e o feedback é o mesmo: o Time Profiler pode ser instável e lento. Mesmo obtendo as capturas de tela deste artigo, encontrei vários congelamentos e precisei forçar o encerramento. A simbolização é freqüentemente um problema, com rastreamentos sendo gerados e mostrando apenas endereços, mas não nomes de função.

Pelo contrário, afirma ele, o ETTrace usa um gráfico de chama para facilitar a identificação de gargalos de desempenho e fornece uma ferramenta de linha de comando fácil de usar que criará o perfil do aplicativo em execução localmente. Integrar o ETTrace em um aplicativo iOS é tão fácil quanto vincular uma estrutura Objective-C e executar o ettrace na linha de comando para iniciar e parar a criação de perfil quando desejado. O ETTrace também oferece suporte à possibilidade de iniciar o rastreamento logo após o lançamento do aplicativo, definindo a chave Info.plist ETTraceRunAtStartup como SIM.

A estrutura é capaz de registrar a pilha de aplicativos em intervalos fixos em um arquivo de rastreamento, que é usado para criar uma visualização. O ETTrace apenas amostra o thread principal, que é a parte mais sensível ao tempo de um aplicativo iOS, pois tem a responsabilidade de renderizar a interface do usuário e nunca deve bloquear. Os traços podem então ser carregados em uma página pública no site da Emerge Tools para criar um Flame Graph. Você também pode diferenciar dois rastreamentos para comparar duas execuções diferentes de seu aplicativo e inspecionar, por exemplo, como uma função melhorou ou regrediu.

Outra vantagem do ETTrace, diz Martin, é que ele pode ser integrado em um pipeline CI usando o Emerge Tools Performance Analysis, que fornece recursos de teste de desempenho. Como estudo de caso, ele menciona o trabalho realizado como Doordash para reduzir o tempo de inicialização do aplicativo iOS em 60%, identificando e removendo os gargalos associados aos testes de conformidade do protocolo Swift.

Um gráfico Flame é uma maneira de visualizar dados hierárquicos que facilitam a identificação dos caminhos de código usados ​​com mais frequência. Cada nó, ou seja, função, é representado por um quadro cuja largura representa uma medida relativa do tempo de CPU usado por essa função.

O ETTrace pode ser baixado do GitHub.

Descubra tendências e práticas emergentes de especialistas no domínio. Aumente o nível de suas habilidades na QCon New York (13 a 15 de junho de 2023)!

Escrever para o InfoQ abriu muitas portas e aumentou as oportunidades de carreira para mim. Pude me envolver profundamente com especialistas e líderes de pensamento para aprender mais sobre os tópicos que abordei. E também posso divulgar meus aprendizados para a comunidade tecnológica mais ampla e entender como as tecnologias são usadas no mundo real.

Descobri o programa de contribuidores do InfoQ no início deste ano e tenho gostado desde então! Além de me fornecer uma plataforma para compartilhar aprendizado com uma comunidade global de desenvolvedores de software, o sistema de revisão ponto a ponto do InfoQ melhorou significativamente minha escrita . Se você está procurando um lugar para compartilhar sua experiência em software, comece a contribuir com o InfoQ.

Comecei a escrever notícias para a fila do InfoQ .NET como uma forma de me manter atualizado com a tecnologia, mas consegui muito mais com isso. Conheci pessoas experientes, ganhei visibilidade global e melhorei minhas habilidades de escrita