¿Qué function de lenguaje en Kotlin puede causar pérdidas de memory?

Soy nuevo en Kotlin, me encanta el nuevo lenguaje para Android, pero tengo miedo de usarlo en producción y causar una pérdida de memory por crash. ¿Hay alguna guía para el nuevo desarrollador de Kotlin que muestre qué puede causar pérdidas de memory? ¿Cuáles son las soluciones? para prevenirlo?

    Kotlin se ejecuta en la misma JVM que Java o cualquier otro lenguaje basado en JVM. Como tal, utiliza el mismo recolector de basura que Java, lo que proporciona un entorno de time de ejecución seguro de fuga de memory en general.

    Sin embargo, las pérdidas de memory aún son posibles. Una fuente común de tales filtraciones es retener references de objects más largas de lo necesario, ¡a veces para siempre! – dando como resultado una fuga de memory. Algunas prácticas comunes contra tales filtraciones son:

    • asegúrese de establecer sus references anulables en null tan pronto como ya no las necesite. Esto se aplica principalmente a vars globales / estáticos; cuando un object sale fuera del scope, naturalmente, no debe preocuparse por eso (por ejemplo, una variable local dentro de una function).

    • usando references débiles . Esta es una function algo avanzada, que le permite informar al GC que una reference dada debe eliminarse automáticamente bajo ciertas condiciones (es decir, GC lo establece como null para usted).

    Como ya habrás adivinado, estos mismos problemas / prácticas también se aplican al código Java.

    Hay varios desarrolladores importantes que ya usan Kotlin para sus aplicaciones de producción de Android (por ejemplo, Pinterest, Basecamp, Square, Trello , etc.). Así que puede estar seguro de que está en buena compañía;)