[2025/06/30]TIL

오수호·2025년 6월 30일

TIL

목록 보기
30/60

1.IL2CPP & Burst

  • IL2CPP : 유니티는 유저코드인 C#이 있고 그 내부는 C++로 되어있는데 외부의 유저코드도 C++로 작성할 수 있게 만들어준다.
    • 외부에 노출되는 유저코드도 C++이 되므로 전반적인 성능향상에 도움을 준다.

  • C++의 장점 : 메모리 관리를 직접함으로써 메모리 누수 / GC로 인한 성능하락을 막을 수 있다.
  • C++의 단점 : 메모리 관리를 사용자가 직접하기 때문에 어렵다. 생산성이 낮아진다.

2. DotNet FrameWork

  • C#은 닷넷 프레임워크를 사용하는데 어떻게 Android와 IOS로 빌드할 수 있을 까?
    • mono를 통해서 여러가지 플래폼에서 돌릴 수 있다.
  • C#을 mono로 띄우기 위해서 IL이라는 중간언어로 변환
    • IL은 mono상에서 여러가지 플래폼으로 빌드가 된다.
    • mono가 런타임상에서 파싱을 하면서 여러가지 플랫폼 위에서 돌 수 있다. >> 이를 JIT(Just InTime)방식이라고 한다.
    • JIT방식은 그때그때 필요할때마다 Compile한다는 개념이다.
  • 주의 !) 인터프리터 언어와는 다른 개념이다.
    • IL은 이미 한번 중간언어로 바뀌어져 있는 상태로 플랫폼에 맞게 컴파일 되므로 완전 쌩으로 런타임에 컴파일되는 파이썬, 자바와 같은 언어보다는 빠르다.

3. IL을 CPP로 변환

  • 결국 유니티에서 사용하는 C++는 바로 이 IL을 C++언어로 사용할 수 있게 변환하는 것이다.
  • 따라서, 이를 ILCPP라고 부르게 된다.
profile
게임개발자 취준생입니다

0개의 댓글