学习
实践
活动
专区
工具
TVP
写文章
  • 广告
    关闭

    【玩转 GPU】有奖征文

    精美礼品等你拿!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    iOS底层-isa

    这一篇我们分析消息的走态 isa走势图 Root class (class)其实就是NSObject,NSObject是没有超类的,所以Root class(class)的superclass指向nil 每个Meta class的isa指针都指向Root class (meta)。 isa 又是什么? 所谓isa指针,在OC中对象的声明是这样的 对象本身是一个带有指向其类别isa指针的结构体。 当向一个对象发送消息的时候,实际上是通过isa在对象的类别中找到相应的方法。 从上面类别的结构看来,类别也是一个对象,它拥有一个指向其父类的指针,和一个isa指针。当一个类别使用类方法时,类别作为一个对象同样会使用isa指针找到类方法的实现。 这时,isa指向的就是这个类别的元类。 也就是说 众所周知Objective-C(以下简称OC)中的消息机制。消息的接收者可以是一个对象,也可以是一个类。

    12410

    面试驱动技术之 - isa && 元类 && 函数调用

    伪装成首页.jpg 面试驱动技术之 - 带着面试题来找答案 一个NSObject 对象,占用多少内存 对象方法 与 类方法的存放在哪 什么是isa指针 什么是meta-class megsend 是如何找到方法的 // 转成c/c++ 代码后,MNPerson 的结构如下 struct NSObject_IMPL { Class isa; }; struct MNPerson_IMPL { struct 一个NSObject 对象,占用多少内存 思路: 由上面可知,NSObject的本质是结构体,通过NSObject.m 可以发现,NSObject 只有一个 isa 成员,isa 的本质是 class read 0x000060000000eb90 0x60000000eb90: a8 6e 3a 0b 01 00 00 00 00 00 00 00 00 00 00 00 也能发现,前8 位存储 isa 默认创建的时候,分配的内容是16 isa = 8, int age = 4, int height = 4, NSString = char * = 8 最终分配: 8 + 4 + 4 + 8 = 24

    45520

    「类与对象」说一说isa指针

    概要 在讲isa指针前,我们先来看一道经典的面试题: 对象的isa指针指向哪里? 看到这道题,心中可能朦朦胧胧有些答案,也可能不太确定,抑或说不明白。那咱就带着这个问题,揭开isa指针的神秘面纱。 这篇文章主要就isa的作用、数据结构以及如何优化等方面进行讲解。 isa的作用 在文章NSObject对象的分类中,详细讲解了isa指针的指向、如何寻找实例方法和类方法以及如何通过isa指针找到类对象和元类对象的。 基本总结一下,instance对象的isa指向instance对象所对应的Class对象,Class对象的isa指向Class对象所对应的MetaClass对象。 struct objc_object { Class isa; } *id; 在ARM64结构下,isa的类型变成了共用体(union),使用了位域去存储更多信息。

    47120

    三生三世 CPU,ISA 架构变迁

    ▎CPU 的全称叫中央处理器单元,通常用来区分 CPU 的标准是指令集架构(Instruction Set Architecture,简称 ISA)。 开发人员基于指令集架构(ISA),使用不同的处理器硬件实现方案,来设计不同性能的处理器,因此 ISA 又被视作 CPU 的灵魂。 ISA 众生相 自 CPU 于上世纪 60 年代问世,已发展几十年,有几十种不同的指令集架构相继诞生或消亡。 这里挑选 8 个主流架构,简要概括如下表: # 指令集架构 公司 1 x86,CISC 架构个人计算机的标准处理器架构 Intel 2 SPARC,高性能 RISC 架构的代表针对服务器领域设计 Sun RISC-V 指令集可满足从微控制器到超级计算机等不同复杂程度的处理器设计需求,极大地拉低了 CPU 设计准入门槛,并显著降低芯片开发成本。

    48420

    适配器的作用计算机网络,网络适配器的作用

    它是使计算机联网的设备。平常所说的网卡就是将 PC机和LAN连接的网络适配器。网卡(NIC) 插在计算机主板插槽中,负责将用户要传递的数据转换为网络上其它设备能够识别的格式,通过网络介质传输。 就兼容网卡而言,目前,网卡一般分为普通工作站网卡和服务器专用网卡。 服务器专用网卡是为了适应网络服种类较多,性能也有差异,可按以下的标准进行分类:按网卡所支持带宽的不同可分为10M网卡、100M网卡、10/100M自适应网卡、1000M网卡几种;根据网卡总线类型的不同, 主要分为ISA网卡、EISA网卡和PCI网卡三大类,其中ISA网卡和PCI网卡较常使用。 ISA总线网卡的带宽一般为10M,PCI总线网卡的带宽从10M到1000M都有。同样是10M网卡,因为ISA总线为16位,而PCI总线为32位,所以PCI网卡要比ISA网卡快。

    24930

    「类与对象」说一说isa指针

    在讲isa指针前,我们先来看一道经典的面试题: 对象的isa指针指向哪里? 看到这道面试题,心中可能朦朦胧胧有些答案,也可能不太确定,抑或说不明白。 那咱就带着这个问题,揭开isa指针的神秘面纱。 isa的作用 在文章NSObject对象的分类中,详细讲解了isa指针的指向、如何寻找实例方法和类方法以及如何通过isa指针找到类对象和元类对象的。 以及instance对象的isa指向instance对象所对应的Class对象,Class对象的isa指向Class对象所对应的MetaClass对象。 isa结构变化 在ARM 32位的时候,isa的类型是Class类型的,直接存储着实例对象或者类对象的地址, 具体结构如下所示: typedef struct objc_class *Class; typedef struct objc_object { Class isa; } *id; 在ARM64结构下,isa的类型变成了共用体(union),并且使用了位域去存储更多信息。

    20220

    关注

    腾讯云开发者公众号
    10元无门槛代金券
    洞察腾讯核心技术
    剖析业界实践案例
    腾讯云开发者公众号二维码

    相关产品

    • 云服务器

      云服务器

      云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。 腾讯云服务器(CVM)为您提供安全可靠的弹性云计算服务。只需几分钟,您就可以在云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭

      扫码关注腾讯云开发者

      领取腾讯云代金券