# BeginSample(nint)

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

## Definition

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

## BeginSample(IntPtr)

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

### Parameters

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

### Remarks

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

**Note:** Both [ProfilerUnsafeUtility.BeginSample](/engine/6000.5/script-reference/unity/profiling/lowlevel/unsafe/profilerunsafeutility/beginsample.md) and [ProfilerUnsafeUtility.EndSample](/engine/6000.5/script-reference/unity/profiling/lowlevel/unsafe/profilerunsafeutility/endsample.md) are 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);
    }
}
```

Use [Recorder](/engine/6000.5/script-reference/unityengine/profiling/recorder.md) to obtain per-frame timings in the Player for the specific marker name.

Additional Resources: [ProfilerUnsafeUtility.CreateMarker](/engine/6000.5/script-reference/unity/profiling/lowlevel/unsafe/profilerunsafeutility/createmarker.md), [ProfilerUnsafeUtility.EndSample](/engine/6000.5/script-reference/unity/profiling/lowlevel/unsafe/profilerunsafeutility/endsample.md).
