iOS启动优化-什么是二进制重排

89 阅读1分钟

1.为什么二进制重排可以优化启动速度?

答:虚拟内存技术会产生缺页中断Page Fault,这个是个耗时操作;而二进制重排可以对此进行优化。

2.可以简单说一下虚拟内存技术嘛?

答:因为APP加载的时候不应该全部加载到物理内存中,会造成内存空间的浪费;所以引入一个虚拟内存的概念,通过一张虚拟内存和物理内存之间的映射表,将二者对应起来,app以为加载了所有的数据,其实是在虚拟内存中加载,然后通过映射表,与真实的物理内存关联起来。

3.那什么是缺页中断 Page Fault 呢?

答:要访问物理内存之前还没有申请空间,只在映射表中存在对应关系,物理内存中还没有加载数据,就会产生缺页中断。

4.二进制重排是如何对缺页中断做优化的?

答:我们把启动时需要的代码放在一页或者两页中,就很大程度上减少启动时的缺页中断,从而优化启动速度,这就是二进制重排的过程。