Canonical presenta la utilidad etrace, una herramienta de creación de perfiles de aplicaciones multipropósito
Canonical ha introducido etrace, una utilidad diseñada para rastrear la actividad durante la ejecución de la aplicación. El programa se parece a las utilidades strace e ltrace y también usa ptrace en runtime.
El objetivo principal de etrace es depurar y analizar aplicaciones iniciadas desde snap La utilidad le permite evaluar rápidamente qué programas y qué archivos se utilizan cuando se ejecuta un paquete instantáneo.
Se proporcionan dos comandos, «exec» y «file», para obtener información sobre cómo acceder a archivos y ejecutar otros procesos. En el primer caso, se monitorea el trabajo de las llamadas al sistema relacionadas con el trabajo con archivos, y en el segundo, se intercepta la familia de llamadas al sistema ejecutiva.
Etrace es una aplicación de rastreo genérica, útil para tres propósitos amplios de medición y depuración:
- Cuánto tiempo tarda una aplicación en mostrar una ventana (gráfica / UI) en una pantalla.
- La secuencia de tareas creadas y ejecutadas por el programa principal durante su tiempo de ejecución. La lista de archivos a los que se accede durante la ejecución de un programa.
Estas métricas se pueden usar para depurar problemas potenciales en snaps y comprender lo que intenta hacer una instantánea o encontrar cuellos de botella de rendimiento en un instante.
Por supuesto, también funciona con paquetes nativos de Linux o con cualquier programa ejecutable, aunque con una funcionalidad lista para usar ligeramente reducida (no reinstala el paquete nativo, por ejemplo), pero aún puede rastrear la aplicación y medir cuánto tiempo lleva para mostrar una ventana.
La utilidad también se puede utilizar para identificar cuellos de botella de rendimiento en aplicaciones gráficas basadas en X11 y muestra cuánto tiempo tarda la aplicación en inicializarse antes de comenzar a renderizar la ventana.
Además, están disponibles las opciones específicas de snap «–reinstall-snap» y «–clean-snap-user-data», lo que le permite reinstalar el paquete snap para realizar una medición sin caché o eliminar los datos del usuario asociados con el paquete antes de ejecutarlo.
Uso básico
Etrace está disponible como paquete snap, por lo que primero tenemos que instalarlo. Debido a que etrace se usa para ejecutar programas arbitrarios, incluidas otros paquetes snap e incluso paquetes linux tradicionales, necesita permisos para todo el sistema a través del confinamiento clásico, que puede aceptarse usando el indicador –classic cuando se ejecuta el siguiente comando.
Para instalar etrace:
snap install etrace --candidate --classic
El primer caso de uso de etrace es medir cuánto tiempo tarda una aplicación gráfica en mostrar una ventana en una pantalla.
Comencemos con un simple complemento, gnome-calculator , y ejecútelo en un ciclo 10 veces para ver cuánto tiempo lleva esta ejecución. Tenga en cuenta que necesita tener instalado gnome-calculator – instale gnome-calculator . Aquí usamos la opción –no-trace porque no queremos la pila de rastreo completa, solo queremos que etrace mida cuánto tiempo tarda en iniciarse; entraremos en las capacidades de rastreo completas más adelante.
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
Además, Canonical anunció la implementación de soporte instantáneo para el algoritmo de compresión LZO. El algoritmo LZO se centra en lograr la máxima velocidad de descompresión, a costa de aumentar el tamaño del archivo resultante. Al probar un paquete con Chromium, el uso de LZO en lugar del algoritmo XZ predeterminado le permite acelerar el lanzamiento del paquete instantáneo 2-3 veces al reducir el tiempo requerido para descomprimir la imagen de SquashFS.
En particular, el primer lanzamiento de Chromium instalado desde un paquete deb normal toma alrededor de 1,7 segundos.
El primer lanzamiento desde snap cuando se usa XZ toma 8.1 segundos y cuando se usa LZO – 3.1 segundos. Al reiniciar, con los datos almacenados en la memoria caché, los tiempos de inicio son 0,6, 0,7 y 0,6 segundos. respectivamente. El tamaño de instantánea ha aumentado de 150 MB a 250 MB con LZO.