首页 > 解决方案 > iOS 和 Android 上的 Kotlin/Native Garbage 收集

问题描述

我需要在 Kotlin Native 中为 iOS 和 Android 开发一个多平台模块。根据 kotlinlang 文档:

Objective-C 和 Swift 使用引用计数。Kotlin/Native 也有它自己的垃圾收集。Kotlin/Native 垃圾收集与 Objective-C/Swift 引用计数集成。

是不是说为 iOS 编译的 Kotlin/Native 不使用 CMS(Concurrent Mark Sweep)而使用 ARC(Automatic Reference Counting)?

是否有可能用 Kotlin 编写并为 iOS 编译的通用模块可能会泄漏,而为 Android 编译的相同模块可能完全没问题?

标签: androidioskotlin-native

解决方案


即使在 Android 上,Kotlin/Native 也不使用 Concurrent Mark-Sweep 垃圾收集器。它使用带有循环收集器的自动引用计数器来收集循环垃圾(https://github.com/JetBrains/kotlin-native/blob/master/FAQ.md)。因此,在两个平台上的行为应该或多或少相同。


推荐阅读