GC

Note: this API is unstable and may change in any release.

Kotlin/Native uses tracing garbage collector (GC) that is executed periodically to collect objects that are not reachable from the "roots", like local and global variables. See documentation to learn more about Kotlin/Native memory management.

This object provides a set of functions and properties that allows to tune garbage collector.

Since Kotlin

1.9

Types

Link copied to clipboard

This objects allows to customize the behavior of the finalizer processor that runs on the main thread.

Since Kotlin 1.9

Properties

Link copied to clipboard

If true update targetHeapBytes after each collection.

Since Kotlin 1.9
Link copied to clipboard

Deprecated and unused.

Since Kotlin 1.9
Link copied to clipboard

Deprecated and unused.

Since Kotlin 1.9
Link copied to clipboard

The GC is scheduled when Kotlin heap overflows heapTriggerCoefficient * targetHeapBytes.

Since Kotlin 1.9
Link copied to clipboard

Returns statistics of the last finished garbage collection run. This information is supposed to be used for testing and debugging purposes only

Since Kotlin 1.9
Link copied to clipboard

The maximum value for targetHeapBytes. Only used if autotune is true. See targetHeapBytes for more details.

Since Kotlin 1.9
Link copied to clipboard

The minimum value for targetHeapBytes Only used if autotune is true. See targetHeapBytes for more details.

Since Kotlin 1.9
Link copied to clipboard

If true, the GC will pause Kotlin threads when Kotlin heap overflows targetHeapBytes and will resume them only after current GC is done.

Since Kotlin 1.9
Link copied to clipboard

When Kotlin code is not allocating enough to trigger GC, the GC scheduler uses timer to drive collection. Timer-triggered collection will happen roughly in regularGCInterval .. 2 * regularGCInterval since any previous collection.

Since Kotlin 1.9
Link copied to clipboard

Total amount of heap available for Kotlin objects. The GC tries to schedule execution so that Kotlin heap doesn't overflow this heap. Automatically adjusts when autotune is true: after each collection the targetHeapBytes is set to heapBytes / targetHeapUtilization and capped between minHeapBytes and maxHeapBytes, where heapBytes is heap usage after the garbage is collected. Note, that if after a collection heapBytes targetHeapBytes (which may happen if autotune is false, or maxHeapBytes is set too low), the next collection will be triggered almost immediately.

Since Kotlin 1.9
Link copied to clipboard

What fraction of the Kotlin heap should be populated. Only used if autotune is true. See targetHeapBytes for more details.

Since Kotlin 1.9
Link copied to clipboard

Deprecated and unused.

Since Kotlin 1.9
Link copied to clipboard

Deprecated and unused.

Since Kotlin 1.9

Functions

Link copied to clipboard
external fun collect()

Trigger new collection and wait for its completion.

Since Kotlin 1.9
Link copied to clipboard

Deprecated and unused.

Since Kotlin 1.9
Link copied to clipboard

Deprecated and unused. Always returns null.

Since Kotlin 1.9
Link copied to clipboard
fun findCycle(root: Any): Array<Any>?

Deprecated and unused. Always returns null.

Since Kotlin 1.9
Link copied to clipboard
fun resume()

Deprecated and unused.

Since Kotlin 1.9
Link copied to clipboard
external fun schedule()

Trigger new collection without waiting for its completion.

Since Kotlin 1.9
Link copied to clipboard
fun start()

Deprecated and unused.

Since Kotlin 1.9
Link copied to clipboard
fun stop()

Deprecated and unused.

Since Kotlin 1.9
Link copied to clipboard
fun suspend()

Deprecated and unused.

Since Kotlin 1.9