ドキュメント

Unity Engine

Unity Engine

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

Inspect the usage reports of the dual thread allocator.
読み終わるまでの所要時間 4 分最終更新 1ヶ月前

デュアルスレッドアロケーターは、動的ヒープ アロケーターと バケット アロケーターを組み合わせるラッパーです。具体的には、以下を組み合わせます。
  • 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 は、削除キュー内のアイテム数です。メインスレッドは、自己によるアロケーションを削除する必要があります。別のスレッドがアロケーションを削除すると、そのアロケーションはキューに追加されます。アロケーションは、メインスレッドが削除するまでキュー内で待機します。その後、ディファードアロケーションとしてカウントされます。