Conversation
BenchmarksBenchmark execution time: 2026-03-12 10:00:43 Comparing candidate commit 3a16f9f in PR branch Found 6 performance improvements and 7 performance regressions! Performance is the same for 161 metrics, 18 unstable metrics. scenario:Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleSimpleBody netcoreapp3.1
scenario:Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs netcoreapp3.1
scenario:Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice netcoreapp3.1
scenario:Benchmarks.Trace.HttpClientBenchmark.SendAsync net6.0
scenario:Benchmarks.Trace.ILoggerBenchmark.EnrichedLog net6.0
scenario:Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark net6.0
scenario:Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark net6.0
scenario:Benchmarks.Trace.Log4netBenchmark.EnrichedLog netcoreapp3.1
scenario:Benchmarks.Trace.NLogBenchmark.EnrichedLog net6.0
scenario:Benchmarks.Trace.SpanBenchmark.StartFinishScope net6.0
scenario:Benchmarks.Trace.SpanBenchmark.StartFinishSpan net6.0
scenario:Benchmarks.Trace.SpanBenchmark.StartFinishSpan netcoreapp3.1
scenario:Benchmarks.Trace.SpanBenchmark.StartFinishTwoScopes net6.0
|
|
@codex review |
|
Codex Review: Didn't find any major issues. Can't wait for the next one! ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Execution-Time Benchmarks Report ⏱️Execution-time results for samples comparing This PR (8282) and master.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Metric | Master (Mean ± 95% CI) | Current (Mean ± 95% CI) | Change | Status |
|---|---|---|---|---|
| .NET Framework 4.8 - Baseline | ||||
| duration | 188.66 ± (188.88 - 189.66) ms | 214.96 ± (214.58 - 215.59) ms | +13.9% | ❌⬆️ |
| .NET Framework 4.8 - Bailout | ||||
| duration | 191.97 ± (191.89 - 192.24) ms | 218.36 ± (217.58 - 218.65) ms | +13.7% | ❌⬆️ |
| .NET Framework 4.8 - CallTarget+Inlining+NGEN | ||||
| duration | 1143.25 ± (1149.70 - 1159.28) ms | 1231.97 ± (1231.52 - 1238.53) ms | +7.8% | ❌⬆️ |
Full Metrics Comparison
FakeDbCommand
| Metric | Master (Mean ± 95% CI) | Current (Mean ± 95% CI) | Change | Status |
|---|---|---|---|---|
| .NET Framework 4.8 - Baseline | ||||
| duration | 71.84 ± (71.85 - 72.17) ms | 71.47 ± (71.48 - 71.78) ms | -0.5% | ✅ |
| .NET Framework 4.8 - Bailout | ||||
| duration | 76.48 ± (76.34 - 76.73) ms | 75.86 ± (75.66 - 76.01) ms | -0.8% | ✅ |
| .NET Framework 4.8 - CallTarget+Inlining+NGEN | ||||
| duration | 1073.85 ± (1076.48 - 1083.30) ms | 1055.80 ± (1057.65 - 1063.50) ms | -1.7% | ✅ |
| .NET Core 3.1 - Baseline | ||||
| process.internal_duration_ms | 22.48 ± (22.44 - 22.52) ms | 22.40 ± (22.36 - 22.44) ms | -0.4% | ✅ |
| process.time_to_main_ms | 84.11 ± (83.91 - 84.31) ms | 84.12 ± (83.90 - 84.33) ms | +0.0% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 0 ± (0 - 0) | 0 ± (0 - 0) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 10.92 ± (10.91 - 10.93) MB | 10.93 ± (10.93 - 10.94) MB | +0.1% | ✅⬆️ |
| runtime.dotnet.threads.count | 12 ± (12 - 12) | 12 ± (12 - 12) | +0.0% | ✅ |
| .NET Core 3.1 - Bailout | ||||
| process.internal_duration_ms | 22.21 ± (22.16 - 22.25) ms | 22.32 ± (22.28 - 22.35) ms | +0.5% | ✅⬆️ |
| process.time_to_main_ms | 85.30 ± (85.10 - 85.50) ms | 85.04 ± (84.86 - 85.22) ms | -0.3% | ✅ |
| runtime.dotnet.exceptions.count | 0 ± (0 - 0) | 0 ± (0 - 0) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 10.95 ± (10.95 - 10.95) MB | 10.95 ± (10.95 - 10.96) MB | +0.0% | ✅⬆️ |
| runtime.dotnet.threads.count | 13 ± (13 - 13) | 13 ± (13 - 13) | +0.0% | ✅ |
| .NET Core 3.1 - CallTarget+Inlining+NGEN | ||||
| process.internal_duration_ms | 221.61 ± (220.41 - 222.81) ms | 222.09 ± (220.84 - 223.33) ms | +0.2% | ✅⬆️ |
| process.time_to_main_ms | 535.06 ± (533.81 - 536.30) ms | 515.65 ± (514.53 - 516.76) ms | -3.6% | ✅ |
| runtime.dotnet.exceptions.count | 0 ± (0 - 0) | 0 ± (0 - 0) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 48.30 ± (48.26 - 48.34) MB | 47.80 ± (47.77 - 47.83) MB | -1.0% | ✅ |
| runtime.dotnet.threads.count | 28 ± (28 - 28) | 28 ± (28 - 28) | +0.1% | ✅⬆️ |
| .NET 6 - Baseline | ||||
| process.internal_duration_ms | 21.01 ± (20.97 - 21.04) ms | 20.90 ± (20.86 - 20.93) ms | -0.5% | ✅ |
| process.time_to_main_ms | 72.39 ± (72.22 - 72.56) ms | 72.07 ± (71.91 - 72.23) ms | -0.4% | ✅ |
| runtime.dotnet.exceptions.count | 0 ± (0 - 0) | 0 ± (0 - 0) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 10.63 ± (10.63 - 10.63) MB | 10.64 ± (10.63 - 10.64) MB | +0.1% | ✅⬆️ |
| runtime.dotnet.threads.count | 10 ± (10 - 10) | 10 ± (10 - 10) | +0.0% | ✅ |
| .NET 6 - Bailout | ||||
| process.internal_duration_ms | 21.02 ± (20.99 - 21.05) ms | 20.93 ± (20.90 - 20.97) ms | -0.4% | ✅ |
| process.time_to_main_ms | 73.76 ± (73.58 - 73.94) ms | 73.23 ± (73.05 - 73.40) ms | -0.7% | ✅ |
| runtime.dotnet.exceptions.count | 0 ± (0 - 0) | 0 ± (0 - 0) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 10.66 ± (10.66 - 10.67) MB | 10.75 ± (10.74 - 10.75) MB | +0.8% | ✅⬆️ |
| runtime.dotnet.threads.count | 11 ± (11 - 11) | 11 ± (11 - 11) | +0.0% | ✅ |
| .NET 6 - CallTarget+Inlining+NGEN | ||||
| process.internal_duration_ms | 388.55 ± (386.20 - 390.90) ms | 386.82 ± (384.68 - 388.96) ms | -0.4% | ✅ |
| process.time_to_main_ms | 534.61 ± (533.57 - 535.66) ms | 515.15 ± (514.11 - 516.20) ms | -3.6% | ✅ |
| runtime.dotnet.exceptions.count | 0 ± (0 - 0) | 0 ± (0 - 0) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 50.31 ± (50.29 - 50.34) MB | 49.83 ± (49.80 - 49.86) MB | -1.0% | ✅ |
| runtime.dotnet.threads.count | 28 ± (28 - 28) | 28 ± (28 - 28) | -0.1% | ✅ |
| .NET 8 - Baseline | ||||
| process.internal_duration_ms | 19.23 ± (19.20 - 19.27) ms | 19.34 ± (19.31 - 19.37) ms | +0.6% | ✅⬆️ |
| process.time_to_main_ms | 71.44 ± (71.28 - 71.60) ms | 71.85 ± (71.69 - 72.01) ms | +0.6% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 0 ± (0 - 0) | 0 ± (0 - 0) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 7.68 ± (7.68 - 7.69) MB | 7.69 ± (7.68 - 7.70) MB | +0.0% | ✅⬆️ |
| runtime.dotnet.threads.count | 10 ± (10 - 10) | 10 ± (10 - 10) | +0.0% | ✅ |
| .NET 8 - Bailout | ||||
| process.internal_duration_ms | 19.21 ± (19.17 - 19.24) ms | 19.30 ± (19.26 - 19.34) ms | +0.5% | ✅⬆️ |
| process.time_to_main_ms | 72.33 ± (72.20 - 72.47) ms | 72.63 ± (72.48 - 72.77) ms | +0.4% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 0 ± (0 - 0) | 0 ± (0 - 0) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 7.76 ± (7.75 - 7.77) MB | 7.73 ± (7.73 - 7.73) MB | -0.4% | ✅ |
| runtime.dotnet.threads.count | 11 ± (11 - 11) | 11 ± (11 - 11) | +0.0% | ✅ |
| .NET 8 - CallTarget+Inlining+NGEN | ||||
| process.internal_duration_ms | 309.24 ± (307.27 - 311.20) ms | 309.10 ± (307.13 - 311.08) ms | -0.0% | ✅ |
| process.time_to_main_ms | 490.29 ± (489.56 - 491.02) ms | 475.46 ± (474.48 - 476.43) ms | -3.0% | ✅ |
| runtime.dotnet.exceptions.count | 0 ± (0 - 0) | 0 ± (0 - 0) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 37.20 ± (37.18 - 37.22) MB | 36.94 ± (36.91 - 36.97) MB | -0.7% | ✅ |
| runtime.dotnet.threads.count | 27 ± (27 - 27) | 27 ± (27 - 27) | -0.5% | ✅ |
HttpMessageHandler
| Metric | Master (Mean ± 95% CI) | Current (Mean ± 95% CI) | Change | Status |
|---|---|---|---|---|
| .NET Framework 4.8 - Baseline | ||||
| duration | 188.66 ± (188.88 - 189.66) ms | 214.96 ± (214.58 - 215.59) ms | +13.9% | ❌⬆️ |
| .NET Framework 4.8 - Bailout | ||||
| duration | 191.97 ± (191.89 - 192.24) ms | 218.36 ± (217.58 - 218.65) ms | +13.7% | ❌⬆️ |
| .NET Framework 4.8 - CallTarget+Inlining+NGEN | ||||
| duration | 1143.25 ± (1149.70 - 1159.28) ms | 1231.97 ± (1231.52 - 1238.53) ms | +7.8% | ❌⬆️ |
| .NET Core 3.1 - Baseline | ||||
| process.internal_duration_ms | 184.62 ± (184.39 - 184.85) ms | 209.52 ± (208.98 - 210.05) ms | +13.5% | ✅⬆️ |
| process.time_to_main_ms | 79.71 ± (79.54 - 79.87) ms | 91.29 ± (90.94 - 91.65) ms | +14.5% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 3 ± (3 - 3) | 3 ± (3 - 3) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 16.16 ± (16.07 - 16.24) MB | 15.90 ± (15.88 - 15.92) MB | -1.6% | ✅ |
| runtime.dotnet.threads.count | 19 ± (19 - 19) | 20 ± (20 - 20) | +3.9% | ✅⬆️ |
| .NET Core 3.1 - Bailout | ||||
| process.internal_duration_ms | 184.25 ± (184.01 - 184.49) ms | 209.65 ± (209.17 - 210.14) ms | +13.8% | ✅⬆️ |
| process.time_to_main_ms | 80.61 ± (80.51 - 80.70) ms | 92.59 ± (92.33 - 92.85) ms | +14.9% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 3 ± (3 - 3) | 3 ± (3 - 3) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 16.25 ± (16.20 - 16.30) MB | 15.95 ± (15.92 - 15.97) MB | -1.9% | ✅ |
| runtime.dotnet.threads.count | 21 ± (20 - 21) | 21 ± (21 - 21) | +1.5% | ✅⬆️ |
| .NET Core 3.1 - CallTarget+Inlining+NGEN | ||||
| process.internal_duration_ms | 391.61 ± (390.13 - 393.09) ms | 422.35 ± (421.09 - 423.60) ms | +7.8% | ✅⬆️ |
| process.time_to_main_ms | 519.81 ± (518.53 - 521.09) ms | 550.30 ± (548.88 - 551.72) ms | +5.9% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 3 ± (3 - 3) | 3 ± (3 - 3) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 58.08 ± (57.86 - 58.31) MB | 58.75 ± (58.71 - 58.80) MB | +1.1% | ✅⬆️ |
| runtime.dotnet.threads.count | 30 ± (30 - 30) | 30 ± (30 - 30) | +1.0% | ✅⬆️ |
| .NET 6 - Baseline | ||||
| process.internal_duration_ms | 188.32 ± (188.05 - 188.58) ms | 213.21 ± (212.79 - 213.62) ms | +13.2% | ✅⬆️ |
| process.time_to_main_ms | 69.03 ± (68.91 - 69.16) ms | 79.20 ± (78.97 - 79.43) ms | +14.7% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 4 ± (4 - 4) | 4 ± (4 - 4) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 15.48 ± (15.31 - 15.65) MB | 16.19 ± (16.17 - 16.22) MB | +4.6% | ✅⬆️ |
| runtime.dotnet.threads.count | 17 ± (17 - 18) | 20 ± (19 - 20) | +12.3% | ✅⬆️ |
| .NET 6 - Bailout | ||||
| process.internal_duration_ms | 187.87 ± (187.67 - 188.07) ms | 215.01 ± (214.51 - 215.52) ms | +14.4% | ✅⬆️ |
| process.time_to_main_ms | 69.98 ± (69.91 - 70.05) ms | 81.18 ± (80.97 - 81.38) ms | +16.0% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 4 ± (4 - 4) | 4 ± (4 - 4) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 15.57 ± (15.39 - 15.75) MB | 16.20 ± (16.18 - 16.23) MB | +4.1% | ✅⬆️ |
| runtime.dotnet.threads.count | 18 ± (18 - 19) | 21 ± (20 - 21) | +11.2% | ✅⬆️ |
| .NET 6 - CallTarget+Inlining+NGEN | ||||
| process.internal_duration_ms | 596.18 ± (593.06 - 599.29) ms | 605.86 ± (603.11 - 608.61) ms | +1.6% | ✅⬆️ |
| process.time_to_main_ms | 519.46 ± (518.60 - 520.33) ms | 556.86 ± (555.45 - 558.27) ms | +7.2% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 4 ± (4 - 4) | 4 ± (4 - 4) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 61.67 ± (61.57 - 61.77) MB | 61.34 ± (61.26 - 61.43) MB | -0.5% | ✅ |
| runtime.dotnet.threads.count | 30 ± (30 - 30) | 31 ± (31 - 31) | +1.6% | ✅⬆️ |
| .NET 8 - Baseline | ||||
| process.internal_duration_ms | 185.77 ± (185.51 - 186.04) ms | 213.27 ± (212.75 - 213.79) ms | +14.8% | ✅⬆️ |
| process.time_to_main_ms | 68.05 ± (67.92 - 68.17) ms | 78.71 ± (78.47 - 78.95) ms | +15.7% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 4 ± (4 - 4) | 4 ± (4 - 4) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 11.56 ± (11.44 - 11.68) MB | 11.57 ± (11.54 - 11.59) MB | +0.1% | ✅⬆️ |
| runtime.dotnet.threads.count | 17 ± (17 - 18) | 19 ± (19 - 19) | +9.6% | ✅⬆️ |
| .NET 8 - Bailout | ||||
| process.internal_duration_ms | 184.94 ± (184.75 - 185.13) ms | 213.65 ± (213.14 - 214.16) ms | +15.5% | ✅⬆️ |
| process.time_to_main_ms | 69.06 ± (69.01 - 69.12) ms | 80.47 ± (80.25 - 80.68) ms | +16.5% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 4 ± (4 - 4) | 4 ± (4 - 4) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 11.55 ± (11.42 - 11.67) MB | 11.58 ± (11.56 - 11.60) MB | +0.3% | ✅⬆️ |
| runtime.dotnet.threads.count | 18 ± (18 - 18) | 20 ± (20 - 20) | +10.4% | ✅⬆️ |
| .NET 8 - CallTarget+Inlining+NGEN | ||||
| process.internal_duration_ms | 520.56 ± (517.82 - 523.30) ms | 569.27 ± (561.13 - 577.41) ms | +9.4% | ✅⬆️ |
| process.time_to_main_ms | 473.38 ± (472.74 - 474.03) ms | 509.08 ± (508.00 - 510.17) ms | +7.5% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 4 ± (4 - 4) | 4 ± (4 - 4) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 50.99 ± (50.96 - 51.02) MB | 51.19 ± (51.08 - 51.29) MB | +0.4% | ✅⬆️ |
| runtime.dotnet.threads.count | 30 ± (30 - 30) | 30 ± (30 - 30) | +0.6% | ✅⬆️ |
Comparison explanation
Execution-time benchmarks measure the whole time it takes to execute a program, and are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are highlighted in **red**. The following thresholds were used for comparing the execution times:
- Welch test with statistical test for significance of 5%
- Only results indicating a difference greater than 5% and 5 ms are considered.
Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard.
Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph).
Duration charts
FakeDbCommand (.NET Framework 4.8)
gantt
title Execution time (ms) FakeDbCommand (.NET Framework 4.8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8282) - mean (72ms) : 69, 74
master - mean (72ms) : 70, 74
section Bailout
This PR (8282) - mean (76ms) : 74, 78
master - mean (77ms) : 74, 79
section CallTarget+Inlining+NGEN
This PR (8282) - mean (1,061ms) : 1019, 1102
master - mean (1,080ms) : 1031, 1128
FakeDbCommand (.NET Core 3.1)
gantt
title Execution time (ms) FakeDbCommand (.NET Core 3.1)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8282) - mean (113ms) : 109, 117
master - mean (114ms) : 110, 117
section Bailout
This PR (8282) - mean (114ms) : 112, 116
master - mean (114ms) : 112, 117
section CallTarget+Inlining+NGEN
This PR (8282) - mean (777ms) : 759, 794
master - mean (795ms) : 778, 813
FakeDbCommand (.NET 6)
gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8282) - mean (99ms) : 95, 103
master - mean (100ms) : 96, 103
section Bailout
This PR (8282) - mean (100ms) : 98, 103
master - mean (101ms) : 98, 104
section CallTarget+Inlining+NGEN
This PR (8282) - mean (930ms) : 896, 963
master - mean (951ms) : 908, 994
FakeDbCommand (.NET 8)
gantt
title Execution time (ms) FakeDbCommand (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8282) - mean (99ms) : 96, 102
master - mean (98ms) : 94, 103
section Bailout
This PR (8282) - mean (100ms) : 97, 102
master - mean (99ms) : 97, 101
section CallTarget+Inlining+NGEN
This PR (8282) - mean (816ms) : 784, 848
master - mean (829ms) : 800, 858
HttpMessageHandler (.NET Framework 4.8)
gantt
title Execution time (ms) HttpMessageHandler (.NET Framework 4.8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8282) - mean (215ms) : 210, 220
master - mean (189ms) : 185, 194
section Bailout
This PR (8282) - mean (218ms) : crit, 213, 224
master - mean (192ms) : 190, 194
section CallTarget+Inlining+NGEN
This PR (8282) - mean (1,235ms) : crit, 1183, 1287
master - mean (1,154ms) : 1084, 1225
HttpMessageHandler (.NET Core 3.1)
gantt
title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8282) - mean (310ms) : 303, 318
master - mean (273ms) : 269, 277
section Bailout
This PR (8282) - mean (312ms) : crit, 305, 318
master - mean (273ms) : 270, 276
section CallTarget+Inlining+NGEN
This PR (8282) - mean (1,012ms) : crit, 976, 1048
master - mean (941ms) : 921, 962
HttpMessageHandler (.NET 6)
gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8282) - mean (302ms) : 295, 308
master - mean (265ms) : 262, 269
section Bailout
This PR (8282) - mean (305ms) : crit, 297, 313
master - mean (265ms) : 263, 268
section CallTarget+Inlining+NGEN
This PR (8282) - mean (1,192ms) : 1147, 1237
master - mean (1,147ms) : 1104, 1190
HttpMessageHandler (.NET 8)
gantt
title Execution time (ms) HttpMessageHandler (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8282) - mean (303ms) : 296, 310
master - mean (263ms) : 259, 268
section Bailout
This PR (8282) - mean (305ms) : crit, 297, 313
master - mean (263ms) : 260, 266
section CallTarget+Inlining+NGEN
This PR (8282) - mean (1,111ms) : crit, 991, 1232
master - mean (1,026ms) : 985, 1067
## Summary of changes all features have been implemented, we can now GA this to all customers ## Reason for change ## Implementation details depends on #8061 #8163 #8295 theoretically, #8282 as well ## Test coverage ## Other details <!-- Fixes #{issue} --> I took the liberty to refactor the asserts in AgentWriterTest to use actual asserts instead of asserting through the mock's `Verify`, so that we get more actionable errors when the test fails <!--⚠️ Note: Where possible, please obtain 2 approvals prior to merging. Unless CODEOWNERS specifies otherwise, for external teams it is typically best to have one review from a team member, and one review from apm-dotnet. Trivial changes do not require 2 reviews. MergeQueue is NOT enabled in this repository. If you have write access to the repo, the PR has 1-2 approvals (see above), and all of the required checks have passed, you can use the Squash and Merge button to merge the PR. If you don't have write access, or you need help, reach out in the #apm-dotnet channel in Slack. -->
Summary of changes
just bumping the lib version, there seem to be no breaking change on our side.
Reason for change
I need DataDog/libdatadog#1459 and DataDog/libdatadog#1576 for process tags, both released in v28.0.0, I'm taking the latest minor
Implementation details
Test coverage
Other details