linux环境, C语言中, 同一套库的代码编译成静态库和动态库使用, 性能上有差吗?

 fion依依315 发布于 2022-11-05 05:01

linux环境, C语言中, 同一套库的代码编译成静态库和动态库使用, 性能上有差吗?

3 个回答
  • 性能上差异不大,差异主要体现在文件大小上

    2022-11-09 01:05 回答
  • 理论上是会有一点差别的,动态库需要加载并链接符号表,并且动态库自己独占一段内存空间,函数调用时会不利于指令缓存的命中率。
    不过实际使用中绝大部分的CPU不是消耗在这里的,而且使用共享的动态库可以减少一部分磁盘I/O,所以你应该感觉不到什么差别。

    2022-11-09 01:06 回答
  • 1.启动时,一般动态链接拥有更好的性能。
    因为,动态链接库可以不在启动时载入,或者已经被别的程序载入了,不需要再一次载入到内存。

    2.运行时,一般静态链接会拥有更好的性能。
    因为,动态链接库可能在运行时需要载入到内存,同时,对于编译成地址无关的动态链接库文件,
    执行时会多一步地址计算,性能会稍差一些。

    3.另外,如果内存不足时,因为静态链接的文件可能比动态连接不常用,更容易被swapout,那运行时性能,
    动态链接也可能优于静态链接。

    2022-11-09 01:07 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有