静态库和动态库运行时间的区别
关于静态库和动态库的区别网上已经写了很多了,我就不再赘述,大家可以自行搜索。
这里我主要介绍静态库和动态库在运行时间上的区别。
我看书上写的是静态库比动态库在运行速度上快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
静态库和动态库运行时间的区别相关推荐
- C/C++ 静态库和动态库的区别
可执行目标文件 可重定位目标文件 共享目标文件 静态库和动态库的区别: 生效阶段不同,静态库是在编译阶段就会把其链接到可执行目标文件中:动态库是在程序运行过程中指定路径或者系统动态库路径下寻找. -l ...
- 关于静态库、动态库的区别汇总
real framework中不可以使用类别 或 不可以不包含类文件 real framework 中直接调用NSClassFromString函数会返回null 需要强制加载指定类 或 直接通过类 ...
- C++静态库与动态库的区别?
C++静态库与动态库 这次分享的宗旨是--让大家学会创建与使用静态库.动态库,知道静态库与动态库的区别,知道使用的时候如何选择.这里不深入介绍静态库.动态库的底层格式,内存布局等,有兴趣的同学,推荐一 ...
- 静态库与动态库的区别
静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用. 什么时候我们会用到库呢?一种情况是某些代码需要给别人使用,但是我们不希望别人 ...
- 静态库与动态库(共享库)的联系与区别
提要: 1.静态库 静态库,也称作归档库(archive),按惯例它们的文件名都以.a结尾.比如,标准C语言函数库/usr/lib/libc.a和X11函数库/usr/ ...
- Linux中静态库和动态库(共享库)的区别
1. 静态库和动态库的制作过程区别 1.1 静态库的制作过程 详见博客:Linux中静态库的制作与使用 1.2 动态库的制作过程 详见博客:Linux中动态库(共享库)的制作与使用 2. 静态库和动态 ...
- 静态库与动态库的区别(转)
静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用. 什么时候我们会用到库呢?一种情况是某些代码需要给别人使用,但是我们不希望别人 ...
- 静态库,动态库是啥,有啥区别(静态函数库/动态函数库)
因之前初学接触这个概念的时候无法直观的理解,询问多人也得到类似如下回复:静态库就是静态库,动态库就是动态库.一个编译一个不编译等类似的回复.伪善的人太多,披着"有问题可以问我"的外 ...
- 静态库和动态库的区别(面试题)
目前以lib为后缀的库有两种,一种为静态链接库,另一种则为动态连接库的导入库. 则他们的区别如下: 静态库 静态函数库的扩展名一般为(.a或.lib),这类的函数库通常扩展名为libxxx.a或xxx ...
- vs如何把c语言编译成静态库,VS中Debug和Realease、及静态库和动态库的区别整理(转)...
一.Debug和Realease区别产生的原因 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使得程序在代码 ...
最新文章
- (转)开发心得分享:10年编程无师自通
- chrome ui源码剖析-Accelerator(快捷键)
- python一加到二十_46 python学习笔记
- 机器学习之人脸识别face_recognition使用
- get与post区别
- 公司不能把笔记导出去真操蛋
- python xml解析cdata_python基于xml parse实现解析cdatasection数据
- 阿里云云计算 17 块存储的分类
- 2021年长安杯电子数据取证比赛复盘完整版(wp)
- window热敏打印机驱动安装
- matlab 如何将.m文件所在的路径设置为当前活动目录(当前文件夹),以及保存到matlab搜索路径
- 数据结构中存储结构分析
- Java Object类讲解 上帝类及其一些方法的分析
- 基于Spire.Doc转PDF得方法,没有授权只能三页
- MSAA,SSAA,CSAA,CFAA...如何正确地为您的游戏设置抗锯齿模式
- Nginx HTTP请求的11个阶段
- C++开发支持Android共享库(so)教程
- Socket之文件下载
- matlab画分形minkowski,分形系列之matlab绘制koch曲线
- GEE:绘制累积降雨量折线图、降雨量均值折线图