Version: Unity 6.0 (6000.0)
言語 : 日本語
Native memory allocator examples
動的ヒープアロケーター

デュアルスレッドアロケーター

デュアルスレッドアロケーターは、動的ヒープ アロケーターと バケット アロケーターを組み合わせるラッパーです。具体的には、以下を組み合わせます。

  • 2 つの動的ヒープアロケーター: メインスレッドのロックフリーアロケーターと、その他のすべてのスレッドで共有されてアロケーションとアロケーション解除時にロックするアロケーター。バケットアロケーターには大きすぎるアロケーションには、これらのアロケーターが使用されます。動的ヒープアロケーターはメモリブロックを使用します。ブロックの半分以上の大きさのアロケーションには、動的ヒープアロケーターではなく、仮想メモリシステムが適用されます。
  • 小さいアロケーション用のバケットアロケーター。バケットアロケーターが満杯になると、アロケーションが動的ヒープアロケーターに波及します。

2 つの動的ヒープアロケーターのブロックサイズをカスタマイズできます。

共有スレッドブロックサイズのカスタム値を持つメインアロケーター
共有スレッドブロックサイズのカスタム値を持つメインアロケーター

使用状況レポートには、アロケーターの 3 つの部分のすべてに関する情報が含まれます。 例:

[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