inline function에 대해서 알아보겠습니다.
정의부터 보고 가면
Using higher-order functions imposes certain runtime penalties: each function is an object, and it captures a closure. A closure is a scope of variables that can be accessed in the body of the function. Memory allocations (both for function objects and classes) and virtual calls introduce runtime overhead.
But it appears that in many cases this kind of overhead can be eliminated by inlining the lambda expressions.
고차함수를 사용할 때 런타임 페널티가 부가되는데, 람다식을 인라인해서 제거할 수 있다 라는 내용입니다.
성능 오버헤드가 발생되는 것을 방지하기 위해서 사용하는데, 오버헤드란 간접적인 처리 시간 및 메모리등을 말합니다.
단점은 실행 코드가 길어집니다.
- 참조
https://codechacha.com/ko/kotlin-inline-functions/
'Android(Kotlin)' 카테고리의 다른 글
Android NotificationListenerService (0) | 2021.11.04 |
---|---|
kotlin scope function (0) | 2021.10.31 |
kotlin -> bytecode -> java (0) | 2021.10.31 |
kotlin infix function (0) | 2021.10.29 |
kotlin lateinit lazy (0) | 2021.10.29 |