关于静态库和动态库的区别网上已经写了很多了,我就不再赘述,大家可以自行搜索。

这里我主要介绍静态库和动态库在运行时间上的区别。

我看书上写的是静态库比动态库在运行速度上快1%~5%。

然后我写了一段程序test.c

#include<stdio.h>
void writeFile(void){
    int i = 0;
    for(;i<100000;i++){
        FILE *fp;
        fp = fopen("test1.txt","w");
        fprintf(fp,"hello,world %d ",i);
        fclose(fp);
    }
}

(简单介绍就不写.h文件了,如果大家习惯.h书写规则,就自己写一个吧。)
然后分别编译成静态库和动态库,编译过程网上都有

再写一个main.c

#include<stdio.h>
#include<time.h>

extern void writeFile(void) //声明writeFile函数

int main(){
    clock_t start,stop;
    double totle;
    start = clock();
    writeFile();
    stop = clock();
    totle = ((double)(stop-start)/CLOCKS_PER_SEC);
    printf("%fs \n",totle);
    return 0;
}
最后运行编译主程序分别调用静态库和动态库,生成testSta 和 testDyn 的可执行文件。

△记住:main中不要去#include"test.c"或者#include"test.h"否则我们最后加载的都是静态库,不会加载到动态库。

如果我们最后要去看下有没有加载到动态库,可以使用gdb调试。

运行后发现,在差异的时间在linux系统运行程序时间的波动上,基本没什么区别,这也难怪网上基本没有写动态库和静态库在运行时间上的区别。

[root@localhost test1]# ./testSta
8.330000s 
[root@localhost test1]# ./testDyn
8.490000s 
[root@localhost test1]# ./testSta
8.510000s 
[root@localhost test1]# ./testDyn
8.480000s

静态库和动态库运行时间的区别相关推荐

  1. C/C++ 静态库和动态库的区别

    可执行目标文件 可重定位目标文件 共享目标文件 静态库和动态库的区别: 生效阶段不同,静态库是在编译阶段就会把其链接到可执行目标文件中:动态库是在程序运行过程中指定路径或者系统动态库路径下寻找. -l ...

  2. 关于静态库、动态库的区别汇总

    real framework中不可以使用类别 或 不可以不包含类文件 real framework 中直接调用NSClassFromString函数会返回null  需要强制加载指定类 或 直接通过类 ...

  3. C++静态库与动态库的区别?

    C++静态库与动态库 这次分享的宗旨是--让大家学会创建与使用静态库.动态库,知道静态库与动态库的区别,知道使用的时候如何选择.这里不深入介绍静态库.动态库的底层格式,内存布局等,有兴趣的同学,推荐一 ...

  4. 静态库与动态库的区别

    静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用. 什么时候我们会用到库呢?一种情况是某些代码需要给别人使用,但是我们不希望别人 ...

  5. 静态库与动态库(共享库)的联系与区别

    提要: 1.静态库                 静态库,也称作归档库(archive),按惯例它们的文件名都以.a结尾.比如,标准C语言函数库/usr/lib/libc.a和X11函数库/usr/ ...

  6. Linux中静态库和动态库(共享库)的区别

    1. 静态库和动态库的制作过程区别 1.1 静态库的制作过程 详见博客:Linux中静态库的制作与使用 1.2 动态库的制作过程 详见博客:Linux中动态库(共享库)的制作与使用 2. 静态库和动态 ...

  7. 静态库与动态库的区别(转)

    静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用. 什么时候我们会用到库呢?一种情况是某些代码需要给别人使用,但是我们不希望别人 ...

  8. 静态库,动态库是啥,有啥区别(静态函数库/动态函数库)

    因之前初学接触这个概念的时候无法直观的理解,询问多人也得到类似如下回复:静态库就是静态库,动态库就是动态库.一个编译一个不编译等类似的回复.伪善的人太多,披着"有问题可以问我"的外 ...

  9. 静态库和动态库的区别(面试题)

    目前以lib为后缀的库有两种,一种为静态链接库,另一种则为动态连接库的导入库. 则他们的区别如下: 静态库 静态函数库的扩展名一般为(.a或.lib),这类的函数库通常扩展名为libxxx.a或xxx ...

  10. vs如何把c语言编译成静态库,VS中Debug和Realease、及静态库和动态库的区别整理(转)...

    一.Debug和Realease区别产生的原因 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使得程序在代码 ...

最新文章

  1. (转)开发心得分享:10年编程无师自通
  2. chrome ui源码剖析-Accelerator(快捷键)
  3. python一加到二十_46 python学习笔记
  4. 机器学习之人脸识别face_recognition使用
  5. get与post区别
  6. 公司不能把笔记导出去真操蛋
  7. python xml解析cdata_python基于xml parse实现解析cdatasection数据
  8. 阿里云云计算 17 块存储的分类
  9. 2021年长安杯电子数据取证比赛复盘完整版(wp)
  10. window热敏打印机驱动安装
  11. matlab 如何将.m文件所在的路径设置为当前活动目录(当前文件夹),以及保存到matlab搜索路径
  12. 数据结构中存储结构分析
  13. Java Object类讲解 上帝类及其一些方法的分析
  14. 基于Spire.Doc转PDF得方法,没有授权只能三页
  15. MSAA,SSAA,CSAA,CFAA...如何正确地为您的游戏设置抗锯齿模式
  16. Nginx HTTP请求的11个阶段
  17. C++开发支持Android共享库(so)教程
  18. Socket之文件下载
  19. matlab画分形minkowski,分形系列之matlab绘制koch曲线
  20. GEE:绘制累积降雨量折线图、降雨量均值折线图

热门文章

  1. scrum敏捷开发流程介绍和心得
  2. 5 分钟,教你从零快速编写一个油猴脚本!
  3. 关于民族的数据库表设计
  4. 浅析RFID固定资产管理系统应用背景与技术优势
  5. 分支定界法(matlab实现)
  6. NAT穿透的工作原理
  7. 非接触式IC卡的分类(三)
  8. 初秋最佳运动蓝牙耳机推荐,100-500这几款防水蓝牙耳机可以试试
  9. 小米蓝牙耳机持续白灯_小米蓝牙耳机air2怎么重置
  10. Java widget xui_XUI使用总结