Version: Unity 6.0 (6000.0)
언어 : 한국어
듀얼 스레드 할당자
버킷 할당자

동적 힙 할당자

동적 힙 할당자는 메인 힙 할당자입니다. TLSF(2단계 분리 맞춤) 알고리즘을 메모리 블록에 적용합니다.

각 플랫폼에는 커스터마이즈할 수 있는 기본 블록 크기가 있습니다. 할당은 블록의 절반보다 작아야 합니다. 할당 크기가 블록의 절반 이상인 경우 동적 힙 할당자에게 너무 크기 때문에 Unity는 대신 가상 메모리 API를 사용하여 할당합니다.

동적 힙 할당자에 대한 메모리 사용량 보고서의 예는 다음과 같습니다.

[ALLOC_DEFAULT_MAIN]
Peak usage frame count: [16.0 MB-32.0 MB]: 497 frames, [32.0 MB-64.0 MB]: 1 frames
Requested Block Size 16.0 MB
Peak Block count 2
Peak Allocated memory 54.2 MB
Peak Large allocation bytes 40.2 MB

이 예시에서는 TLSF 블록 크기를 16MB로 설정하고 Unity가 두 개의 블록을 할당했습니다. 할당자의 최대 사용량은 54.2MB였습니다. 이러한 52.4MB 중 40.2MB가 TLSF 블록에 할당되지 않고 가상 메모리로 폴백했습니다. 대부분의 프레임에는 16–32MB의 메모리가 할당되었으며, 로딩 프레임으로 보이는 한 프레임은 32–64MB의 메모리로 급증했습니다.

블록 크기를 늘리면 큰 메모리 할당이 가상 메모리로 폴백하지 않고 동적 힙에 남게 됩니다. 하지만 블록 크기가 크면 블록이 완전히 사용되지 않기 때문에 메모리 낭비가 발생할 수 있습니다.

> : 타입 트리 및 파일 캐시 할당자는 동적 힙 할당을 사용합니다. 이 알고리즘에서 사용할 메모리 블록을 줄이려면 타입 트리 블록 크기와 파일 캐시 블록 크기를 0으로 설정하면 됩니다. 그러면 타입 트리와 캐시를 사용하던 할당이 대신 메인 할당자에게 폴백됩니다. 참고: 이 경우 네이티브 메모리 단편화가 증가할 위험이 있습니다. 이러한 블록 크기를 설정하는 방법은 할당자 커스터마이즈를 참조하십시오.

듀얼 스레드 할당자
버킷 할당자
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961