有没有人有使用gcc的LTO(C++)的经验?

Yuv*_*val 18 c++ gcc

我的主要兴趣是将代码从头文件移动到源文件(用于解耦),但保持内联内容的相同性能.

我不知道从哪里开始,有人可以解释该怎么做?

小智 5

我在Firefox和LTO上做了一些测试,显示了内存使用,编译时间和运行时间 在我的博客上也与LLVM进行了比较.LTO正在迅速发展,GCC 4.9票价明显优于之前的版本.如何使它适用于给定的应用程序并不总是显而易见的,该文本描述了您可能遇到的主要问题(缺少链接器插件,使用胖LTO文件并丢弃链接上的LTO部分等)


Zor*_*lub 4

我们做了非常有限的实验。在我们的例子中,性能提升几乎可以忽略不计,但由于我们已经考虑了良好的内联,所以这并不令人意外。

然而,启用LTO会导致GCC的内存消耗大幅增加,基本上导致我们的4 CPU / 4 GB开发机器上无法进行并行编译,因此我们暂停了实验,等待未来的版本再次尝试。

  • 这方面有更新吗?你又试过了吗?GCC 4.7.0 变更日志表明已经做出了重大改进(他们给出的示例是使用 LTO 构建 Firefox,GCC 4.7 需要 3GB 才能做到这一点,而以前的版本需要 8GB) (2认同)