博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux库引入静态库和动态库,两者区别
阅读量:2085 次
发布时间:2019-04-29

本文共 517 字,大约阅读时间需要 1 分钟。

一.静态库(本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。)

  1. 什么是静态库
    静态库是在程序执行(编译)之前被加载到目标程序当中去的库。
  2. 静态库的优点和缺点
    (1)优点
  • 运行速度:在程序运行之前就被加载到了目标程序当中,运行速度快;
  • 简便性:在发布程序时无需提供静态库,因为已经存在于目标程序当中了
    (2)缺点
  • 内存的占用:链接时需要完整地拷贝到可执行文件当中去,当被多次使用就会产生多份冗余拷贝,占用内存大。
  • 运营麻烦:更新,部署,发布麻烦。

二.动态库

  1. 什么是动态库
    动态库是在可执行文件运行时,由操作系统临时(动态)地加载到内存供目标程序运行的库。
  2. 动态库的优点和缺点
    (1)优点
  • 内存的占用:链接时无需拷贝,由操作系统将动态库加载到内存中,供目标程序调用,系统仅需加载一次,节省内存。
  • 简便性:程序升级简单,因为可执行文件中不包含动态库的源码,所以只要升级后的库的名称,库的函数名和参数不变,只是实现做了优化,就能加载成功。
    (2)缺点
  • 运行速度::因为动态库是被目标程序运行时临时(动态)地调用的,所以相对于已经加载到目标程序当中的静态库而言,运行速度会更慢。
  • 运营麻烦:更新升级需要提供依赖的库。

转载地址:http://gavqf.baihongyu.com/

你可能感兴趣的文章
TensorFlow2 学习——RNN生成古诗词
查看>>
Spark源码剖析——SparkContext实例化
查看>>
基于阿里云的数据仓库架构设计
查看>>
Docker——安装、常用命令、生成镜像(Dockerfile)
查看>>
OpenCV学习——图像基础与几何变换
查看>>
OpenCV学习——图像特效
查看>>
Spark源码剖析——Action操作、runJob流程
查看>>
分布式——缓存一致性(Redis、MySQL)
查看>>
Gminer 配置参数
查看>>
Linux学习笔记——20170802
查看>>
Linux学习笔记——20170803
查看>>
Linux学习笔记——20170804
查看>>
Linux学习笔记——20170805
查看>>
Linux学习笔记——20170807
查看>>
MySQL学习笔记——20170808
查看>>
MySQL学习笔记——20170809
查看>>
MySQL学习笔记——20170810
查看>>
MySQL学习笔记——20170811
查看>>
MySQL学习笔记——20170812
查看>>
Android内存溢出与优化(五)——防止static引用
查看>>