【发布时间】:2016-10-18 15:04:10
【问题描述】:
我目前正在权衡运行 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/chromium-vaapi/
最终获得对硬件加速视频解码的支持可能是值得的。现在我很好奇的是这样做时的性能注意事项。
tl;博士
- 在使用本地编译并经过本机 CPU 优化的 Chromium 构建时,我是否可以预期性能会有任何明显的差异?
- 在 Linux 上使用 Chromium 的 PGO 是否可行,如果可行,进行实际分析的最佳方法是什么?
【问题讨论】:
标签: linux gcc chromium compiler-optimization pgo