1.为什么二进制重排可以优化启动速度?
答:虚拟内存技术会产生缺页中断Page Fault,这个是个耗时操作;而二进制重排可以对此进行优化。
2.可以简单说一下虚拟内存技术嘛?
答:因为APP加载的时候不应该全部加载到物理内存中,会造成内存空间的浪费;所以引入一个虚拟内存的概念,通过一张虚拟内存和物理内存之间的映射表,将二者对应起来,app以为加载了所有的数据,其实是在虚拟内存中加载,然后通过映射表,与真实的物理内存关联起来。
3.那什么是缺页中断 Page Fault 呢?
答:要访问物理内存之前还没有申请空间,只在映射表中存在对应关系,物理内存中还没有加载数据,就会产生缺页中断。
4.二进制重排是如何对缺页中断做优化的?
答:我们把启动时需要的代码放在一页或者两页中,就很大程度上减少启动时的缺页中断,从而优化启动速度,这就是二进制重排的过程。