Что оптимизирует inline функция

«Что оптимизирует inline функция» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Inline-функции в Kotlin оптимизируют производительность, заменяя вызов функции её телом во время компиляции. Это устраняет накладные расходы на вызов метода (создание stack frame, передачу параметров).

Преимущества:

  • Уменьшают overhead вызовов, особенно полезно для часто вызываемых маленьких функций
  • Улучшают производительность в критичных к скорости участках кода

Ограничения:

  • Нельзя использовать для рекурсивных функций
  • Большие inline-функции могут увеличить размер билда

Пример:

inline fun measureTime(action: () -> Unit) {
    val start = System.currentTimeMillis()
    action()
    println("Time: ${System.currentTimeMillis() - start}ms")
}

// При компиляции тело функции подставится вместо вызова
measureTime { /* какой-то код */ }