Sobes.tech
Middle

Ako a kedy začína v Kotlinu fungovať zberač odpadu (garbage collector)?

sobes.tech AI

Odpoveď od AI

JVM zberač odpadu automaticky spravuje pamäť tým, že uvoľňuje objekty, na ktoré už nie sú odkazy.

Práca zberača odpadu nie je garantovaná v presnom čase. Spúšťa sa podľa potreby, keď systém zistí nízky stav voľnej pamäte alebo v iných situáciách určených JVM.

Faktory ovplyvňujúce spustenie:

  • Dostupné množstvo pamäte: Ak je málo voľnej pamäte, zberač odpadu bude pravdepodobnejšie aktivovaný.
  • Aktivita aplikácie: Intenzívne vytváranie objektov môže viesť k častejšiemu spúšťaniu.
  • Nastavenia JVM: Existujú parametre, ktoré ovplyvňujú správanie zberača odpadu.

V Kotlin, rovnako ako v Jave, vývojár neovláda priamo zber odpadu. Uvoľnenie pamäte prebieha automaticky.

Príklad (Kotlin, neovplyvňuje priamo spustenie GC, ale ukazuje, že objekt je pripravený na zbierku):

fun main() {
    var myObject: Any? = Any() // Vytvorenie objektu
    println(myObject) // Objekt existuje

    myObject = null // Odstránenie všetkých odkazov na objekt
    // Teraz je objekt pripravený na zbierku garbage collectorom
    // Garbage collector sa môže spustiť kedykoľvek po tejto riadku
}