库中的链接时间优化

时间:2016-02-12 00:38:16

标签: c++ linux gcc optimization linker

我刚刚开始学习链接时优化,所以我不确定这是不是一个愚蠢的问题。

我正在编写一个主要用于我们组织的库。有大量的类,包含公共和私有函数,并且使用Boost以Python模块的形式导出公共函数的一小部分。所有其他功能(公共和私有)仅在库中使用。我尝试使用-flto -fuse-linker-plugin,并发现了性能上的重要改进。我想知道是否有可能向优化器传达任何函数,除了那些导出到Python的函数,可能都是优化的,因为库将仅通过python模块使用。

我很感激任何意见/建议。

1 个答案:

答案 0 :(得分:1)

你没有陈述你的平台,我建议的将用于ELF目标,如Linux,Solaris,* BSD

您可以使用符号可见性,基本上告诉编译器/链接器只公开用于与python接口的方法/函数。链接:https://gcc.gnu.org/wiki/Visibility

第二个提议是使用黄金链接器,对我来说,使用黄金链接器编译的应用程序/共享库正在运行一点点(但可测量的位)更快

更新

以下链接到我的问题/讨论wrt gold vs BFD链接器

Is binary linked with gold linker running faster?