Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


GetMetrics

Returns the current AsyncReadManager metrics.
Read time 3 minutesLast updated 13 days ago

Definition

GetMetrics(AsyncReadManagerMetricsFilters, Flags)

Returns the current AsyncReadManager metrics.
public static AsyncReadManagerRequestMetric[] GetMetrics(AsyncReadManagerMetricsFilters filters, AsyncReadManagerMetrics.Flags flags)

Parameters

(Optional) The filters to control the data returned.

flags

Flags to control the behaviour, including clearing the underlying completed metrics after reading.

Returns

Type

Description

AsyncReadManagerRequestMetric[]Array of read request metrics currently stored in the AsyncReadManager, which can be filtered by passing AsyncReadManagerMetricsFilters.

Remarks

This function can filter the metrics collected by passing AsyncReadManagerMetricsFilters. See AsyncReadManagerMetricsFilters for information about filter creation.

Examples

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}

GetMetrics(List<AsyncReadManagerRequestMetric>, AsyncReadManagerMetricsFilters, Flags)

Writes the current AsyncReadManager metrics into the given List.
public static void GetMetrics(List<AsyncReadManagerRequestMetric> outMetrics, AsyncReadManagerMetricsFilters filters, AsyncReadManagerMetrics.Flags flags)

Parameters

The pre-allocated list to store the metrics in.

(Optional) The filters to control the data returned.

flags

Flags to control the behaviour, including clearing the underlying completed metrics after reading.

Remarks

This function can filter the metrics collected by passing AsyncReadManagerMetricsFilters. See AsyncReadManagerMetricsFilters for information about filter creation.

Examples

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}

GetMetrics(Flags)

Returns the current AsyncReadManager metrics.
public static AsyncReadManagerRequestMetric[] GetMetrics(AsyncReadManagerMetrics.Flags flags)

Parameters

flags

Flags to control the behaviour, including clearing the underlying completed metrics after reading.

Returns

Type

Description

AsyncReadManagerRequestMetric[]Array of read request metrics currently stored in the AsyncReadManager, which can be filtered by passing AsyncReadManagerMetricsFilters.

Remarks

This function can filter the metrics collected by passing AsyncReadManagerMetricsFilters. See AsyncReadManagerMetricsFilters for information about filter creation.

Examples

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}

GetMetrics(List<AsyncReadManagerRequestMetric>, Flags)

Writes the current AsyncReadManager metrics into the given List.
public static void GetMetrics(List<AsyncReadManagerRequestMetric> outMetrics, AsyncReadManagerMetrics.Flags flags)

Parameters

The pre-allocated list to store the metrics in.

flags

Flags to control the behaviour, including clearing the underlying completed metrics after reading.

Remarks

This function can filter the metrics collected by passing AsyncReadManagerMetricsFilters. See AsyncReadManagerMetricsFilters for information about filter creation.

Examples

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}