Canonical推出了etrace实用程序 设计用于跟踪应用程序执行期间的活动。 该程序类似于strace和ltrace实用程序,并且在运行时也使用ptrace。
目标 etrace负责人 正在调试和分析已启动的应用程序 from snap该实用程序使您可以快速评估运行snap软件包时使用的程序和文件。
提供了两个命令,“ exec”和“ file”, 有关如何访问文件和运行其他进程的信息。 在第一种情况下,监视与文件相关的系统调用的工作,在第二种情况下,拦截执行系统调用的族。
Etrace是一个通用的跟踪应用程序,可用于三个广泛的测量和调试目的:
- 应用程序在屏幕上显示窗口(图形/ UI)需要多长时间。
- 主程序在其执行时间内创建和执行的任务序列。 在程序执行过程中访问的文件列表。
这些指标可用于调试潜在问题 快速了解一下软件包试图立即捕捉或发现性能瓶颈的原因。
当然, 也适用于本机linux软件包或任何可执行程序,尽管其开箱即用的功能略有减少(例如,它不会重新安装本机软件包),但是您仍然可以跟踪该应用并测量显示一个窗口所需的时间。
该实用程序还可用于识别瓶颈 基于X11的图形应用程序的性能,并显示在开始渲染窗口之前应用程序初始化需要花费多长时间。
此外,特定于快照的选项“ –reinstall-snap”和“ –clean-snap-user-data”可用,允许您重新安装快照程序包以执行无缓存测量或删除与该程序包关联的用户数据。在运行它之前。
基本用途
Etrace可作为snap软件包提供,因此我们必须先安装它。 由于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宣布对以下产品实施snap支持 压缩算法 LZO。 LZO算法专注于实现最大的解压缩速度,但代价是增加了生成文件的大小。 使用Chromium测试软件包时,使用LZO而不是默认的XZ算法,可以通过减少解压缩SquashFS映像所需的时间来加快Snap软件包的发布2-3倍。
特别是,从普通的deb软件包安装的第一次Chromium发射大约需要1,7秒。
使用XZ时,从snap的第一个发行版耗时8.1秒,使用LZO时是3.1秒。 重新启动后,缓存了数据,启动时间为0,6、0,7和0,6秒。 分别。
使用LZO时,Snap软件包的大小已从150MB增加到250MB。