静态链接是否比本地代码慢

Is static linking slower than local code

我正在编写一些统计软件(C++),其中速度是重中之重;其次是可维护性。

另外,我编写了一个静态库,它将我经常使用的一组算法捆绑在一起。我的许多程序都使用这个库,因此独立维护这些算法对我来说非常适合。新的统计软件也是用这个库。

在调试新软件时,我注释掉了对库中一些简单(计算性)函数的一些调用。由于省略调用而导致的速度增加似乎不成比例 - 提出这个问题:

问。 是否存在与调用静态链接代码相关的执行时间惩罚,超出在本地编译相同代码会产生的惩罚?

注意 - 这很难搜索。我所有的互联网搜索结果都是静态链接与动态链接的比较——这不相关。

编辑 - 测试是在发布版本中进行的(不是调试)。

没有。链接静态库等同于 linking 组成库的目标文件。在 compile/link 时间和 运行 时间应该没有明显的区别,无论是 link 来自静态库的代码还是将源代码复制粘贴到文件中,然后将其构建为本地 .o 文件.

速度上的任何差异应该仅来自 代码更改(尽管如果您使用 LTO(link 时间优化)可能需要注意)。