Spec-Zone.ru › Kotlin 2

Демон Kotlin

Демон Kotlin — это фоновый процесс, который системы сборки могут использовать для ускорения сборки, поддерживая компилятор и его окружение в готовности к компиляции. Такой подход позволяет избежать запуска нового экземпляра виртуальной машины Java (JVM) и повторной инициализации компилятора для каждой компиляции, что сокращает время инкрементальной сборки и сборки после частых небольших изменений.

В некоторых системах сборки есть собственные демоны, помогающие сократить время запуска, например демон Gradle и демон Maven. Использование демона Kotlin также сокращает время запуска и полностью изолирует процесс системы сборки от компилятора. Такое разделение полезно в динамических средах, где системные настройки могут меняться во время выполнения.

Хотя у демона Kotlin нет непосредственного пользовательского интерфейса, его можно использовать через системы сборки или API инструментов сборки.

Настройка демона Kotlin

Некоторые настройки демона Kotlin можно задать для Gradle или Maven.

Управление памятью

Демон Kotlin — это отдельный процесс с собственным пространством памяти, изолированным от клиента. По умолчанию демон Kotlin пытается унаследовать размер кучи (-Xmx) запускающего его процесса JVM.

Чтобы настроить определённые ограничения памяти, например -Xmx и -XX:MaxMetaspaceSize, используйте следующее свойство:

kotlin.daemon.jvmargs=-Xmx1500m

Дополнительную информацию см. в описании свойства kotlin.daemon.jvmargs.

<kotlin.compiler.daemon.jvmArgs>-Xmx1500m</kotlin.compiler.daemon.jvmArgs>

Время жизни

Для демона Kotlin обычно используются две стратегии управления временем жизни:

  • Присоединённый демон: завершает работу вскоре после завершения клиентского процесса или после некоторого периода бездействия. Используйте, если клиент работает долго.

  • Отсоединённый демон: продолжает работать дольше, ожидая возможных последующих запросов. Используйте, если клиент работает недолго.

Чтобы настроить стратегию управления временем жизни, используйте следующие параметры:

Параметр

Описание

Значение по умолчанию

autoshutdownIdleSeconds

Как долго демон должен оставаться запущенным после последней компиляции, если клиент всё ещё подключён.

2 часа

autoshutdownUnusedSeconds

Как долго недавно запущенный демон ожидает первого клиента, прежде чем завершить работу, если он не используется.

1 минута

shutdownDelayMilliseconds

Как долго демон ожидает завершения работы после отключения всех клиентов.

1 секунда

Чтобы настроить стратегию времени жизни присоединённого демона, задайте для autoshutdownIdleSeconds высокое значение, а для shutdownDelayMilliseconds — низкое.

Добавьте следующий фрагмент в файл gradle.properties:

org.gradle.jvmargs=-Dkotlin.daemon.jvm.options=autoshutdownIdleSeconds=7200,shutdownDelayMilliseconds=1000

Используйте следующую команду:

 mvn package -Dkotlin.daemon.options=autoshutdownIdleSeconds=7200,shutdownDelayMilliseconds=1000

Чтобы настроить стратегию времени жизни отсоединённого демона, задайте для shutdownDelayMilliseconds высокое значение.

Добавьте следующий фрагмент в файл gradle.properties:

org.gradle.jvmargs=-Dkotlin.daemon.jvm.options=shutdownDelayMilliseconds=7200

Добавьте следующее свойство в файл pom.xml:

<kotlin.compiler.daemon.shutdownDelayMs>7200</kotlin.compiler.daemon.shutdownDelayMs>
10 сентября 2025 г.
API инструментов сборкиРуководство по миграции на компилятор K2

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/kotlin-daemon.html

Spec-Zone.ru

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