То, что вы испытываете, называется разминкой.Первые запросы к Kotlin (и другим языкам на основе JVm) часто значительно медленнее, чем среднее время ответа.Этот период прогрева вызван отложенной загрузкой классов и своевременной компиляцией.
Существует несколько способов повысить надежность измерения производительности.Одним из них является создание прогрева вручную перед выполнением самого теста.Еще более надежный способ - использовать специализированную библиотеку, такую как JMH .
Пример ручного прогрева:
// warmup
for (i in 1..9999) {
val list = (1..100000).toList()
list.filter { it % 7 == 0 }
}
// rest of the test
В качестве примечания, Котлин имеетэто функции, которые вы можете использовать вместо того, чтобы вручную вычислять разницу во времени.Есть measureTimeMillis и measureNanoTime .
Это будет использоваться следующим образом:
val time = measureNanoTime {
list.filter { it % 7 == 0 }
}