【发布时间】:2018-02-27 22:05:59
【问题描述】:
一个相当大的共享库(许多模板实例化)的 LTO 构建需要相当长的时间(>10 分钟)。现在我知道一些关于库的事情,并且可以以对象文件的形式指定某种“黑名单”,不需要一起分析(因为它们之间没有调用应该内联或这样),或者我可以指定应该一起分析的目标文件组。这是否可能(不拆分库)?
【问题讨论】:
-
您不能在开发时使用
LTO构建,而只能为候选发布版本启用它? -
在分析和修复性能问题时,还需要重复本地构建。
-
我不确定你会赢多少。您是否尝试过
-flto=8(或任何数字或-flto=jobserver)来获得一些并行性? -
我已经在使用
-flto=40:) LTO 的操作在这里描述:gcc.gnu.org/onlinedocs/gccint/LTO-Overview.html 有三个阶段:LGEN,WPA,LTRANS。 WPA 对代码进行分区,然后 LTRANS 在分区上并行运行。我可以看到在 LTRANS 阶段运行了大约 15 个线程,但应该更多。我需要明确指导 WPA 的分区来改变它。