美文网首页
iOS内存研究

iOS内存研究

作者: 弈梦 | 来源:发表于2018-12-24 12:29 被阅读0次

    swift的MemoryLayout<T>

    MemoryLayout<T>的3个属性:
    size:一个 T 数据类型实例占用连续内存字节的大小
    stride: 从一个T开始地址到下一个T开始地址所占用的连续内存字节的大小
    alignment: T中property的内存对齐大小

    首先来看如下一个结构体:

    struct Person {
        var age: Int64 = 0
        var sex: UInt16 = 0
        var address: Double = 0.0
        var name: UInt8 = 0
    }
    

    对于一个class全部是8,因为class是一个引用类型,本质是一个指针

    class People {
        var age: Int64 = 0
        var sex: UInt16 = 0
        var address: Double = 0.0
        var name: UInt8 = 0
    }
    MemoryLayout<People>.size //8
    MemoryLayout<People>.alignment //8
    MemoryLayout<People>.stride //8
    

    相关文章

      网友评论

          本文标题:iOS内存研究

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