目前,我正在权衡运行本地铬版本的潜在利弊。
我以前从未从源代码中构建过铬,但我知道这是一个庞大的项目,而且编译要求很高,而且很费时。
我以前试过这个想法,但原因是以表现为中心。具体而言:
经过一段时间的研究,我最终得出了这样的结论:这是不值得付出的努力。
我确实记得几年前运行过Firefox的PGO构建,而且Firefox似乎仍然为运行PGO构建提供了不错的支持。然而,就铬而言,它似乎要复杂得多。
铬似乎对PGO的构建有一些本地支持。不幸的是,这种支持看起来完全是Windows特有的。不支持其他操作系统的PGO构建,而且所有Chromium独特的构建复杂性,似乎不值得在没有这种帮助的情况下尝试使用PGO构建。
如果其他人知道有人在Linux上成功地尝试了这一点,我将非常感兴趣地看到结果。
关于GCC的CPU优化,我的理解是,这里提供的好处几乎总是有限的,但考虑到铬是多么复杂,它可能比大多数应用程序受益更多,这似乎是合理的。
仅仅对GCC进行优化可能还是不值得的,但我再次考虑这样做的原因是,我还可以利用修补程序启用VA:https://aur.archlinux.org/packages/chromium-vaapi/。
最后,获得对硬件加速视频解码的支持是值得的。现在,我好奇的是,在这样做时,性能考虑是什么。
tl;dr
发布于 2017-01-17 08:37:56
FWIW,我运行Gentoo Linux,这意味着我的系统上的一切都是从源代码编译的。我在从源代码中构建铬、使用自定义标记和使用也可用的二进制google稳定包之间进行了交替。我确实注意到了运行本地编译的Chrome与预装的Google二进制代码相比的性能改进。
现在,我不能说这是编译器优化的结果,还是Google Chrome和Chrome版本之间的差异(目前它们非常接近-- Google 55.0.2883.87和Chromium55.0.2883.75)。但是,改进已经足够了,我将回到铬,并可能会停留一段时间。
从源代码构建它的缺点(尤其是如果在您的操作系统上更新包意味着重新构建它),它经常运行,而在i7 8Gb笔记本电脑上用SSD构建它需要将近两个小时。因此,它将大多数系统更新转化为一个漫长而缓慢的过程--这就是我一年或两年前转向二进制构建的原因。
https://stackoverflow.com/questions/40111800
复制相似问题