Описание
Управляет записью и получением метрик из AsyncReadManager.
Менеджер показателей записывает состояния и время отдельных операций чтения, а также дополнительную контекстную информацию для определенных типов ресурсов. Менеджер собирает метрики для операций C# AsyncReadManager.Read и операций чтения из внутренних систем Unity.
Начните запись метрик, вызвав StartCollectingMetrics, и завершите запись с помощью StopCollectingMetrics. Вы можете включить сбор метрик при первом запуске программы, используя аргумент командной строки «-enable-file-read-metrics». Отключайте метрики по завершении сбора данных, чтобы избежать небольшого влияния на производительность, связанного со сбором метрик.
Получите данные метрик, вызвав GetMetrics, которая возвращает массив записей метрик. Вы также можете получить сводку текущих данных с помощью GetCurrentSummaryMetrics. В обоих случаях вы можете выбрать, следует ли очищать существующие показатели при вызове этих функций. Если вы не очистите данные метрик, те же записи будут включены в возвращаемый массив или сводку при следующем получении метрик или сводки. Если вы очистите метрики, при следующем вызове любого метода будут включены только новые данные.
Вызов GetSummaryOfMetrics для суммирования записей в массиве AsyncReadManagerRequestMetric (которые вы получили ранее с помощью GetMetrics). При вызове GetSummaryOfMetrics или GetCurrentSummaryMetrics , вы можете отфильтровать данные, используемые для вычисления сводки, передав набор объектов AsyncReadManagerMetricsFilters.
Класс AsyncReadManagerMetrics доступен только в сборках разработки и редакторе. Вы должны защитить использование этого класса с помощью символа определения сценария ENABLE_PROFILER
(как показано в следующем примере).
using UnityEngine;
using Unity.IO.LowLevel.Unsafe;
class AsyncReadManagerMetricsSample : MonoBehaviour
{
const int maxNumberFrames = 10;
public void Start()
{
#if ENABLE_PROFILER && UNITY_2020_2_OR_NEWER
AsyncReadManagerMetrics.StartCollectingMetrics();
#endif
}
public void Update()
{
if (Time.frameCount > maxNumberFrames)
{
#if ENABLE_PROFILER && UNITY_2020_2_OR_NEWER
AsyncReadManagerRequestMetric[] metrics = AsyncReadManagerMetrics.GetMetrics(AsyncReadManagerMetrics.Flags.ClearOnRead);
AsyncReadManagerMetrics.StopCollectingMetrics();
Debug.LogFormat("Number of metrics collected: {0}", metrics.Length); // If no reads have been triggered, this will be zero
#endif
}
}
}
Статические Методы
ClearCompletedMetrics | Очищает показатели для всех выполненных запросов, включая невыполненные и отмененные запросы. |
GetCurrentSummaryMetrics | Получает сводку метрик, собранных для операций чтения AsyncReadManager с момента начала сбора данных или последней очистки данных метрик. |
GetMetrics | Возвращает текущие показатели AsyncReadManager. |
GetSummaryOfMetrics | Обобщает массив, содержащий записи AsyncReadManagerRequestMetric. |
GetTotalSizeOfNonASRMReadsBytes | Возвращает объем данных (в байтах), прочитанных через системы, отличные от AsyncReadManager. |
IsEnabled | Сообщает, записывает ли в данный момент данные система показателей для AsyncReadManager. |
StartCollectingMetrics | Начать запись данных метрик для операций чтения AsyncReadManager. |
StopCollectingMetrics | Остановить запись данных метрик для операций чтения AsyncReadManager. |