Unity - Scripting API: Unity.Profiling.LowLevel.Unsafe.ProfilerUnsafeUtility.BeginSampleWithMetadata (original) (raw)

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Your name Your email Suggestion*

Cancel

Declaration

public static void BeginSampleWithMetadata(IntPtr markerPtr, int metadataCount, void* metadata);

Parameters

Parameter Description
markerPtr Profiler marker handle.
metadataCount Metadata parameters count.
metadata Unsafe pointer to the ProfilerMarkerData array.

Description

Starts profiling a piece of code marked with a custom name that the markerPtr handle and metadata parameters has defined.

using Unity.Collections.LowLevel.Unsafe; using Unity.Profiling; using Unity.Profiling.LowLevel; using Unity.Profiling.LowLevel.Unsafe; using System;

class Example { static IntPtr MakeMarkerWithIntMetadata(string name, string paramName) { var handle = ProfilerUnsafeUtility.CreateMarker(name, ProfilerUnsafeUtility.CategoryScripts, MarkerFlags.Default, 1); ProfilerUnsafeUtility.SetMarkerMetadata(handle, 0, paramName, (byte)ProfilerMarkerDataType.Int32, (byte)ProfilerMarkerDataUnit.Count); return handle; }

static readonly IntPtr markerHandle = MakeMarkerWithIntMetadata("MyMarker", "Work Idx");

static unsafe void DoWork(int num)
{
    var metadata = stackalloc [ProfilerMarkerData](Unity.Profiling.LowLevel.Unsafe.ProfilerMarkerData.html)[1];
    metadata[0].Type = (byte)[ProfilerMarkerDataType.Int32](Unity.Profiling.LowLevel.ProfilerMarkerDataType.Int32.html);
    metadata[0].Size = (uint)[UnsafeUtility.SizeOf](Unity.Collections.LowLevel.Unsafe.UnsafeUtility.SizeOf.html)<int>();
    metadata[0].Ptr = [UnsafeUtility.AddressOf](Unity.Collections.LowLevel.Unsafe.UnsafeUtility.AddressOf.html)(ref num);
    [ProfilerUnsafeUtility.BeginSampleWithMetadata](Unity.Profiling.LowLevel.Unsafe.ProfilerUnsafeUtility.BeginSampleWithMetadata.html)(markerHandle, 1, metadata);
    //...
    [ProfilerUnsafeUtility.EndSample](Unity.Profiling.LowLevel.Unsafe.ProfilerUnsafeUtility.EndSample.html)(markerHandle);
}

}