Spec-Zone.ru › Kotlin 1.9

GC

kotlin-stdlib / kotlin.native.runtime / GC
Требования к платформе и версии: Native (1.9)
@NativeRuntimeApi object GC

Примечание: этот API нестабилен и может измениться в любой версии.

Kotlin/Native использует отслеживающий сборщик мусора (GC), который выполняется периодически для сбора объектов, недоступных из «корней», таких как локальные и глобальные переменные. См. документацию, чтобы узнать больше о управлении памятью в Kotlin/Native.

Этот объект предоставляет набор функций и свойств, которые позволяют настраивать сборщик мусора.

Устаревший менеджер памяти

Kotlin/Native полагается на подсчет ссылок для управления объектами, однако он не может собирать циклический мусор, поэтому мы выполняем периодический сбор мусора. Это может замедлить приложение, поэтому этот интерфейс предоставляет контроль над тем, как активируется и выполняется сборщик мусора. Сборщик мусора может находиться в одном из следующих состояний:

  • запущен
  • приостановлен (так кандидаты на циклы собираются, но сам сбор мусора не выполняется до возобновления)
  • остановлен (весь циклический мусор безвозвратно потерян) Сразу после запуска GC находится в рабочем состоянии. В зависимости от потребностей приложения оно может выбрать приостановить GC для определенных фаз своего жизненного цикла и возобновить его позже или просто полностью отключить его, если паузы GC менее желательны, чем утечки циклического мусора.

Свойства

Требования к платформе и версии: Native (1.3)

autotune

Если true, обновляет targetHeapBytes после каждого сбора.

var autotune: Boolean
Требования к платформе и версии: Native (1.3)

collectCyclesThreshold

Устарело и не используется.

var collectCyclesThreshold: Long
Требования к платформе и версии: Native (1.3)

cyclicCollectorEnabled

Устарело и не используется.

var cyclicCollectorEnabled: Boolean
Требования к платформе и версии: Native (1.3)

lastGCInfo

Возвращает статистику последнего завершённого запуска сбора мусора. Эта информация предназначена только для тестирования и отладки.

val lastGCInfo: GCInfo?
Требования к платформе и версии: Native (1.3)

maxHeapBytes

Максимальное значение для targetHeapBytes. Используется только если autotune равно true. Подробнее см. targetHeapBytes.

var maxHeapBytes: Long
Требования к платформе и версии: Native (1.3)

minHeapBytes

Минимальное значение для targetHeapBytes. Используется только если autotune равно true. Подробнее см. targetHeapBytes.

var minHeapBytes: Long
Требования к платформе и версии: Native (1.3)

regularGCInterval

Когда Kotlin-код не выделяет достаточно памяти для запуска GC, планировщик GC использует таймер для управления сбором. Сбор, запускаемый таймером, произойдёт приблизительно через regularGCInterval .. 2 * regularGCInterval с момента предыдущего сбора. Не используется с планировщиком GC на контрольных точках.

var regularGCInterval: Duration
Требования к платформе и версии: Native (1.3)

targetHeapBytes

Общий объём кучи, доступный для Kotlin-объектов. Когда Kotlin-объекты переполняют эту кучу, запрашивается сбор мусора. Автоматически настраивается, когда autotune равно true: после каждого сбора targetHeapBytes устанавливается в heapBytes / targetHeapUtilization и ограничено значениями между minHeapBytes и maxHeapBytes, где heapBytes — использование кучи после сбора мусора. Обратите внимание, что если после сбора heapBytes > targetHeapBytes (что может произойти, если autotune равно false или maxHeapBytes слишком низко), следующий сбор будет инициирован практически мгновенно.

var targetHeapBytes: Long
Требования к платформе и версии: Native (1.3)

targetHeapUtilization

Какая часть кучи Kotlin должна быть заполнена. Используется только если autotune равно true. Подробнее см. targetHeapBytes.

var targetHeapUtilization: Double
Требования к платформе и версии: Native (1.3)

threshold

Порог GC, контролирующий частоту активации GC и время, затрачиваемое на GC. Большие значения приводят к более длительным паузам GC, но меньшему количеству сборок. Обычно не используется. Для планировщика GC на контрольных точках подсчитывается, сколько контрольных точек должно пройти код перед уведомлением планировщика GC.

var threshold: Int
Требования к платформе и версии: Native (1.3)

thresholdAllocations

Сколько байт может выделить поток перед уведомлением планировщика GC.

var thresholdAllocations: Long

Функции

Требования к платформе и версии: Native (1.3)

collect

Запускает новый сбор и ждёт его завершения.

fun collect()
Требования к платформе и версии: Native (1.3)

collectCyclic

Устарело и не используется.

fun collectCyclic()
Требования к платформе и версии: Native (1.3)

detectCycles

Устарело и не используется. Всегда возвращает null.

fun detectCycles(): Array<Any>?
Требования к платформе и версии: Native (1.3)

findCycle

Устарело и не используется. Всегда возвращает null.

fun findCycle(root: Any): Array<Any>?
Требования к платформе и версии: Native (1.3)

resume

Устарело и не используется.

fun resume()
Требования к платформе и версии: Native (1.3)

schedule

Запускает новый сбор без ожидания его завершения.

fun schedule()
Требования к платформе и версии: Native (1.3)

start

Устарело и не используется.

fun start()
Требования к платформе и версии: Native (1.3)

stop

Устарело и не используется.

fun stop()
Требования к платформе и версии: Native (1.3)

suspend

Устарело и не используется.

fun suspend()
END_OF_DOCUMENT_MARKER

© 2010–2023 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.native.runtime/-g-c/index.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API