从脚本控制 Profiler。
您可以在脚本中使用 Profiler.BeginSample 和 Profiler.EndSample 添加自定义 Profiler 部分。
在独立平台上,您可以将所有性能分析信息保存到文件中,以便以后检查。为此,您必须指定 Profiler.logFile 并将 Profiler.enabled 和 Profiler.enableBinaryLog 都设置为 true
。
由于使用 Profiler 会对应用程序的性能产生负面影响,因此 Profiler API 的大部分功能仅在启用“开发版本”时才可用。因此,如果您想在构建的应用程序中使用 Profiler API 方法,则必须启用“开发版本”。禁用“开发版本”可以使您的应用程序运行更快,但会阻止您使用 Profiler API 的大多数方法。
例外情况是与内存使用相关的 Profiler API 方法。由于 Unity 在运行时管理其大部分系统内存,因此它可以在没有任何性能损失的情况下提供这些信息;因此,即使您没有启用“开发版本”,这些方法也可用。这适用于所有与内存相关的 Profiler API 方法,除了 Profiler.GetAllocatedMemoryForGraphicsDriver 和 Profiler.GetRuntimeMemorySizeLong,因为它们需要仅在开发版本中可用的额外性能分析数据。
areaCount | 您可以分析的 Profiler 区域的数量。 |
enableAllocationCallstacks | 启用对托管分配的调用堆栈的记录。 |
enableBinaryLog | 启用将性能分析数据记录到文件。 |
enabled | 启用 Profiler。 |
logFile | 指定写入性能分析数据时要使用的文件。 |
maxUsedMemory | 设置 Profiler 用于缓冲数据的最大内存量。此属性以字节表示。 |
usedHeapSizeLong | 返回 Unity 已分配的字节数。这并不包括外部库或驱动程序分配的字节。 |
AddFramesFromFile | 在 Profiler 中显示记录的性能分析数据。 |
BeginSample | 使用自定义标签开始分析一段代码。 |
BeginThreadProfiling | 启用对您调用此方法的线程的性能分析。 |
EmitFrameMetaData | 将与当前帧关联的元数据写入 Profiler 流。 |
EmitSessionMetaData | 写入与整个 Profiler 会话捕获关联的元数据。 |
EndSample | 结束当前性能分析样本。 |
EndThreadProfiling | 释放 Profiler 为线程使用的内部资源。 |
GetAllCategories | 返回 Profiler 中注册的所有 ProfilerCategory。 |
GetAllocatedMemoryForGraphicsDriver | 返回图形驱动程序分配的内存量(以字节为单位)。仅在开发版播放器和编辑器中可用。 |
GetAreaEnabled | 返回给定的 ProfilerArea 当前是否已启用。 |
GetCategoriesCount | 返回 Profiler 中注册的 ProfilerCategory 的数量。 |
GetMonoHeapSizeLong | 返回为托管内存保留的空间的大小。 |
GetMonoUsedSizeLong | 获取活动对象和未收集对象的已分配托管内存。 |
GetRuntimeMemorySizeLong | 收集 Unity 对象使用的本机内存。 |
GetTempAllocatorSize | 返回临时分配器的大小。 |
GetTotalAllocatedMemoryLong | Unity 内部分配器分配的总内存。Unity 从系统保留大量的内存池;这包括纹理所需内存的两倍,因为 Unity 在 CPU 和 GPU 上都保留了每个纹理的副本。此函数返回这些池中使用的内存量。 |
GetTotalFragmentationInfo | 返回堆内存碎片信息。 |
GetTotalReservedMemoryLong | Unity 已保留的总内存。 |
GetTotalUnusedReservedMemoryLong | Unity 为使用时分配内存而分配内存池。此函数返回这些池中未使用的内存量。 |
IsCategoryEnabled | 返回给定的 ProfilerCategory 当前是否已启用。 |
SetAreaEnabled | 启用或禁用给定的 ProfilerArea。 |
SetCategoryEnabled | 启用或禁用给定的 ProfilerCategory。 |
SetTempAllocatorRequestedSize | 设置临时分配器的大小。 |