개발툴/Unity
IL2CPP
가든_
2023. 9. 30. 14:09
IL 코드를 C++로 변경하는 프로그램
Unity는 C#이라 느리다?
- 아니다.
- Unity는 외부는 C#으로 이루어져 있지만 내부는 C++로 이루어져 있다.
이유
- C#은 C++과 반대로 메모리 관리를 자동으로 해줘서 생산성은 높지만
- C#은 managed memory를 사용해서 GC를 관리하기 때문에 C++보다 성능과 속도가 느릴 수 있다.
원리

- 프로그래머들은 C#을 사용한 스크립팅을 해서 메모리 관리를 자동으로 하고 생산성을 높힐 수 있다.
- 유니티 내부에서 C#을 Mono를 통해서 IL(Intermediatee Language)로 바꾸고 IL2CPP를 사용해서 C++로 바꾼다.
주의사항
- Generic을 사용했을때 주의해야함
- ProjectSetting의 IL2CPP Compiler Generation 수정을 통해 해결 가능
- Faster Runtime : 알 수 없는 제너릭 값 타입은 코드 확장, 알 수 있다면 공유 코드 사용 -> 기존 방식
- Faster (Smaller) Build : 모두 공유 코드 사용 -> 빌드 시간 & 사이즈 감소
참고 자료
https://www.youtube.com/watch?v=-9X965jXrn8