版本:Unity 6 (6000.0)
语言中文
  • C#

RawFrameDataView.GetSampleMetadataAsLong

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们会阅读用户建议的每项修改,并在适用的地方进行更新。

关闭

提交失败

由于某些原因,您的修改建议无法提交。请在几分钟后<>重试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public long GetSampleMetadataAsLong(int sampleIndex, int metadataIndex);

参数

sampleIndex 分析器样本的索引。
metadataIndex 元数据索引。

返回

long 返回样本元数据值的 long 表示形式。

描述

以 long 形式获取样本元数据值。

用于获取与样本关联的附加数据。metadataIndex 必须介于 0 和 GetSampleMetadataCount 之间。

using System;
using Unity.Collections;
using UnityEditor.Profiling;
using UnityEditorInternal;
using UnityEngine;
using UnityEngine.Profiling;

public class Example { public static long GetGCAllocs(int frameIndex) { long totalGcAllocSize = 0;

int gcAllocMarkerId = FrameDataView.invalidMarkerId;

for (int threadIndex = 0;; ++threadIndex) { using (RawFrameDataView frameData = ProfilerDriver.GetRawFrameDataView(frameIndex, threadIndex)) { if (!frameData.valid) break;

if (gcAllocMarkerId == FrameDataView.invalidMarkerId) { gcAllocMarkerId = frameData.GetMarkerId("GC.Alloc"); if (gcAllocMarkerId == FrameDataView.invalidMarkerId) break; }

int sampleCount = frameData.sampleCount; for (int i = 0; i < sampleCount; ++i) { if (gcAllocMarkerId != frameData.GetSampleMarkerId(i)) continue;

long gcAllocSize = frameData.GetSampleMetadataAsLong(i, 0); totalGcAllocSize += gcAllocSize; } } }

return totalGcAllocSize; } }