Version: 2022.3

Profiler

class in UnityEngine.Profiling

切换到手册

描述

通过脚本控制 Profiler

您可以使用 Profiler.BeginSampleProfiler.EndSample 在脚本中添加自定义性能分析器部分。

在独立平台上,您可以将所有性能分析信息保存到文件中,以便稍后进行检查。为此,您必须指定 Profiler.logFile 并将 Profiler.enabledProfiler.enableBinaryLog 都设置为 true

由于使用性能分析器会对应用程序的性能产生负面影响,因此大多数性能分析器 API 功能仅在启用了“Development Build”时才可用。这意味着如果要在构建的应用程序中使用性能分析器 API 方法,则必须启用“Developer Build”。禁用“Development Build”会使您的应用程序运行更快,但会阻止您使用大多数性能分析器 API 方法。

例外情况是与内存使用相关的性能分析器 API 方法。由于 Unity 在运行时管理其大部分系统内存,可以在不降低性能的情况下提供该信息,因此即使未启用“Development Build”,这些方法也可用。这适用于几乎所有与内存相关的性能分析器 API 方法,但 Profiler.GetAllocatedMemoryForGraphicsDriverProfiler.GetRuntimeMemorySizeLong 除外,因为后两者需要额外的性能分析数据,而这些数据仅在开发版中提供。

静态变量

areaCount您可以进行性能分析的性能分析器区域数量。
enableAllocationCallstacks启用托管分配的调用栈的记录。
enableBinaryLog启用将性能分析数据记录到文件中的功能。
enabled启用性能分析器。
logFile指定写入性能分析数据时要使用的文件。
maxUsedMemory设置性能分析器用于缓冲数据的最大内存量。该属性以字节为单位来表示。
usedHeapSizeLong返回 Unity 已分配的字节数。这不包括外部库或驱动程序分配的字节。

静态函数

AddFramesFromFile显示性能分析器中记录的性能分析数据。
BeginSample开始使用自定义标签分析一段代码。
BeginThreadProfiling在调用此方法的线程上启用性能分析。
EmitFrameMetaData将与当前帧关联的元数据写入性能分析器流。
EmitSessionMetaDataWrite metadata associated with the whole Profiler session capture.
EndSample结束当前的性能分析样本。
EndThreadProfiling释放性能分析器用于线程的内部资源。
GetAllCategoriesReturns all ProfilerCategory registered in Profiler.
GetAllocatedMemoryForGraphicsDriver返回为图形驱动程序分配的内存大小(以字节为单位)。仅适用于开发版本的播放器和编辑器。
GetAreaEnabled返回的结果表明当前是否启用了某个给定的 ProfilerArea。
GetCategoriesCountReturns number of ProfilerCategory registered in Profiler.
GetMonoHeapSizeLong返回托管内存的预留空间大小。
GetMonoUsedSizeLongGets the allocated managed memory for live objects and non-collected objects.
GetRuntimeMemorySizeLong收集 Unity 对象使用的本机内存。
GetTempAllocatorSize返回临时分配器的大小。
GetTotalAllocatedMemoryLongThe total memory allocated by the internal allocators in Unity. Unity reserves large pools of memory from the system; this includes double the required memory for textures becuase Unity keeps a copy of each texture on both the CPU and GPU. This function returns the amount of used memory in those pools.
GetTotalFragmentationInfoReturns heap memory fragmentation information.
GetTotalReservedMemoryLongUnity 预留的总内存。
GetTotalUnusedReservedMemoryLong当 Unity 需要分配内存时,Unity 会在池中分配内存以供使用。此函数返回这些池中未使用的内存量。
IsCategoryEnabledReturns whether or not a given ProfilerCategory is currently enabled.
SetAreaEnabled启用或禁用某个给定的 ProfilerArea。
SetCategoryEnabledEnable or disable a given ProfilerCategory.
SetTempAllocatorRequestedSize设置临时分配器的大小。