静态链接比本地代码慢

问题描述 投票:0回答:1

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

另外,我编写了一个静态库,它将我常用的算法集合在一起。我的许多程序都使用这个库,所以保持这些算法的独立性对我来说非常合适。新的统计软件也使用这个库。

在调试新软件时,我从库中注释了一些对一些简单(计算方面)函数的调用。省略呼叫导致的速度提升似乎不成比例 - 提出这个问题:

问:除了在本地编译相同代码所导致的那些之外,是否存在与调用静态链接代码相关的执行时间惩罚?

注意 - 这很难搜索。我的所有互联网搜索都会导致静态链接与动态链接的比较 - 这与链接无关。

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

c++ static-linking
1个回答
4
投票

否。链接静态库等效于链接组成库的目标文件。无论是从静态库链接代码还是将源复制粘贴到您随后构建为本地.o文件的文件,编译/链接时间和运行时都不应存在显着差异。

速度的任何差异都应该仅来自代码更改(尽管如果使用LTO(链接时间优化)可能会有一个警告。

© www.soinside.com 2019 - 2024. All rights reserved.