美文网首页
2017.02.06-共享库的概念

2017.02.06-共享库的概念

作者: Girl_endless | 来源:发表于2017-02-06 18:35 被阅读196次

今天在看内存测试的时候,多次遇到共享库这个名词。

VSS- Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
RSS- Resident Set Size 实际使用物理内存(包含共享库占用的内存)
PSS- Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
USS- Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)

那么什么是共享库,查阅相关资料后,大致如下:

一、什么是库
本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的本质不同,因此二者库的二进制是不兼容的。

通常库分为:静态库,共享库,动态加载库。

静态库:_就是一些目标文件的集合,以.a结尾。静态库在程序链接的时候使用,链接器会将程序中使用到函数的代码从库文件中拷贝到应用程序中。一旦链接完成,在执行程序的时候就不需要静态库了。由于每个使用静态库的应用程序都需要拷贝所用函数的代码,所以静态链接的文件会比较大。

共享库:以.so结尾. (so ==share object) 在程序的链接时候并不像静态库那样在拷贝使用函数的代码,而只是作些标记。然后在程序开始启动运行的时候,动态地加载所需模块。所以,应用程序在运行的时候仍然需要共享库的支持。 共享库链接出来的文件比静态库要小得多。

动态加载库(dynamicallyloaded (DL) libraries):是指在程序运行过程中可以加载的函数库。而不是像共享库一样在程序启动的时候加载。DL对于实现插件和模块非常有用,因为他们可以让程序在允许时等待插件的加载。在Linux中,动态库的文件格式跟共享库没有区别,主要区别在于共享库是运行时加载。
有专门的一组API用于完成打开动态库,查找符号,处理出错,关闭动态库等功能。

相关文章

  • 2017.02.06-共享库的概念

    今天在看内存测试的时候,多次遇到共享库这个名词。 VSS- Virtual Set Size 虚拟耗用内存(包含共...

  • linux共享库

    共享库: 1.概念 共享库就是动态链接库,是在程序运行的时候加载的函数库。详细介绍:https://blog.cs...

  • MySQL体系架构

    基础概念 数据库实例是由数据库后台进程/线程以及一个共享内存区组成。共享内存可以被运行的后台进程/线程所共享。需要...

  • 知识点:OC中.a和framework的区别(转)

    OC中的库概念 库是共享程序代码的方式,一般分为静态库和动态库 静态库 && 动态库 区别 静态库:链接时,完整的...

  • OC中.a和framework的区别

    OC中的库概念 库是共享程序代码的方式,一般分为静态库和动态库 静态库 && 动态库 区别 静态库:链接时,完整的...

  • iOS-SDK开发之制作自己的静态库 .framework和.a

    先来看几个概念定义: 什么是库?库是共享程序代码的方式,一般分为静态库和动态库。 静态库和动态库的区别?静态库:链...

  • iOS 打包.framework

    一、概念了解1.什么是库?库是共享程序代码的方式,一般分为静态库和动态库。 2.静态库和动态库的区别静态库:链接时...

  • IOS-静态库(.a、framewrok)、动态库(.tbd、f

    技 术 文 章 / 超 人 关于库思维导图: 库 概念 什么是库库是共享程序代码的方式。库从本质上来说是一种可执行...

  • 数据库 笔记

    一、数据库的一些概念 数据库的概念: 数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度、与...

  • 【MySQL】1、MySQL介绍

    什么是数据库 数据库 ( DataBase , 简称DB )概念 : 长期存放在计算机内,有组织,可共享的大量数据...

网友评论

      本文标题:2017.02.06-共享库的概念

      本文链接:https://www.haomeiwen.com/subject/ymeuittx.html