首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“内存是自动管理的”-如何管理?

“内存是自动管理的”-如何管理?
EN

Stack Overflow用户
提问于 2014-06-03 15:24:08
回答 3查看 1.6K关注 0票数 4

我知道GC圆弧之间最大的区别是GC是运行时进程,ARC是在编译时操作的。因此,在使用ARC时,开发人员需要处理某些场景中的内存。

然而,根据,在SWFT内存管理体系结构中,开发人员交互已经没有空间了。

他们是怎么做到的?他们是否有一个运行时进程来清理内存,或者其他的东西?

EN

回答 3

Stack Overflow用户

发布于 2014-06-03 15:29:10

Swift以与目标C相似的方式使用ARC。弧形已经讨论过广泛存在。

简言之:

  1. 没有垃圾收集器。
  2. 只要(强)引用存在,对象就会存在。
  3. 强引用不能是循环的,否则会泄漏内存。使用弱引用来中断周期。
票数 5
EN

Stack Overflow用户

发布于 2015-03-04 15:51:15

我知道GC和ARC最大的区别是GC

请注意ARC是GC的一种形式。

是运行时进程,而ARC在编译时运行。

跟踪GC和ARC都在编译时和运行时执行任务。弧形注入代码来增加和减少引用计数,当计数下降到零时,收集对象并递归减少它所指向的所有引用(在收集任意大的对象图时,可能会导致在运行时完成无界的工作量)。

因此,在使用ARC时,开发人员需要处理某些场景中的内存。

是。您必须始终小心避免循环,因为它们永远不会被收集。

票数 0
EN

Stack Overflow用户

发布于 2014-06-03 15:42:12

是如何工作的 每次创建类的新实例时,ARC都会分配一块内存来存储有关该实例的信息。此内存保存有关实例类型的信息,以及与该实例关联的任何存储属性的值。 此外,当一个实例不再需要时,ARC释放该实例所使用的内存,以便可以将该内存用于其他目的。这可以确保类实例在不再需要时不会占用内存中的空间。 但是,如果ARC要释放仍在使用的实例,则无法访问该实例的属性或调用该实例的方法。实际上,如果您试图访问实例,您的应用程序很可能会崩溃。 为了确保实例在仍然需要时不会消失,ARC跟踪当前引用每个类实例的属性、常量和变量的数量。只要至少仍然存在对该实例的一个活动引用,弧就不会释放该实例。 为了实现这一点,每当您将类实例分配给属性、常量或变量时,该属性、常量或变量都会对实例进行强引用。该引用被称为“强”引用,因为它保持了对该实例的严格控制,并且不允许在该强引用保持不变的情况下将其释放。

语言/自动参考计数.

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24019009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档