Пользователь
Мне тоже стало любопытно, поэтому вот несколько тестов с ним:
Результаты получены на Arch Linux, Intel(R) Core(TM) i7-3770Kotlin 2.1.0
Код бенчмарка:
import kotlinx.coroutines.async import kotlinx.coroutines.awaitAll import kotlinx.coroutines.delay import kotlinx.coroutines.runBlocking import kotlin.time.measureTime fun main(args: Array) { val tasksCount = args[0].toInt() val time = measureTime { runBlocking { val tasks = List(tasksCount) { async { delay(10000) } } tasks.awaitAll() } }.inWholeMilliseconds println("$tasksCount tasks finished in $time ms.") }
Kotlin native:
1 task: 6.856 MB10k tasks: 20.404 MB100k tasks: 142.932 MB1M tasks: 1406.352 MB
Kotlin - OpenJDK 17:
1 task: 48.760 MB10k tasks: 68.352 MB100k tasks: 133.264 MB1M tasks: 775.896 MB
Kotlin - GraalVM 23:1 task: 107.652 MB10k tasks: 119.716 MB100k tasks: 190.916 MB1M tasks: 782.960 MB
Мне тоже стало любопытно, поэтому вот несколько тестов с ним:
Результаты получены на Arch Linux, Intel(R) Core(TM) i7-3770
Kotlin 2.1.0
Код бенчмарка:
Kotlin native:
1 task: 6.856 MB
10k tasks: 20.404 MB
100k tasks: 142.932 MB
1M tasks: 1406.352 MB
Kotlin - OpenJDK 17:
1 task: 48.760 MB
10k tasks: 68.352 MB
100k tasks: 133.264 MB
1M tasks: 775.896 MB
Kotlin - GraalVM 23:1 task: 107.652 MB
10k tasks: 119.716 MB
100k tasks: 190.916 MB
1M tasks: 782.960 MB