【问题标题】:What language feature in Kotlin that can cause memory leaks?Kotlin 中的哪些语言功能会导致内存泄漏?
【发布时间】:2017-10-20 05:48:12
【问题描述】:

我是 Kotlin 的新手,我喜欢 Android 的新语言,但我害怕在生产中使用它并意外导致内存泄漏,是否有任何新的 Kotlin 开发人员指南显示什么会导致内存泄漏,什么有防止它的解决方案吗?

【问题讨论】:

    标签: java android memory-leaks jvm kotlin


    【解决方案1】:

    Kotlin 与 Java 或任何其他基于 JVM 的语言在相同的 JVM 上运行。因此,它使用与 Java 相同的垃圾收集器,提供一般内存泄漏安全的运行时环境。

    尽管如此,内存泄漏仍然是可能的。此类泄漏的一个常见来源是持有对象引用比必要的时间更长——有时是永远! — 导致内存泄漏。针对此类泄漏的一些常见做法是:

    • 当您不再需要它们时,请务必将您的 nullable references 设置为 null。这主要适用于全局/静态变量;当对象自然超出范围时,您不必担心(例如,函数内的局部变量)。

    • 使用 weak references。这是一个有点高级的功能,使您能够通知 GC 在某些条件下应该自动处理给定的引用(即 GC 为您将其设置为 null)。

    您现在可能已经猜到了,这些完全相同的问题/实践同样适用于 Java 代码。

    有几家主要开发人员已经将 Kotlin 用于他们的生产 Android 应用程序(例如,Pinterest、Basecamp、Square、Trello 等)。所以请放心,你们相处得很好;)

    【讨论】:

    • 基本和Java一样
    猜你喜欢
    • 1970-01-01
    • 2020-01-29
    • 2021-03-23
    • 2021-09-25
    • 2014-12-08
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    相关资源
    最近更新 更多