A Canonical lançou o etrace, um utilitário projetado para rastrear a atividade durante a execução do aplicativo. O programa lembra os utilitários strace e ltrace e também usa ptrace em tempo de execução.
O objetivo etrace principal está depurando e analisando aplicativos iniciados from snap O utilitário permite avaliar rapidamente quais programas e arquivos são usados ao executar um pacote snap.
Dois comandos são fornecidos, "exec" e "file", para obter informações sobre como acessar arquivos e executar outros processos. No primeiro caso, o trabalho de chamadas do sistema relacionadas ao arquivo é monitorado e, no segundo, a família de chamadas do sistema executivo é interceptada.
Etrace é um aplicativo de rastreamento genérico, útil para três objetivos amplos de medição e depuração:
- Quanto tempo leva para um aplicativo exibir uma janela (gráfica / IU) em uma tela.
- A sequência de tarefas criadas e executadas pelo programa principal durante seu tempo de execução. A lista de arquivos acessados durante a execução de um programa.
Essas métricas podem ser usadas para depurar problemas potenciais em instantâneos e entender o que um pacote está tentando eliminar ou encontrar gargalos de desempenho em um instante.
Naturalmente, também funciona com pacotes nativos do Linux ou qualquer programa executável, embora com funcionalidade out-of-the-box ligeiramente reduzida (não reinstala o pacote nativo, por exemplo), mas você ainda pode rastrear o aplicativo e medir quanto tempo leva para exibir uma janela.
O utilitário também pode ser usado para identificar gargalos desempenho em aplicativos gráficos baseados em X11 e mostra quanto tempo leva para o aplicativo inicializar antes de começar a renderizar a janela.
Além disso, as opções específicas de snap "–reinstall-snap" e "–clean-snap-user-data" estão disponíveis, permitindo que você reinstale o pacote snap para realizar uma medição sem cache ou remover dados do usuário associados ao pacote antes de executá-lo.
uso básico
O Etrace está disponível como um pacote instantâneo, portanto, temos que instalá-lo primeiro. Como o etrace é usado para executar programas arbitrários, incluindo outros pacotes snap e até pacotes tradicionais do Linux, ele requer permissões de todo o sistema por meio do bloqueio clássico, que pode ser aceito usando o sinalizador –classic ao executar o comando a seguir.
Para instalar o etrace:
snap install etrace --candidate --classic
O primeiro caso de uso etrace é medir quanto tempo leva para um aplicativo gráfico exibir uma janela em uma tela.
Vamos começar com um plug-in simples, gnome-calculator, e executá-lo 10 vezes para ver quanto tempo leva essa execução. Observe que você precisa ter o gnome-calculator instalado - instale o gnome-calculator. Aqui usamos a opção –no-trace porque não queremos a pilha de rastreamento completa, queremos apenas que o etrace meça quanto tempo leva para inicializar; entraremos em recursos completos de rastreamento mais tarde.
etrace --repeat = 10 exec --use-snap-run --no-trace gnome-calculator --cmd-stderr = /dev/null Total startup time: 1.531152957s Total startup time: 513.948576ms Total startup time: 512.980061ms Total startup time: 515.576753ms Total startup time: 508.354472ms Total startup time: 515.734329ms Total startup time: 508.414271ms Total startup time: 514.258788ms Total startup time: 508.407346ms Total startup time: 511.950964ms
Além disso, A Canonical anunciou a implementação de suporte instantâneo para o algoritmo de compressão LZO. O algoritmo LZO se concentra em alcançar a velocidade máxima de descompressão, ao custo de aumentar o tamanho do arquivo resultante. Ao testar um pacote com o Chromium, o uso de LZO em vez do algoritmo XZ padrão permite acelerar o lançamento do pacote snap 2 a 3 vezes, reduzindo o tempo necessário para descompactar a imagem SquashFS.
Em particular, o primeiro lançamento do Chromium instalado de um pacote deb normal leva cerca de 1,7 segundos.
A primeira liberação do snap ao usar XZ leva 8.1 segundos e ao usar LZO - 3.1 segundos. Na reinicialização, com os dados em cache, os tempos de inicialização são 0,6, 0,7 e 0,6 segundos. respectivamente.
O tamanho do pacote de encaixe aumentou de 150 MB para 250 MB com LZO.