메모리 종류
Managed Memory : GC가 적용되는 유저 영역의 메모리 레이어.
Umanaged Memory(C#) : GC가 적용되지 않는 메모리 레이어, Unity.Collections 패키지를 통해 사용할 수 있는 공간이다.
Native Memory(C++) : 유니티 엔진이 돌아갈때 쓰는 C++ 메모리이다. 일반적으로 유저가 접근 불가능한 영역.
Managed Memory
Mono나 IL2CPP나 VM에 managed memory 시스템이 있다. (=scripting memory system).
managed heap : VM이 자동으로 GC써서 컨트롤 해주는 힙 메모리 영역. 여기에 메모리 할당하는걸 GC Allocation이라고도 한다.
scripting stack : 그냥 스택영역..
Native VM memory : 유니티의 scripting 레이어에 연관된 메모리를 포함함. 코드 영역의 메모리(제네릭, 리플렉션 포함)를 포함하고 있음.
C# Unmanaged Memory :
이 레이어를 통해 native memory에 접근해서 메모리 할당을 튜닝할 수 있음.
Native Memory :
유니티 엔진 내부의 C/C++ 코어가 쓰는 메모리 관리 시스템. 엔진 내부에서 돌아가는 데이터들은 여기에 올라간다. 여기에 직접 접근은 어렵고 간접적으로 접근할 수 있는데 (Unity.Collections) 예를 들면 ECS로 개발할 때 엔진 내부 데이터를 NativeList로 받아올 수 있음.
'게임엔진 > 유니티' 카테고리의 다른 글
Update() (0) | 2023.06.04 |
---|---|
(토막상식) NativeContainer (1) | 2023.05.28 |
IL2CPP, MONO, AOT, JIT 여러 줄 정리 (0) | 2022.12.11 |
예약된(?) 폴더 이름과 Application의 Path들 (1) | 2022.09.25 |
VCS - Plastic SCM (1) | 2022.08.14 |