diff --git a/src/HotChocolate/Core/benchmarks/Execution.Abstractions.Benchmarks/HotChocolate.Execution.Abstractions.Benchmarks.csproj b/src/HotChocolate/Core/benchmarks/Execution.Abstractions.Benchmarks/HotChocolate.Execution.Abstractions.Benchmarks.csproj
new file mode 100644
index 00000000000..be09cc91e25
--- /dev/null
+++ b/src/HotChocolate/Core/benchmarks/Execution.Abstractions.Benchmarks/HotChocolate.Execution.Abstractions.Benchmarks.csproj
@@ -0,0 +1,22 @@
+
+
+
+ Exe
+ net10.0
+ true
+ Preview
+ HotChocolate.Execution.Abstractions.Benchmarks
+ HotChocolate.Execution.Abstractions.Benchmarks
+ true
+ false
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/HotChocolate/Core/benchmarks/Execution.Abstractions.Benchmarks/PathBenchmark.cs b/src/HotChocolate/Core/benchmarks/Execution.Abstractions.Benchmarks/PathBenchmark.cs
new file mode 100644
index 00000000000..a3790da1270
--- /dev/null
+++ b/src/HotChocolate/Core/benchmarks/Execution.Abstractions.Benchmarks/PathBenchmark.cs
@@ -0,0 +1,89 @@
+using BenchmarkDotNet.Attributes;
+using BenchmarkDotNet.Jobs;
+
+namespace HotChocolate.Execution.Abstractions.Benchmarks;
+
+[MemoryDiagnoser]
+[ShortRunJob(RuntimeMoniker.Net10_0)]
+public class PathBenchmark
+{
+ private Path _depth5 = null!;
+ private Path _depth10 = null!;
+ private Path _depth20 = null!;
+ private Path _depth50 = null!;
+
+ [GlobalSetup]
+ public void Setup()
+ {
+ _depth5 = BuildPath(5);
+ _depth10 = BuildPath(10);
+ _depth20 = BuildPath(20);
+ _depth50 = BuildPath(50);
+ }
+
+ private static Path BuildPath(int depth)
+ {
+ var path = Path.Root;
+ for (var i = 0; i < depth; i++)
+ {
+ path = path.Append("field" + i);
+ if (i % 3 == 2)
+ {
+ path = path.Append(i);
+ }
+ }
+ return path;
+ }
+
+ // --- Print benchmarks ---
+
+ [Benchmark]
+ public string Print_Depth5() => _depth5.Print();
+
+ [Benchmark]
+ public string Print_Depth10() => _depth10.Print();
+
+ [Benchmark]
+ public string Print_Depth20() => _depth20.Print();
+
+ [Benchmark]
+ public string Print_Depth50() => _depth50.Print();
+
+ // --- ToList benchmarks ---
+
+ [Benchmark]
+ public IReadOnlyList