本文简要梳理dyld是是什么,引入共享缓存概念,并对dyld的流程进行总结
dyld简介
dyld是苹果的动态链接器,负责程序的链家及加载工作,是苹果操作系统重要组成部分。在应用被编译打包为可执行文件Mach-o之后,交由dyld负责链接,加载程序
共享缓存
dyld_shared_cache
苹果从3.1之后,将所有系统库(私有公有)编译为一个大的缓存文件,该缓存文件存放于
/System/Library/Caches/com.apple.dyld/
dyld流程分析:
...此处省略很多。。。【后期补充】
dyld工作结束之后,需要将控制交给可执行文件入口
dyld流程总结
系统读取可执行文件,从中读取dyld路径,加载dyld,由dyld开始初始化运行环境,开启共享缓存。加载动态库和可执行文件,并对它们链接,最后调用依赖库的初始化方法,当初始化完毕时,初始化可执行文件,对项目中类接口初始化,调用load方法,加载main()函数,获取程序入口
dyld启动优化思路
- 动态链接依赖是动态库,减少动态库数量。第三方用到的动态库改为静态库
main前的执行load方法,实现load方法的类是非懒加载类,减少load方法调用
类结构初始化,减少类的数量。删除无用的类
二进制重排,页大小











网友评论