【问题标题】:Link Time Optimization in libraries库中的链接时间优化
【发布时间】:2016-05-23 00:36:50
【问题描述】:

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

我正在编写一个库,主要供我们组织内部使用。有大量的类,既有公有函数,也有私有函数,只有很小的公有函数子集使用 Boost 以 Python 模块的形式导出。所有其他功能,无论是公共的还是私有的,都只能在库中使用。我尝试使用-flto-fuse-linker-plugin,发现性能有了不小的提升。我想知道是否可以向优化器传达任何函数,除了那些导出到 Python 的函数,可能已经优化,因为该库将仅通过 python 模块使用。

如果有任何意见/建议,我将不胜感激。

【问题讨论】:

    标签: c++ linux gcc optimization linker


    【解决方案1】:

    你没有说明你的平台,我建议的将适用于 Linux、Solaris、*BSD 等 ELF 目标

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

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

    更新

    这是我的问题/讨论 wrt 与 BFD 链接器的链接

    Is binary linked with gold linker running faster?

    【讨论】:

    • 我们在 Linux 上。感谢您的回答,我会探索这个。
    • @user2308211 找到了我的问题 wrt 链接器的链接,请检查更新
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    • 1970-01-01
    • 2011-10-26
    相关资源
    最近更新 更多