All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.johnsonlee.playground.util.Gc.kt Maven / Gradle / Ivy

package io.johnsonlee.playground.util

import org.slf4j.LoggerFactory
import java.lang.ref.WeakReference
import kotlin.time.measureTime

object Gc {

    private val logger = LoggerFactory.getLogger(Gc::class.java)

    @Suppress("UNUSED_VALUE")
    fun gc() {
        val duration = measureTime {
            var obj: Any? = Any()
            val ref = WeakReference(obj)

            obj = null

            while (ref.get() != null) {
                System.gc()
                System.runFinalization()
            }

            System.gc()
            System.runFinalization()
        }

        logger.info("GC completed in $duration")
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy