用途:面向 Unity 项目的性能分析,帮助定位 CPU、GPU、内存与帧时间瓶颈,追踪内存分配、测量帧耗时、实施性能预算并检测卡顿与掉帧。
主要能力:
- ProfilerMarker 埋点:支持基础 Begin/End、Auto 自动释放、嵌套标记,以及带元数据(如 Bytes、Count)的标记。
- FrameTimingManager:采集单帧或连续多帧的 CPU 帧时间、主线程、渲染线程、GPU 帧时间与 Present 等待时间,可做平均值与最大值统计。
- 内存分析:通过 Profiler.GetTotalAllocatedMemoryLong 等接口抓取内存快照,追踪 Mono 堆、图形驱动内存;用 GC.GetTotalMemory 与 GC.CollectionCount 跟踪每帧 GC 分配;支持 GC.RegisterForFullGCNotification 监听完整 GC。
- 卡顿检测:按帧时间阈值(33.33ms、50ms、100ms)划分轻微、严重、极严重卡顿,提供滑动窗口统计卡顿率与最差帧时间。
- 性能预算:帧预算管理器按系统(物理、AI、动画、渲染)设定并校验预算;内存预算按设备档位(低/中/高)设定总内存、纹理、音频、网格预算。
- 自定义 ProfilerCounter:采样敌人数、活跃特效数、自定义内存等指标。
使用方式:在代码中引入 Unity.Profiling 与 UnityEngine.Profiling 命名空间,按示例创建 ProfilerMarker 并用 using 包裹目标代码段;在 MonoBehaviour 的 Update 中调用 FrameTimingManager.CaptureFrameTimings 与 GetLatestTimings 获取帧数据;用 Profiler 静态方法读取内存;按需注册 GC 通知或实例化预算管理器。
适用场景:识别性能瓶颈、追踪内存分配、测量帧时间、实施性能预算、检测卡顿与掉帧。
限制与建议:FrameTimingManager 需先检查 IsFeatureEnabled;编辑器数据不代表目标设备,应在目标设备上分析;Deep Profile 开销较大应谨慎使用;建议针对战斗、加载、菜单等具体场景分析,并自动化性能测试、记录最差帧。资料未提供具体安装命令、收费方式或平台支持信息。