IL2CPP

컴퓨터 프로그램을 만드는 방식 2가지

정적 컴파일

  • 실행하기 전 프로그램 코드를 기계어로 번역

인터프리트 방식

  • 프로그래밍 언어를 읽어가면서 해당 기능에 대응하는 기계어 코드를 실행
  • 프로그램을 실제 실행하는 시점에 기계어로 번역하는 컴파일 기법
  • JIT(just-in-time compilation), 또는 dynamic translation 동적 번역

Scripting Backend

  • C#은 전통적으로 플랫폼 지향적인 기계어로 컴파일되지 않고 IL로 컴파일된다
  • 어플리케이션을 실행되면서 IL은 런타임 때 플랫폼 지향적인 기계어 코드를 생성한다
    • 이 과정은 JIT에 의해 작동한다
    • 이 방식은 C# 언어의 고유 특징이 아니라 .Net Framework에서 해오던 방식이다
  • 이 고유의 방식을, Unity에서 Mono라 불리는 Scripting Backend를 통해 지원한다

IL2CPP란?

  • 이 방식의 Scripting Backend 역시 C#을 IL로 변환한다
  • 하지만 IL2CPP는 Microsoft Intermediate Language를 C++로 변환한다
    • 즉, JIT 방식으로 실행하지 않는다
    • 정적 컴파일이기 때문에 실행 속도가 JIT 컴파일보다 빠르다

출처

Categories: ,

Updated: