Android(Kotlin)

inline function

----___<<<<< 2021. 10. 31. 16:55

 

 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/

 

Kotlin - inline functions 이해하기

inline functions는 함수 내용을 호출하는 부분에 복사하여 추가적인 메모리 할당이나 함수 호출로 발생하는 Runtime overhead를 줄여줍니다. noinline 키워드는 특정 인자만 제외하고 나머지만 inlnie으로

codechacha.com

 

'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