GetMetrics
Returns the current AsyncReadManager metrics.
Read time 3 minutesLast updated 13 days ago
Definition
- Type: Method
- Namespace: Unity.IO.LowLevel.Unsafe
- Assembly: UnityEngine.CoreModule
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 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 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 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 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}