Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在对文件进行上划线和下划线时是否会损失性能?_Linux_Linker_Shared Libraries_Dynamic Linking - Fatal编程技术网

Linux 在对文件进行上划线和下划线时是否会损失性能?

Linux 在对文件进行上划线和下划线时是否会损失性能?,linux,linker,shared-libraries,dynamic-linking,Linux,Linker,Shared Libraries,Dynamic Linking,有些人正在链接共享对象文件,以便在其所需列表中没有条目,并且在将这些so文件链接到二进制文件时,将所有so文件的可传递依赖项放在所创建二进制文件的所需列表中,而不管二进制文件是否实际需要这些so文件 前一种不将所需SO文件链接到某个SO文件的行为称为下划线,后一种将太多SO文件链接到某个二进制文件的行为称为超链接 我正在与同事讨论构建应用程序及其SO文件的方案是否会在构建或运行应用程序或其SO文件时带来任何性能成本。例如,PLT的动态符号分辨率可能有额外的成本?有人能解释一下吗 它肯定会改变符号

有些人正在链接共享对象文件,以便在其所需列表中没有条目,并且在将这些so文件链接到二进制文件时,将所有so文件的可传递依赖项放在所创建二进制文件的所需列表中,而不管二进制文件是否实际需要这些so文件

前一种不将所需SO文件链接到某个SO文件的行为称为下划线,后一种将太多SO文件链接到某个二进制文件的行为称为超链接


我正在与同事讨论构建应用程序及其SO文件的方案是否会在构建或运行应用程序或其SO文件时带来任何性能成本。例如,PLT的动态符号分辨率可能有额外的成本?有人能解释一下吗

它肯定会改变符号查找的性能,可能会变得更糟。ELF符号解析是一种广度优先搜索,从可执行文件本身的符号表开始,然后是可执行文件的DT_所需库的符号表,然后是这些库的DT_所需符号表,等等。通过对主可执行文件进行超链接,您可能会强制进行更多的符号查找,以遍历更多库的符号表。

我认为符号解析和重新定位的数量比链接的
数量更重要。因此
文件。动态链接器当然喜欢
dlopen
,维护每个
的refcount。因此