Какие плюсы и минусы inline функции

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

Ответ

Плюсы:

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

Минусы:

  • Увеличивают размер бинарника (код дублируется в каждом месте вызова)
  • Могут ухудшить производительность кэша процессора
  • Не всегда работают (компилятор может проигнорировать inline)

Пример:

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