Canonical은 etrace를 도입했습니다., 유틸리티 애플리케이션 실행 중 활동을 추적하도록 설계되었습니다. 이 프로그램은 strace 및 ltrace 유틸리티와 유사하며 런타임에 ptrace도 사용합니다.
목표 etrace 주체 시작된 애플리케이션을 디버깅하고 분석하고 있습니다. 스냅에서이 유틸리티를 사용하면 스냅 패키지를 실행할 때 사용되는 프로그램과 파일을 빠르게 평가할 수 있습니다.
"exec"와 "file"의 두 가지 명령이 제공됩니다. 파일에 액세스하고 다른 프로세스를 실행하는 방법에 대한 정보는 첫 번째 경우에는 파일 관련 시스템 호출 작업이 모니터링되고 두 번째 경우에는 경영진 시스템 호출 제품군이 차단됩니다.
Etrace는 세 가지 광범위한 측정 및 디버깅 목적에 유용한 일반 추적 애플리케이션입니다.
- 애플리케이션이 화면에 창 (그래픽 / UI)을 표시하는 데 걸리는 시간입니다.
- 실행 시간 동안 기본 프로그램에서 만들고 실행 한 작업 순서입니다. 프로그램 실행 중에 액세스되는 파일 목록입니다.
이러한 메트릭을 사용하여 잠재적 인 문제를 디버깅 할 수 있습니다. 즉석에서 성능 병목 현상을 포착하거나 찾는 패키지를 이해합니다.
물론 기본 Linux 패키지 또는 실행 가능한 프로그램에서도 작동합니다., 기본 기능이 약간 감소했지만 (예 : 네이티브 패키지를 다시 설치하지 않음) 앱을 크롤링하고 창을 표시하는 데 걸리는 시간을 측정 할 수 있습니다.
이 유틸리티를 사용하여 병목 현상을 식별 할 수도 있습니다. X11 기반 그래픽 응용 프로그램의 성능과 창 렌더링을 시작하기 전에 응용 프로그램이 초기화되는 데 걸리는 시간을 보여줍니다.
또한 스냅 관련 옵션 "–reinstall-snap"및 "–clean-snap-user-data"를 사용할 수 있으므로 스냅 패키지를 다시 설치하여 캐시없는 측정을 수행하거나 패키지와 관련된 사용자 데이터를 제거 할 수 있습니다. 실행하기 전에.
기본 사용
Etrace는 스냅 패키지로 제공되므로 먼저 설치해야합니다. etrace는 다른 스냅 패키지 및 기존의 Linux 패키지를 포함한 임의의 프로그램을 실행하는 데 사용되기 때문에 다음 명령이 실행될 때 –classic 플래그를 사용하여 승인 할 수있는 클래식 잠금을 통해 시스템 전체 권한이 필요합니다.
etrace를 설치하려면 :
snap install etrace --candidate --classic
첫 번째 etrace 사용 사례 그래픽 응용 프로그램이 화면에 창을 표시하는 데 걸리는 시간을 측정하는 것입니다.
간단한 플러그인 인 gnome-calculator로 시작하여 10 번 순환하여이 실행에 걸리는 시간을 확인합니다. gnome-calculator가 설치되어 있어야합니다-gnome-calculator를 설치하십시오. 여기서는 –no-trace 옵션을 사용합니다. 전체 추적 스택을 원하지 않기 때문에 etrace가 시작하는 데 걸리는 시간을 측정하기 만하면됩니다. 나중에 전체 추적 기능에 대해 설명하겠습니다.
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
또한, Canonical은 다음에 대한 스냅 지원 구현을 발표했습니다. 압축 알고리즘 엘조. LZO 알고리즘은 결과 파일의 크기를 늘리는 대신 최대 압축 해제 속도를 달성하는 데 중점을 둡니다. Chromium으로 패키지를 테스트 할 때 기본 XZ 알고리즘 대신 LZO를 사용하면 SquashFS 이미지의 압축을 푸는 데 필요한 시간을 줄여서 스냅 패키지의 릴리스 속도를 2-3 배 높일 수 있습니다.
특히 일반 deb 패키지에서 처음 설치된 Chromium 실행에는 약 1,7 초가 걸립니다.
XZ를 사용할 때 snap에서 첫 번째 릴리스는 8.1 초, LZO를 사용할 때 3.1 초가 걸립니다. 재부팅시 데이터가 캐시 된 상태에서 시작 시간은 0,6, 0,7 및 0,6 초입니다. 각기.
LZO를 사용하면 스냅 패키지의 크기가 150MB에서 250MB로 증가했습니다.