我目前正在权衡运行 Chromium 本地版本的潜在利弊。
我以前从未从源代码构建 Chromium,但我知道这是一个巨大的项目,编译要求繁重且耗时。
我以前曾涉足过这个想法,但出于性能方面的原因。具体来说:
- Chromium 能否从 Profile Guided Optimization 中受益匪浅?
- 与使用通用二进制构建相比,使用 GCC 原生 CPU 优化构建 Chromium 能否提供更多的边际性能优势?(特别是 Haswell 和 Broadwell 拱门)
- 在本地构建 Chromium 时,还有什么其他方法可以提高整体性能或内存效率吗?
经过当时的一些研究,我最终得出的结论是,这不值得付出努力。
我确实记得几年前运行 Firefox 的 PGO 构建,而 Firefox 似乎仍然为运行 PGO 构建提供了不错的支持。但是,对于 Chromium,它似乎要复杂得多。
Chromium 似乎确实对 PGO 构建有一些原生支持。不幸的是,这种支持看起来完全是 Windows 特定的。不支持其他操作系统的 PGO 构建,并且由于 Chromium 的所有独特构建复杂性,在没有此帮助的情况下尝试 PGO 构建似乎不值得。
如果其他人知道有人在 Linux 上成功地尝试过这个,我会非常有兴趣看到结果。
关于 GCC CPU 优化,我的理解是这里提供的好处几乎总是微不足道的,但是 Chromium 是多么复杂,它比大多数应用程序从中受益更多似乎是合理的。
仅仅 GCC 优化可能仍然不值得付出努力,但我正在考虑再次这样做的原因是我还可以利用补丁来启用 VA-API: https ://aur.archlinux.org/packages /铬-vaapi/
最后获得对硬件加速视频解码的支持可能值得在这里付出努力。现在我很好奇的是这样做时的性能考虑是什么。
tl;博士
- 当使用本地编译的带有本机 CPU 优化的 Chromium 构建时,我可以预期性能上有任何明显的差异吗?
- 在 Linux 上使用 Chromium 的 PGO 是否可行,如果可行,进行实际分析的最佳方法是什么?