[기술] Mono vs IL2CPP

oy Hong·2024년 5월 2일

기술

목록 보기
23/23

Mono vs IL2CPP


Mono : JIT 컴파일을 사용하여 런타임 시점에 요청 시 코드를 컴파일한다.
IL2CPP : AOT 컴파일을 사용하여 실행 전에 전체 애플리케이션을 컴파일한다.

Mono는 사용하기 쉽고 컴파일 시간이 빠르고, IL2CPP는 컴파일 시간이 느리지만 플랫폼에 맞는 최대 성능을 낼 수 있다.

JIT(Just-In-Time)
프로그램에서 코드가 실행되는 시점에 기계어로 번역하는 컴파일 기법
동적 번역 런타임 컴파일

AOT(Ahead-Of-Time)
런타임 시 수행해야 할 작업량을 줄이기 위해 빌드 타임에서 미리 컴파일하는 기법


Mono

c#으로 작성된 스크립트를 IL(Intermediate Language) 코드로 컴파일한 후 런타임 환경에서 실행된다.

AOT 컴파일을 지원하지 않는 플랫폼에 적합


IL2CPP

IL(Intermediate Language) 2(to) CPP(C++)의 약자로 IL(Intermediate Language) 코드를 c++ 코드롤 전환하고, 타겟 플램폼에서 직접 실행될 수 잇는 적합한 네이티브 바이너리 파일로 컴파일한다.

Mono나 JIT 컴파일을 지원하지 않는 플랫폼에 적합

IL2CPP의 장점

  • c++을 지원하는 플랫폼이 더 많기 때문에 다양한 플랫폼을 지원할 수 있다.
  • 타겟 플랫폼에 최적화된 c++ 코드를 생성하기 때문에 성능이 향상된다.
  • 역설계하기 어려운 컴파일된 c++로 대체되기 때문에 보안성이 개선된다.

0개의 댓글