我刚刚开始学习链接时优化,所以我不确定这是不是一个愚蠢的问题。
我正在编写一个主要用于我们组织的库。有大量的类,包含公共和私有函数,并且使用Boost以Python模块的形式导出公共函数的一小部分。所有其他功能(公共和私有)仅在库中使用。我尝试使用-flto
-fuse-linker-plugin
,并发现了性能上的重要改进。我想知道是否有可能向优化器传达任何函数,除了那些导出到Python的函数,可能都是优化的,因为库将仅通过python模块使用。
我很感激任何意见/建议。
答案 0 :(得分:1)
你没有陈述你的平台,我建议的将用于ELF目标,如Linux,Solaris,* BSD
您可以使用符号可见性,基本上告诉编译器/链接器只公开用于与python接口的方法/函数。链接:https://gcc.gnu.org/wiki/Visibility
第二个提议是使用黄金链接器,对我来说,使用黄金链接器编译的应用程序/共享库正在运行一点点(但可测量的位)更快
更新
以下链接到我的问题/讨论wrt gold vs BFD链接器