devlog of ShinJe Kim

[TIL] 2019-09-04

|

Today I Learned

  • 오버헤드란? 프로그램의 실행 흐름 도중에 동떨어진 위치의 코드를 실행해야 할 때, 추가적으로 시간과 메모리 자원이 사용되는 현상. 이러한 현상은 프로그래밍 시 외부 함수를 사용할 떄 나타남. 외부 함수를 사용하며 실행 흐름이 도중에 끊겨버리고 함수를 사용하기 위해 스택 메모리를 할당함. 이외에도 함수를 호출하기 위해 많은 과정을 진행하게 되며, 이 때 예상치 못한 자원들이 소모되는 현상을 오버헤드라고 함. 이를 해소하기 위해 인라인 함수를 사용한다. 코틀린 컴파일러(JVM) getter와 setter는 인라인 함수를 사용하기 때문에 함수 오버헤드가 발생하지 않는다. 인라인 함수를 사용하는지, 외부 호출을 하는지는 컴파일러마다 다르다.
  • 함수를 사용하는 이유는 ‘재사용성’의 목적이 크다.

Comments