Swift有标记指针吗?

时间:2016-02-23 19:07:23

标签: objective-c swift performance pointers

Objective-C使用一种名为tagged pointers的花哨来减少内存使用,并在处理某些小对象类型(如strings, dates, and numbers)时提高速度。基本上,如果对象中的所有数据都适合指针,运行时将其放在那里而不是分配和跟踪堆内存。

Swift有类似的机制吗?

1 个答案:

答案 0 :(得分:3)

来自The Swift ABI

  

班级布局

     

Swift依赖于以下关于Objective-C运行时的假设,因此它们现在是Objective-C ABI的一部分:

     
      
  • (有关Objective-C标记指针布局的信息......)
  •   
     

以下假设是Swift ABI的一部分:

     
      
  • Swift类指针永远不会被标记为指针。
  •   

据我所知,Swift处理的是Objective-C标记指针 从Objective-C运行时获得(例如NSNumberNSDate), 但是没有为纯Swift类使用标记指针。