我应该在什么情况下使用此功能?
它到底有多成熟?
优缺点都有什么?
它解决了什么问题?
它是否特定于 MonoTouch、Mono GC 或 ObjC 中的引用计数?
我应该在什么情况下使用此功能?
它到底有多成熟?
优缺点都有什么?
它解决了什么问题?
它是否特定于 MonoTouch、Mono GC 或 ObjC 中的引用计数?
以下是对您的问题的一些快速、高层次(以及出局或订单)的答案……
它是否特定于 MonoTouch、Mono GC 或 ObjC 中的引用计数?
它允许sgen
单声道垃圾收集器更紧密地与 Objective-C 引用计数一起工作。Mono(或 Android 的 Mono)不需要这种意识,因此它是 MonoTouch 特有的。
它到底有多成熟?
正如 UI 所说:Experimental preview。因此,虽然我们知道它可以工作,但它尚未在应用程序中广泛使用(与默认 GC 相比)。它更像是一个方向而不是一个目的地(即它可能会发展)。
非常欢迎您对其进行测试、使用(如果证明对您的情况有用)并报告您的发现/经验。但是它并不完全受支持,例如您可能遇到了我们无法立即修复或解决方法的错误(除了要求您返回默认设置之外)。
它解决了什么问题?
垃圾收集器和 Objective-C 的引用计数的共存是一个非常复杂的主题。MonoTouch 尽力向开发人员隐藏(大部分)复杂性。
其中大部分是在运行时内完成的(例如,通过使用支持字段)。此扩展sgen
旨在让 GC 本身(不仅是运行时)了解引用计数的需求。
优缺点都有什么?
PRO:它可以节省内存,因为链接器可以删除许多支持字段,否则这些字段是确保我们保留对托管对象的引用所必需的。如果没有这些(引用)支持字段,GC 通常会收集实例(而非托管代码仍然需要它们)。
CON:我们需要更多反馈,更多比较数据(例如性能)。