库中的链接时间优化
Link Time Optimization in libraries
我刚刚开始学习链接时间优化,所以我不确定这是否是一个愚蠢的问题。
我正在编写一个库,主要供我们组织内部使用。有大量的类,既有公共函数也有私有函数,一小部分公共函数使用 Boost 以 Python 模块的形式导出。所有其他函数(包括公共和私有)仅在库中使用。我尝试使用-flto
-fuse-linker-plugin
,并发现性能有了不小的提高。我想知道是否可以向优化器传达除导出到 Python 的函数之外的任何函数都可能经过优化,因为该库将仅通过 python 模块使用。
我将不胜感激任何意见/建议。
你没有说明你的平台,我的建议将适用于 ELF 目标,如 Linux、Solaris、*BSD
你可以玩符号可见性,基本上告诉编译器/链接器只公开用于与python接口的方法/函数。链接: https://gcc.gnu.org/wiki/Visibility
第二个建议是使用黄金链接器,对我来说,使用黄金链接器编译的应用程序/共享库运行得更快一点(但可测量一点)
更新
这是我的问题/讨论的链接 wrt 黄金与 BFD 链接器
二进制链接与黄金链接器运行得更快吗?
相关文章:
- 为什么 std::chrono 在测量循环和编译器优化的并行 OpenMP 的执行时间时不起作用?
- 如何优化C++键值程序以获得更快的运行时间
- 优化了第 n 个质数执行时间的 c++ 函数
- 使用LTO静态链接的可执行文件(链接时间优化):如何使用以前构建的库进行制作
- 在NDK中启用链接时间优化时,链接器错误
- C1001反量时间的错误(无优化)
- 如何使用MINGW-W64通过链接时间优化构建QT
- 优化时间性能Unordered_map C
- 在Windows上使用GCC的链接时间优化构建wxWidgets DLL时出错
- C 控制台应用程序;在牙科诊所情况下,时间优化了队列
- gcc 5.1 中的链接时间优化是否足以放弃内联简单函数
- 如何进行llvm链接时间优化
- 库中的链接时间优化
- 生成排列的时间优化(竞争编程)
- Clang链接时间优化与替换的操作员新的原因不匹配的自由()/删除在valgrind
- 是否可以启用链接时间优化,同时仅禁用某些函数的严格混叠
- 链接时间优化与多线程支持冲突
- Mac上的g++链接时间优化-编译器/链接器错误
- 链接时间优化vs.项目内联;每种方法的局限性
- LLVM 和安装时间优化