【发布时间】:2016-03-30 23:47:41
【问题描述】:
Swift 使用“自动引用计数”来释放不再引用且不再需要的对象。 Swift 语言指南 [1] 声明如下:
每次创建类的新实例时,ARC 都会分配一块内存来存储有关该实例的信息。此内存保存有关与该实例关联的任何存储属性的 [...] 值的信息。
我假设引用计数被存储为一个整数。 那么引用计数器是否会发生溢出? 如果是这种情况,这会对我的程序产生什么影响,仍然被其他人引用的对象会被简单地释放吗?
举个例子:如果计数器是一个无符号的 2 字节整数,这将使对对象的引用上限(同时仍然具有正确的引用计数)在 130k 左右。一旦达到上限并且对象再次被引用,这将使计数器加一,再次将其设置为 0。
【问题讨论】:
-
4294967296 引用?哇兹。你甚至......有足够的内存来做那件事吗?
-
我知道这个问题是一个相当假设的问题,但这种情况下的行为会让我感兴趣;)
标签: swift garbage-collection automatic-ref-counting reference-counting