5

我应该在什么情况下使用此功能?
它到底有多成熟?

优缺点都有什么?
它解决了什么问题?

它是否特定于 MonoTouch、Mono GC 或 ObjC 中的引用计数?

在此处输入图像描述

4

1 回答 1

5

以下是对您的问题的一些快速、高层次(以及出局或订单)的答案……

它是否特定于 MonoTouch、Mono GC 或 ObjC 中的引用计数?

它允许sgen单声道垃圾收集器更紧密地与 Objective-C 引用计数一起工作。Mono(或 Android 的 Mono)不需要这种意识,因此它是 MonoTouch 特有的。

它到底有多成熟?

正如 UI 所说:Experimental preview。因此,虽然我们知道它可以工作,但它尚未在应用程序中广泛使用(与默认 GC 相比)。它更像是一个方向而不是一个目的地(即它可能会发展)。

非常欢迎您对其进行测试、使用(如果证明对您的情况有用)并报告您的发现/经验。但是它并不完全受支持,例如您可能遇到了我们无法立即修复或解决方法的错误(除了要求您返回默认设置之外)。

它解决了什么问题?

垃圾收集器和 Objective-C 的引用计数的共存是一个非常复杂的主题。MonoTouch 尽力向开发人员隐藏(大部分)复杂性。

其中大部分是在运行时内完成的(例如,通过使用支持字段)。此扩展sgen旨在让 GC 本身(不仅是运行时)了解引用计数的需求。

优缺点都有什么?

PRO:它可以节省内存,因为链接器可以删除许多支持字段,否则这些字段是确保我们保留对托管对象的引用所必需的。如果没有这些(引用)支持字段,GC 通常会收集实例(而非托管代码仍然需要它们)。

CON:我们需要更多反馈,更多比较数据(例如性能)。

于 2012-10-22T19:40:14.743 回答