Ubuntu 开发人员已开始解决 Firefox snap 包启动缓慢的问题

Canonical 已开始使用 Ubuntu 22.04 中默认提供的 Firefox snap 包(而不是常规的 deb 包)来解决性能问题。 用户的主要不满与Firefox的启动速度非常缓慢有关。 例如,在 Dell XPS 13 笔记本电脑上,安装后首次启动 Firefox 需要 7.6 秒,在 Thinkpad X240 笔记本电脑上为 15 秒,在 Raspberry Pi 400 板上为 38 秒。 重复发射分别在0.86、1.39和8.11秒内完成。

通过对问题的分析,发现启动慢的主要原因有4个,解决方案重点是:

  • 在压缩的 squashfs 映像内搜索文件时,开销较高,这在低功耗系统上尤其明显。 计划通过内容分组来解决该问题,以尽量减少启动时移动图像的操作。
  • 在 Raspberry Pi 和配备 AMD GPU 的系统上,长时间延迟与确定图形驱动程序失败以及回退到使用软件渲染以及着色器编译速度非常慢有关。 解决该问题的补丁已添加到 snapd 中。
  • 花费了大量时间将包中内置的附加组件复制到用户目录中。 snap包中内置了98个语言包,无论选择什么语言,都被复制了。
  • 由于识别所有可用字体、图标主题和字体配置,也出现了延迟。

从 snap 启动 Firefox 时,我们在运行过程中也遇到了一些性能问题,但 Ubuntu 开发人员已经准备了修复程序来提高性能。 例如,从 Firefox 100.0 开始,构建时会启用链接时优化 (LTO) 和代码分析优化 (PGO)。 为了解决 Firefox 和外部子系统之间的消息传递问题,已经准备了一个新的 XDG 桌面门户,对其的支持正处于审查阶段以纳入 Firefox。

浏览器推广snap格式的原因包括希望简化维护并统一不同版本Ubuntu的开发——deb包需要对所有支持的Ubuntu分支进行单独维护,并相应地考虑到不同版本的系统进行组装和测试组件,并且可以为Ubuntu所有分支立即生成snap包。 此外,Ubuntu 和 Firefox 中提供的 snap 包是由 Mozilla 员工维护的,即它是直接形成的,没有中间人。 以 snap 格式交付还可以加快向 Ubuntu 用户交付新版本浏览器的速度,并可以在使用 AppArmor 机制创建的隔离环境中运行 Firefox,以进一步保护系统的其余部分免遭利用浏览器中的漏洞。

来源: opennet.ru

添加评论