# EndSample(nint)

> End profiling a piece of code marked with a custom name defined by this instance of ProfilerMarker.

## Definition

* **Type:** Method
* **Namespace:** [Unity.Profiling.LowLevel.Unsafe](/engine/6000.6/script-reference/unity/profiling/lowlevel/unsafe.md)
* **Assembly:** UnityEngine.CoreModule

## EndSample(IntPtr)

```csharp
public static void EndSample(nint markerPtr)
```

### Parameters

**** (\[IntPtr]\(https\://learn.microsoft.com/dotnet/api/system.intptr)): Marker handle.

### Remarks

Code marked with [ProfilerUnsafeUtility.BeginSample](/engine/6000.6/script-reference/unity/profiling/lowlevel/unsafe/profilerunsafeutility/beginsample.md) and [ProfilerUnsafeUtility.EndSample](/engine/6000.6/script-reference/unity/profiling/lowlevel/unsafe/profilerunsafeutility/endsample.md) shows up in the Profiler hierarchy. Always use [ProfilerUnsafeUtility.BeginSample](/engine/6000.6/script-reference/unity/profiling/lowlevel/unsafe/profilerunsafeutility/beginsample.md) or [ProfilerUnsafeUtility.BeginSampleWithMetadata](/engine/6000.6/script-reference/unity/profiling/lowlevel/unsafe/profilerunsafeutility/beginsamplewithmetadata.md) to start a section of the instrumented code.

**Note:** [ProfilerUnsafeUtility.EndSample](/engine/6000.6/script-reference/unity/profiling/lowlevel/unsafe/profilerunsafeutility/endsample.md) is thread safe and can be used in jobified code.

The low level Profiler API is included in a Release Build.

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

class Example
{
    static readonly IntPtr markerHandle = ProfilerUnsafeUtility.CreateMarker("MyMarker", ProfilerUnsafeUtility.CategoryScripts, MarkerFlags.Default, 0);
    static unsafe void DoWork(int num)
    {
        ProfilerUnsafeUtility.BeginSample(markerHandle);
        //...
        ProfilerUnsafeUtility.EndSample(markerHandle);
    }
}
```

Additional Resources: [ProfilerUnsafeUtility.BeginSample](/engine/6000.6/script-reference/unity/profiling/lowlevel/unsafe/profilerunsafeutility/beginsample.md), [ProfilerUnsafeUtility.BeginSampleWithMetadata](/engine/6000.6/script-reference/unity/profiling/lowlevel/unsafe/profilerunsafeutility/beginsamplewithmetadata.md), [Recorder](/engine/6000.6/script-reference/unityengine/profiling/recorder.md), [ProfilerCPU](/engine/6000.6/manual/analysis/profiler/visualizing-data/cpu.md).
