# BeginSample

> Adds a command to begin profile sampling.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine.Rendering](/engine/6000.7/script-reference/unityengine/rendering.md)
* **Assembly:** UnityEngine.CoreModule

## BeginSample(string)

Adds a command to begin profile sampling.

```csharp
public void BeginSample(string name)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): Name of the profile information used for sampling.

### Remarks

Schedules a performance profiling sample to begin when the Command Buffer reaches this point. This is useful for measuring CPU and GPU time spent by one or more commands in the Command Buffer.

A profiling sample that starts with BeginSample must always end with a call to [CommandBuffer.EndSample](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/endsample.md) with the same argument.

When passing a `contextObject`, the Profiler associates the provided Unity Object (for example, a Texture or a Mesh) with the profiling sample. This is similar to the way that [ProfilerMarker.Begin(Object)](/engine/6000.7/script-reference/unity/profiling/profilermarker/begin.md#begin\(object\)) handles the `contextObject` parameter.

## BeginSample(CustomSampler)

Adds a command to begin profile sampling.

```csharp
public void BeginSample(CustomSampler sampler)
```

### Parameters

**** (\[CustomSampler]\(/engine/6000.7/script-reference/unityengine/profiling/customsampler)): The CustomSampler that the CommandBuffer uses for sampling.

### Remarks

Schedules a performance profiling sample to begin when the Command Buffer reaches this point. This is useful for measuring CPU and GPU time spent by one or more commands in the Command Buffer.

A profiling sample that starts with BeginSample must always end with a call to [CommandBuffer.EndSample](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/endsample.md) with the same argument.

When passing a `contextObject`, the Profiler associates the provided Unity Object (for example, a Texture or a Mesh) with the profiling sample. This is similar to the way that [ProfilerMarker.Begin(Object)](/engine/6000.7/script-reference/unity/profiling/profilermarker/begin.md#begin\(object\)) handles the `contextObject` parameter.

## BeginSample(ProfilerMarker)

Adds a command to begin profile sampling.

```csharp
[Conditional("ENABLE_PROFILER")]
public void BeginSample(ProfilerMarker marker)
```

### Parameters

**** (\[ProfilerMarker]\(/engine/6000.7/script-reference/unity/profiling/profilermarker)): The ProfilerMarker that the CommandBuffer uses for sampling.

### Remarks

Schedules a performance profiling sample to begin when the Command Buffer reaches this point. This is useful for measuring CPU and GPU time spent by one or more commands in the Command Buffer.

A profiling sample that starts with BeginSample must always end with a call to [CommandBuffer.EndSample](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/endsample.md) with the same argument.

When passing a `contextObject`, the Profiler associates the provided Unity Object (for example, a Texture or a Mesh) with the profiling sample. This is similar to the way that [ProfilerMarker.Begin(Object)](/engine/6000.7/script-reference/unity/profiling/profilermarker/begin.md#begin\(object\)) handles the `contextObject` parameter.

## BeginSample(ProfilerMarker, Object)

Adds a command to begin profile sampling.

```csharp
[Conditional("ENABLE_PROFILER")]
public void BeginSample(ProfilerMarker marker, Object contextObject)
```

### Parameters

**** (\[ProfilerMarker]\(/engine/6000.7/script-reference/unity/profiling/profilermarker)): The ProfilerMarker that the CommandBuffer uses for sampling.**** (\[Object]\(/engine/6000.7/script-reference/unityengine/object)): Object associated with the operation. The Profiler displays this object in the sample hierarchy, allowing you to identify which specific resource the sample was recorded for.

### Remarks

Schedules a performance profiling sample to begin when the Command Buffer reaches this point. This is useful for measuring CPU and GPU time spent by one or more commands in the Command Buffer.

A profiling sample that starts with BeginSample must always end with a call to [CommandBuffer.EndSample](/engine/6000.7/script-reference/unityengine/rendering/commandbuffer/endsample.md) with the same argument.

When passing a `contextObject`, the Profiler associates the provided Unity Object (for example, a Texture or a Mesh) with the profiling sample. This is similar to the way that [ProfilerMarker.Begin(Object)](/engine/6000.7/script-reference/unity/profiling/profilermarker/begin.md#begin\(object\)) handles the `contextObject` parameter.
