Version: 6000.3
语言: 中文
本机内存分配器示例
动态堆分配器示例

双线程分配器示例

先决条件

这些示例使用关闭播放器或 Unity 编辑器时 Unity 写入日志的内存使用情况报告。要创建这些报告,请使用-log-memory-performance-stats命令行参数。要查找项目的日志文件,请按照日志文件页面上的说明进行作。

自定义块大小

您可以自定义两个动态堆分配器的块大小:

主分配器,具有共享线程块大小的自定义值
主分配器,具有共享线程块大小的自定义值

使用情况报告示例

使用情况报告包含分配器所有三个部分的信息。例如:

[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

注意峰值主延迟分配计数是删除队列中的项目数。主线程必须删除它所做的任何分配。如果另一个线程删除了分配,Unity 会将该分配添加到队列中。分配在队列中等待主线程将其删除。然后将其计为递延分配。

其他资源

本机内存分配器示例
动态堆分配器示例