静态链接与动态链接的区别,动态链接有何优点?

静态链接:

如果函数库的一份副本是可执行文件的物理组成的一部分,那我们称之为静态链接

动态链接:

如果可执行文件只是包含了文件名,让载入器在运行时能够寻找程序所需要的函数库,那么我们称之为动态链接

以上静态链接与动态链接的在宏观上的具体的区别,简单来说是对库的链接时机的不同,那么同阳会造成响应结果!

接下来让我们细致起来看看造成的结果吧!

废话少说,上图!

 

如图所示便是现象:在生成可执行文件的大小有着显著的区别。

因为静态链接是在编译的时候将库编入到可执行文件中;而动态链接是在执行时才将库链接链接进去,所以不会成为可执行文件的一部分。

这里有个小点:动态链接时外部函数被真正调用之前,运行时载入器并不解析他们。所以即使连接了函数库,如果并没有实际调用,也不会带来额外的开销。

下面我们谈一谈关于动态链接的优点: 

尽管动态链接单个执行文件启动时的速度稍受影响,但是动态链接可以从以下两个方面进行提高: 

1.动态链接可执行文件比功能相同的的静态链接可执行的文件的体积小。它能够节省磁盘空间和虚拟内存,应为函数库只有在需要时才被映射到进程中。

2.所有动态链接到某个特定函数库的可执行文件在运行时共享该库函数的一个单独副本。操作系统内核保证映射到内存中的函数库可以被所有使用它的进程共享。

分享不易,点个赞先

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值