Version: 2023.2

Profiler

class in UnityEngine.Profiling

切换到手册

描述

通过脚本控制 Profiler

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

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

Because use of the Profiler negatively affects the performance of your app, most of the Profiler API functionality is only available when you enable the `Development Build`. Therefore, you must enable `Developer Build` if you want to use profiler API methods in your built app. Disabling `Development Build` makes your app run faster, but prevents you from using most of the Profiler API methods.

The exception to this are the Profiler API methods relating to memory usage. Because Unity manages most of its system memory at run-time, it can provide that information with no performance penalty; therefore these methods are available even if you don't enable `Development Build`. This applies to all memory-related Profiler API methods except Profiler.GetAllocatedMemoryForGraphicsDriver and Profiler.GetRuntimeMemorySizeLong, since they require extra profiling data only available in development builds.

静态变量

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 because 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设置临时分配器的大小。