Пометка функции как inline говорит компилятору копировать байткод функции прямо в каждое место вызова, вместо того чтобы вызывать её как обычную функцию.
inline параметры-лямбды создают экземпляры анонимных классов во время выполненияreified generics, например:inline fun <reified T> isInstance(value: Any) = value is T
inline даёт мало пользы для функций, которые не принимают лямбды, поскольку оверхед, который он устраняет, специфичен только для создания лямбда-объектовИспользуй inline осмотрительно — это наиболее эффективно для коротких функций высшего порядка, где стоимость выделения памяти для лямбды имеет значение. Избегай встраивания больших функций, так как выигрыш в производительности редко перевешивает увеличение размера байткода.
Inline функции устраняют оверхед lambda объектов, потому что компилятор копирует bytecode функции напрямую в каждый call site, предотвращая создание экземпляров anonymous классов для lambda параметров.
Новый — ещё не проверен сообществом
Вы