diff --git a/samples/BenchmarkDotNet.Samples/BenchmarkDotNet.Samples.csproj b/samples/BenchmarkDotNet.Samples/BenchmarkDotNet.Samples.csproj
index b0a2c2c5a4..b5f087de5d 100644
--- a/samples/BenchmarkDotNet.Samples/BenchmarkDotNet.Samples.csproj
+++ b/samples/BenchmarkDotNet.Samples/BenchmarkDotNet.Samples.csproj
@@ -25,6 +25,8 @@
+
+
diff --git a/samples/BenchmarkDotNet.Samples/IntroVisualStudioDiagnoser.cs b/samples/BenchmarkDotNet.Samples/IntroVisualStudioDiagnoser.cs
new file mode 100644
index 0000000000..0ac42df464
--- /dev/null
+++ b/samples/BenchmarkDotNet.Samples/IntroVisualStudioDiagnoser.cs
@@ -0,0 +1,21 @@
+using BenchmarkDotNet.Attributes;
+using Microsoft.VSDiagnostics;
+
+namespace BenchmarkDotNet.Samples;
+
+// Enables profiling with the CPU Usage tool
+// See: https://learn.microsoft.com/visualstudio/profiling/profiling-with-benchmark-dotnet
+[CPUUsageDiagnoser]
+public class IntroVisualStudioProfiler
+{
+ private readonly Random rand = new Random(42);
+
+ [Benchmark]
+ public void BurnCPU()
+ {
+ for (int i = 0; i < 100000; ++i)
+ {
+ rand.Next(1, 100);
+ }
+ }
+}