Version: Unity 6.0 (6000.0)
언어 : 한국어
Native memory allocator examples
동적 힙 할당자

듀얼 스레드 할당자

듀얼 스레드 할당자는 동적 힙버킷 할당자를 결합한 래퍼입니다. 구체적으로는 다음을 결합합니다.

  • 두 개의 동적 힙 할당자: 메인 스레드에 대한 무잠금 할당자와 다른 모든 스레드가 공유하지만 할당과 할당 해제 시 잠기는 할당자입니다. Unity는 버킷 할당자에 비해 너무 큰 할당에 이 할당자를 사용합니다. 동적 힙 할당자는 메모리 블록을 사용합니다. 할당 크기가 블록의 절반 이상이면 동적 힙 할당자 대신 가상 메모리 시스템으로 이동합니다.
  • 작은 할당을 위한 버킷 할당자: 버킷 할당자가 가득 차면 동적 힙 할당자로 할당이 넘어갑니다.

다음과 같이 두 가지 동적 힙 할당자의 블록 크기를 커스터마이즈할 수 있습니다.

공유 스레드 블록 크기에 대한 커스텀 값이 있는 메인 할당자
공유 스레드 블록 크기에 대한 커스텀 값이 있는 메인 할당자

사용량 보고서는 할당자의 세 부분 모두에 대한 정보를 포함합니다. 예시:

[ALLOC_DEFAULT] Dual Thread Allocator
  Peak main deferred allocation count 135
    [ALLOC_BUCKET]
      Large Block size 4.0 MB
      Used Block count 1
      Peak Allocated bytes 3.3 MB
    [ALLOC_DEFAULT_MAIN]
      Peak usage frame count: [16.0 MB-32.0 MB]: 8283 frames, [32.0 MB-64.0 MB]: 1 frames
      Requested Block Size 16.0 MB
      Peak Block count 2
      Peak Allocated memory 53.3 MB
      Peak Large allocation bytes 40.2 MB
    [ALLOC_DEFAULT_THREAD]
      Peak usage frame count: [64.0 MB-128.0 MB]: 8284 frames
      Requested Block Size 16.0 MB
      Peak Block count 2
      Peak Allocated memory 78.3 MB
      Peak Large allocation bytes 47.3 MB

> 참고: Peak main deferred allocation count는 삭제 대기열의 항목 수입니다. 메인 스레드는 모든 할당을 삭제해야 합니다. 다른 스레드에서 할당을 삭제하면 해당 할당은 대기열에 추가됩니다. 이 할당은 메인 스레드가 삭제할 때까지 대기열에서 기다립니다. 그런 다음 지연된 할당으로 계산됩니다.

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