Объявление
public static AsyncReadManagerRequestMetric[] GetMetrics(Unity.IO.LowLevel.Unsafe.AsyncReadManagerMetrics.Flags flags);public static AsyncReadManagerRequestMetric[] GetMetrics(Unity.IO.LowLevel.Unsafe.AsyncReadManagerMetricsFilters filters, Unity.IO.LowLevel.Unsafe.AsyncReadManagerMetrics.Flags flags);
Параметры
flags | Флаги для управления поведением, включая очистку базовых заполненных метрик после чтения. |
filters | (Необязательно) фильтры для управления возвращаемыми данными. |
Возвращает
AsyncReadManagerRequestMetric[] Массив показателей запросов на чтение, хранящихся в настоящее время в AsyncReadManager, которые можно отфильтровать, передав AsyncReadManagerMetricsFilters.
Описание
Возвращает текущие показатели AsyncReadManager.
Эта функция может фильтровать собранные метрики, передавая AsyncReadManagerMetricsFilters. См. AsyncReadManagerMetricsFilters.ctor для получения информации о создании фильтра.
using Unity.IO.LowLevel.Unsafe;
using UnityEngine;
public class AsyncReadManagerMetricsSample : MonoBehaviour
{
#if ENABLE_PROFILER && UNITY_2020_2_OR_NEWER
void Start()
{
AsyncReadManagerMetrics.StartCollectingMetrics();
}
void Update()
{
AsyncReadManagerRequestMetric[] thisFrameMetrics = AsyncReadManagerMetrics.GetMetrics(AsyncReadManagerMetrics.Flags.ClearOnRead);
foreach (AsyncReadManagerRequestMetric metric in thisFrameMetrics)
{
if (metric.State == ProcessingState.Completed)
{
double bandwidthMBPerSecond = metric.SizeBytes / (metric.TotalTimeMicroseconds - metric.TimeInQueueMicroseconds);
Debug.LogFormat($"Asset name:\"{metric.AssetName}\", bandwidth = {bandwidthMBPerSecond}MB/s");
}
}
}
#endif
}
Объявление
public static void GetMetrics(Listpublic static void GetMetrics(List
Параметры
outMetrics | Предварительно выделенный список для хранения метрик в. |
flags | Флаги для управления поведением, включая очистку базовых заполненных метрик после чтения. |
filters | (Необязательно) фильтры для управления возвращаемыми данными. |
Описание
Записывает текущие показатели AsyncReadManager в заданный список.
Эта функция может фильтровать собранные метрики, передавая AsyncReadManagerMetricsFilters. См. AsyncReadManagerMetricsFilters.ctor для получения информации о создании фильтра.
using Unity.IO.LowLevel.Unsafe;
using System.Collections.Generic;
using UnityEngine;
public class AsyncReadManagerMetricsSample : MonoBehaviour
{
#if ENABLE_PROFILER && UNITY_2020_2_OR_NEWER
void Start()
{
AsyncReadManagerMetrics.StartCollectingMetrics();
}
void Update()
{
List<AsyncReadManagerRequestMetric> thisFrameMetrics = new List<AsyncReadManagerRequestMetric>();
AsyncReadManagerMetrics.GetMetrics(thisFrameMetrics, AsyncReadManagerMetrics.Flags.ClearOnRead);
foreach (AsyncReadManagerRequestMetric metric in thisFrameMetrics)
{
if (metric.State == ProcessingState.Completed)
{
double bandwidthMBPerSecond = metric.SizeBytes / (metric.TotalTimeMicroseconds - metric.TimeInQueueMicroseconds);
Debug.LogFormat($"Asset name:\"{metric.AssetName}\", bandwidth = {bandwidthMBPerSecond}MB/s");
}
}
}
#endif
}