美文网首页
iOS启动优化

iOS启动优化

作者: 你飞跃俊杰 | 来源:发表于2021-10-22 21:36 被阅读0次

    方法都在栈中,先进后出


    image.png

    属性的地址,整形2个占一个地址(高八位,低八位)


    image.png

    1.非结构体类型:32位 4字节对齐,64位 8字节对齐
    2.结构体类型:以结构体中,最大内存的整数倍对齐
    3.属性8字节对齐,对象16字节对齐

    image.png

    内存都是一直存在的,只是分为活跃跟不活跃
    真实地址:
    Win98 及以前的系统,1.导致内存不够(回收问题),2.不安全(直接访问内存地址,可读到其他程序的数据),
    虚拟内存地址:
    虚拟内存映射表,内申请的内存有限制,无法取读取程序以外的内存


    image.png image.png

    MMU是 MemoryManagementUnit 的缩写即,内存管理单元. 针对各种CPU, MMU是个可选的配件. MMU负责的是虚拟地址与物理地址的转换. 提供硬件机制的内存访问授权.
    ASLR(地址随机化)是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,通过增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的。
    但是,地址随机化不是对所有模块和内存区都进行随机化!虽然libc、栈、堆的加载位置被随机化,但主镜像不会

    image.png image.png

    查看程序启动的分页内存的数量


    image.png

    打印的上一个方法,因为它以为自己是一个结构体,于是内存偏移地往上差,结果查到的是上一次调用的方法


    image.png

    linkmap,查看分页加载顺序


    image.png

    文件排列顺序》文件的方法排列顺序
    二进制重排,将要启动要加载的代码放在一起

    按照文件中的顺序去分页加载


    image.png image.png image.png

    按文件顺序重排
    没有就排


    image.png

    相关文章

      网友评论

          本文标题:iOS启动优化

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