Conversation
Datadog ReportBranch report: ✅ 0 Failed, 339905 Passed, 1587 Skipped, 40m 35.31s Wall Time |
tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/GraphQLTests.cs
Outdated
Show resolved
Hide resolved
Execution-Time Benchmarks Report ⏱️Execution-time results for samples comparing the following branches/commits: 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 shown in red. The following thresholds were used for comparing the execution times:
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). gantt
title Execution time (ms) FakeDbCommand (.NET Framework 4.6.2)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (5255) - mean (74ms) : 65, 83
. : milestone, 74,
master - mean (73ms) : 65, 81
. : milestone, 73,
section CallTarget+Inlining+NGEN
This PR (5255) - mean (987ms) : 961, 1012
. : milestone, 987,
master - mean (987ms) : 967, 1007
. : milestone, 987,
gantt
title Execution time (ms) FakeDbCommand (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (5255) - mean (111ms) : 107, 115
. : milestone, 111,
master - mean (110ms) : 106, 114
. : milestone, 110,
section CallTarget+Inlining+NGEN
This PR (5255) - mean (716ms) : 695, 738
. : milestone, 716,
master - mean (713ms) : 691, 735
. : milestone, 713,
gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (5255) - mean (95ms) : 91, 99
. : milestone, 95,
master - mean (95ms) : 91, 98
. : milestone, 95,
section CallTarget+Inlining+NGEN
This PR (5255) - mean (674ms) : 646, 701
. : milestone, 674,
master - mean (672ms) : 651, 693
. : milestone, 672,
gantt
title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (5255) - mean (188ms) : 185, 190
. : milestone, 188,
master - mean (187ms) : 185, 190
. : milestone, 187,
section CallTarget+Inlining+NGEN
This PR (5255) - mean (1,061ms) : 1033, 1089
. : milestone, 1061,
master - mean (1,066ms) : 1043, 1088
. : milestone, 1066,
gantt
title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (5255) - mean (270ms) : 265, 275
. : milestone, 270,
master - mean (270ms) : 267, 273
. : milestone, 270,
section CallTarget+Inlining+NGEN
This PR (5255) - mean (862ms) : 837, 888
. : milestone, 862,
master - mean (865ms) : 833, 898
. : milestone, 865,
gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (5255) - mean (260ms) : 256, 264
. : milestone, 260,
master - mean (259ms) : 256, 263
. : milestone, 259,
section CallTarget+Inlining+NGEN
This PR (5255) - mean (854ms) : 832, 877
. : milestone, 854,
master - mean (850ms) : 829, 870
. : milestone, 850,
|
Benchmarks Report 🐌Benchmarks for #5255 compared to master:
The following thresholds were used for comparing the benchmark speeds:
Allocation changes below 0.5% are ignored. Benchmark detailsBenchmarks.Trace.ActivityBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.Asm.AppSecBodyBenchmark - Faster 🎉 Same allocations ✔️
|
| Benchmark | base/diff | Base Median (ns) | Diff Median (ns) | Modality |
|---|---|---|---|---|
| Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleSimpleBody‑net472 | 1.422 | 66,382.20 | 46,688.46 |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | AllCycleSimpleBody |
net6.0 | 41.6μs | 76ns | 294ns | 0.0206 | 0 | 0 | 2.36 KB |
| master | AllCycleSimpleBody |
netcoreapp3.1 | 43.5μs | 87.3ns | 302ns | 0.0218 | 0 | 0 | 2.34 KB |
| master | AllCycleSimpleBody |
net472 | 66.4μs | 15.5ns | 59.9ns | 0.366 | 0 | 0 | 2.41 KB |
| master | AllCycleMoreComplexBody |
net6.0 | 216μs | 240ns | 930ns | 0.109 | 0 | 0 | 9.84 KB |
| master | AllCycleMoreComplexBody |
netcoreapp3.1 | 227μs | 208ns | 807ns | 0.113 | 0 | 0 | 9.73 KB |
| master | AllCycleMoreComplexBody |
net472 | 241μs | 122ns | 472ns | 1.56 | 0 | 0 | 9.91 KB |
| master | ObjectExtractorSimpleBody |
net6.0 | 139ns | 0.0984ns | 0.368ns | 0.00391 | 0 | 0 | 280 B |
| master | ObjectExtractorSimpleBody |
netcoreapp3.1 | 208ns | 0.104ns | 0.403ns | 0.00377 | 0 | 0 | 272 B |
| master | ObjectExtractorSimpleBody |
net472 | 171ns | 0.0727ns | 0.281ns | 0.0446 | 0 | 0 | 281 B |
| master | ObjectExtractorMoreComplexBody |
net6.0 | 3.02μs | 1.31ns | 5.09ns | 0.0528 | 0 | 0 | 3.78 KB |
| master | ObjectExtractorMoreComplexBody |
netcoreapp3.1 | 4.03μs | 2.02ns | 7.82ns | 0.0504 | 0 | 0 | 3.69 KB |
| master | ObjectExtractorMoreComplexBody |
net472 | 3.82μs | 2.49ns | 8.99ns | 0.602 | 0.00573 | 0 | 3.8 KB |
| #5255 | AllCycleSimpleBody |
net6.0 | 40.8μs | 24.6ns | 95.3ns | 0.0205 | 0 | 0 | 2.36 KB |
| #5255 | AllCycleSimpleBody |
netcoreapp3.1 | 44.1μs | 17.5ns | 67.8ns | 0.0221 | 0 | 0 | 2.34 KB |
| #5255 | AllCycleSimpleBody |
net472 | 46.7μs | 10.9ns | 40.7ns | 0.38 | 0 | 0 | 2.41 KB |
| #5255 | AllCycleMoreComplexBody |
net6.0 | 214μs | 63.8ns | 239ns | 0.107 | 0 | 0 | 9.84 KB |
| #5255 | AllCycleMoreComplexBody |
netcoreapp3.1 | 228μs | 101ns | 393ns | 0.114 | 0 | 0 | 9.73 KB |
| #5255 | AllCycleMoreComplexBody |
net472 | 239μs | 60.4ns | 234ns | 1.55 | 0 | 0 | 9.91 KB |
| #5255 | ObjectExtractorSimpleBody |
net6.0 | 143ns | 0.17ns | 0.636ns | 0.00396 | 0 | 0 | 280 B |
| #5255 | ObjectExtractorSimpleBody |
netcoreapp3.1 | 204ns | 0.216ns | 0.837ns | 0.00375 | 0 | 0 | 272 B |
| #5255 | ObjectExtractorSimpleBody |
net472 | 173ns | 0.0932ns | 0.361ns | 0.0446 | 0 | 0 | 281 B |
| #5255 | ObjectExtractorMoreComplexBody |
net6.0 | 2.98μs | 1.1ns | 4.25ns | 0.0535 | 0 | 0 | 3.78 KB |
| #5255 | ObjectExtractorMoreComplexBody |
netcoreapp3.1 | 4.07μs | 1.55ns | 5.79ns | 0.0509 | 0 | 0 | 3.69 KB |
| #5255 | ObjectExtractorMoreComplexBody |
net472 | 4.01μs | 1.62ns | 6.07ns | 0.602 | 0.00571 | 0 | 3.8 KB |
Benchmarks.Trace.Asm.AppSecEncoderBenchmark - Faster 🎉 Fewer allocations 🎉
Faster 🎉 in #5255
Benchmark
base/diff
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeArgs‑net6.0
1.578
50,778.73
32,187.92
Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeArgs‑netcoreapp3.1
1.516
68,649.93
45,274.13
Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeArgs‑net472
1.425
84,737.49
59,478.26
Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs‑net6.0
1.326
128,119.13
96,647.43
Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs‑netcoreapp3.1
1.230
155,396.38
126,304.99
Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs‑net472
1.195
217,433.91
181,917.48
Fewer allocations 🎉 in #5255
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeArgs‑net6.0
30.94 KB
27.94 KB
-3 KB
-9.69%
Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs‑net6.0
33.89 KB
30.34 KB
-3.55 KB
-10.47%
Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs‑netcoreapp3.1
34.09 KB
30.34 KB
-3.74 KB
-10.98%
Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeArgs‑netcoreapp3.1
31.47 KB
27.94 KB
-3.53 KB
-11.20%
Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs‑net472
34.99 KB
30.44 KB
-4.55 KB
-13.00%
Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeArgs‑net472
32.27 KB
28.03 KB
-4.23 KB
-13.12%
| Benchmark | base/diff | Base Median (ns) | Diff Median (ns) | Modality |
|---|---|---|---|---|
| Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeArgs‑net6.0 | 1.578 | 50,778.73 | 32,187.92 | |
| Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeArgs‑netcoreapp3.1 | 1.516 | 68,649.93 | 45,274.13 | |
| Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeArgs‑net472 | 1.425 | 84,737.49 | 59,478.26 | |
| Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs‑net6.0 | 1.326 | 128,119.13 | 96,647.43 | |
| Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs‑netcoreapp3.1 | 1.230 | 155,396.38 | 126,304.99 | |
| Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs‑net472 | 1.195 | 217,433.91 | 181,917.48 |
| Benchmark | Base Allocated | Diff Allocated | Change | Change % |
|---|---|---|---|---|
| Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeArgs‑net6.0 | 30.94 KB | 27.94 KB | -3 KB | -9.69% |
| Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs‑net6.0 | 33.89 KB | 30.34 KB | -3.55 KB | -10.47% |
| Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs‑netcoreapp3.1 | 34.09 KB | 30.34 KB | -3.74 KB | -10.98% |
| Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeArgs‑netcoreapp3.1 | 31.47 KB | 27.94 KB | -3.53 KB | -11.20% |
| Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs‑net472 | 34.99 KB | 30.44 KB | -4.55 KB | -13.00% |
| Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeArgs‑net472 | 32.27 KB | 28.03 KB | -4.23 KB | -13.12% |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | EncodeArgs |
net6.0 | 50.9μs | 51.7ns | 200ns | 0.426 | 0 | 0 | 30.94 KB |
| master | EncodeArgs |
netcoreapp3.1 | 68.7μs | 86.4ns | 323ns | 0.407 | 0 | 0 | 31.47 KB |
| master | EncodeArgs |
net472 | 84.8μs | 67.7ns | 262ns | 5.12 | 0.0846 | 0 | 32.27 KB |
| master | EncodeLegacyArgs |
net6.0 | 128μs | 146ns | 547ns | 0.443 | 0 | 0 | 33.89 KB |
| master | EncodeLegacyArgs |
netcoreapp3.1 | 155μs | 374ns | 1.45μs | 0.468 | 0 | 0 | 34.09 KB |
| master | EncodeLegacyArgs |
net472 | 217μs | 571ns | 2.21μs | 5.46 | 0.42 | 0 | 34.99 KB |
| #5255 | EncodeArgs |
net6.0 | 32.2μs | 19.8ns | 76.8ns | 0.387 | 0 | 0 | 27.94 KB |
| #5255 | EncodeArgs |
netcoreapp3.1 | 45.3μs | 31.5ns | 118ns | 0.382 | 0 | 0 | 27.94 KB |
| #5255 | EncodeArgs |
net472 | 59.5μs | 76.6ns | 297ns | 4.44 | 0.0592 | 0 | 28.03 KB |
| #5255 | EncodeLegacyArgs |
net6.0 | 97.2μs | 447ns | 1.61μs | 0.4 | 0.05 | 0 | 30.34 KB |
| #5255 | EncodeLegacyArgs |
netcoreapp3.1 | 126μs | 618ns | 2.47μs | 0.386 | 0 | 0 | 30.34 KB |
| #5255 | EncodeLegacyArgs |
net472 | 182μs | 188ns | 727ns | 4.79 | 0.361 | 0 | 30.44 KB |
Benchmarks.Trace.Asm.AppSecWafBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | RunWafRealisticBenchmark |
net6.0 | 188μs | 46.1ns | 172ns | 0.0943 | 0 | 0 | 6.51 KB |
| master | RunWafRealisticBenchmark |
netcoreapp3.1 | 204μs | 184ns | 714ns | 0 | 0 | 0 | 6.49 KB |
| master | RunWafRealisticBenchmark |
net472 | 224μs | 125ns | 485ns | 1 | 0 | 0 | 6.59 KB |
| master | RunWafRealisticBenchmarkWithAttack |
net6.0 | 126μs | 78.4ns | 293ns | 0 | 0 | 0 | 4.15 KB |
| master | RunWafRealisticBenchmarkWithAttack |
netcoreapp3.1 | 134μs | 148ns | 573ns | 0 | 0 | 0 | 4.14 KB |
| master | RunWafRealisticBenchmarkWithAttack |
net472 | 147μs | 50.8ns | 190ns | 0.657 | 0 | 0 | 4.19 KB |
| #5255 | RunWafRealisticBenchmark |
net6.0 | 188μs | 200ns | 773ns | 0.095 | 0 | 0 | 6.51 KB |
| #5255 | RunWafRealisticBenchmark |
netcoreapp3.1 | 207μs | 282ns | 1.09μs | 0 | 0 | 0 | 6.49 KB |
| #5255 | RunWafRealisticBenchmark |
net472 | 224μs | 146ns | 566ns | 1.01 | 0 | 0 | 6.59 KB |
| #5255 | RunWafRealisticBenchmarkWithAttack |
net6.0 | 125μs | 44.5ns | 172ns | 0.063 | 0 | 0 | 4.15 KB |
| #5255 | RunWafRealisticBenchmarkWithAttack |
netcoreapp3.1 | 134μs | 304ns | 1.18μs | 0 | 0 | 0 | 4.14 KB |
| #5255 | RunWafRealisticBenchmarkWithAttack |
net472 | 147μs | 66.2ns | 248ns | 0.661 | 0 | 0 | 4.19 KB |
Benchmarks.Trace.AspNetCoreBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | SendRequest |
net6.0 | 172μs | 143ns | 554ns | 0.171 | 0 | 0 | 18.26 KB |
| master | SendRequest |
netcoreapp3.1 | 191μs | 198ns | 769ns | 0.191 | 0 | 0 | 20.42 KB |
| master | SendRequest |
net472 | 0.000896ns | 0.00028ns | 0.00101ns | 0 | 0 | 0 | 0 b |
| #5255 | SendRequest |
net6.0 | 172μs | 153ns | 594ns | 0.171 | 0 | 0 | 18.26 KB |
| #5255 | SendRequest |
netcoreapp3.1 | 195μs | 227ns | 879ns | 0.193 | 0 | 0 | 20.42 KB |
| #5255 | SendRequest |
net472 | 0.032ns | 0.00696ns | 0.027ns | 0 | 0 | 0 | 0 b |
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ More allocations ⚠️
More allocations ⚠️ in #5255
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1
41.59 KB
41.93 KB
343 B
0.82%
| Benchmark | Base Allocated | Diff Allocated | Change | Change % |
|---|---|---|---|---|
| Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 | 41.59 KB | 41.93 KB | 343 B | 0.82% |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | WriteAndFlushEnrichedTraces |
net6.0 | 549μs | 2.1μs | 8.12μs | 0.563 | 0 | 0 | 41.47 KB |
| master | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 653μs | 514ns | 1.92μs | 0.329 | 0 | 0 | 41.59 KB |
| master | WriteAndFlushEnrichedTraces |
net472 | 837μs | 3.96μs | 16.8μs | 8.25 | 2.6 | 0.434 | 53.21 KB |
| #5255 | WriteAndFlushEnrichedTraces |
net6.0 | 544μs | 1.22μs | 4.73μs | 0.548 | 0 | 0 | 41.32 KB |
| #5255 | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 661μs | 1.19μs | 4.61μs | 0.326 | 0 | 0 | 41.93 KB |
| #5255 | WriteAndFlushEnrichedTraces |
net472 | 860μs | 3.51μs | 13.6μs | 8.08 | 2.55 | 0.425 | 53.25 KB |
Benchmarks.Trace.DbCommandBenchmark - Slower ⚠️ Same allocations ✔️
Slower ⚠️ in #5255
Benchmark
diff/base
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑net6.0
1.310
1,018.63
1,333.94
| Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
|---|---|---|---|---|
| Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑net6.0 | 1.310 | 1,018.63 | 1,333.94 |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | ExecuteNonQuery |
net6.0 | 1.02μs | 0.816ns | 3.16ns | 0.0107 | 0 | 0 | 776 B |
| master | ExecuteNonQuery |
netcoreapp3.1 | 1.42μs | 0.572ns | 2.06ns | 0.0106 | 0 | 0 | 776 B |
| master | ExecuteNonQuery |
net472 | 1.79μs | 0.713ns | 2.76ns | 0.117 | 0 | 0 | 738 B |
| #5255 | ExecuteNonQuery |
net6.0 | 1.33μs | 0.642ns | 2.4ns | 0.0107 | 0 | 0 | 776 B |
| #5255 | ExecuteNonQuery |
netcoreapp3.1 | 1.51μs | 0.583ns | 2.26ns | 0.0106 | 0 | 0 | 776 B |
| #5255 | ExecuteNonQuery |
net472 | 1.68μs | 4.41ns | 17.1ns | 0.117 | 0 | 0 | 738 B |
Benchmarks.Trace.ElasticsearchBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | CallElasticsearch |
net6.0 | 1.31μs | 0.685ns | 2.56ns | 0.0135 | 0 | 0 | 944 B |
| master | CallElasticsearch |
netcoreapp3.1 | 1.52μs | 1.07ns | 3.99ns | 0.0128 | 0 | 0 | 944 B |
| master | CallElasticsearch |
net472 | 2.5μs | 0.715ns | 2.68ns | 0.153 | 0 | 0 | 963 B |
| master | CallElasticsearchAsync |
net6.0 | 1.39μs | 0.628ns | 2.43ns | 0.0132 | 0 | 0 | 920 B |
| master | CallElasticsearchAsync |
netcoreapp3.1 | 1.65μs | 0.514ns | 1.92ns | 0.0132 | 0 | 0 | 992 B |
| master | CallElasticsearchAsync |
net472 | 2.56μs | 0.691ns | 2.68ns | 0.161 | 0 | 0 | 1.02 KB |
| #5255 | CallElasticsearch |
net6.0 | 1.23μs | 1.43ns | 5.34ns | 0.0135 | 0 | 0 | 944 B |
| #5255 | CallElasticsearch |
netcoreapp3.1 | 1.52μs | 0.56ns | 1.94ns | 0.0122 | 0 | 0 | 944 B |
| #5255 | CallElasticsearch |
net472 | 2.39μs | 1.29ns | 5.01ns | 0.153 | 0 | 0 | 963 B |
| #5255 | CallElasticsearchAsync |
net6.0 | 1.29μs | 0.725ns | 2.71ns | 0.0125 | 0 | 0 | 920 B |
| #5255 | CallElasticsearchAsync |
netcoreapp3.1 | 1.55μs | 0.549ns | 2.05ns | 0.0134 | 0 | 0 | 992 B |
| #5255 | CallElasticsearchAsync |
net472 | 2.55μs | 1.09ns | 4.21ns | 0.161 | 0 | 0 | 1.02 KB |
Benchmarks.Trace.GraphQLBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | ExecuteAsync |
net6.0 | 1.42μs | 3.01ns | 10.9ns | 0.0128 | 0 | 0 | 920 B |
| master | ExecuteAsync |
netcoreapp3.1 | 1.69μs | 0.868ns | 3.36ns | 0.0127 | 0 | 0 | 920 B |
| master | ExecuteAsync |
net472 | 1.84μs | 0.648ns | 2.51ns | 0.14 | 0 | 0 | 883 B |
| #5255 | ExecuteAsync |
net6.0 | 1.29μs | 1.52ns | 5.9ns | 0.0129 | 0 | 0 | 920 B |
| #5255 | ExecuteAsync |
netcoreapp3.1 | 1.61μs | 0.685ns | 2.56ns | 0.012 | 0 | 0 | 920 B |
| #5255 | ExecuteAsync |
net472 | 1.81μs | 1.22ns | 4.73ns | 0.14 | 0 | 0 | 883 B |
Benchmarks.Trace.HttpClientBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | SendAsync |
net6.0 | 4.14μs | 2.11ns | 7.61ns | 0.0289 | 0 | 0 | 2.1 KB |
| master | SendAsync |
netcoreapp3.1 | 4.99μs | 3.29ns | 12.8ns | 0.0349 | 0 | 0 | 2.64 KB |
| master | SendAsync |
net472 | 7.58μs | 2.82ns | 10.9ns | 0.525 | 0 | 0 | 3.31 KB |
| #5255 | SendAsync |
net6.0 | 4.13μs | 1.95ns | 7.28ns | 0.0289 | 0 | 0 | 2.1 KB |
| #5255 | SendAsync |
netcoreapp3.1 | 5μs | 2.99ns | 11.6ns | 0.035 | 0 | 0 | 2.64 KB |
| #5255 | SendAsync |
net472 | 7.66μs | 5.84ns | 22.6ns | 0.524 | 0 | 0 | 3.31 KB |
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed ✔️ Fewer allocations 🎉
Fewer allocations 🎉 in #5255
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net472
61.06 KB
57.9 KB
-3.17 KB
-5.19%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1
216.77 KB
202.11 KB
-14.66 KB
-6.76%
| Benchmark | Base Allocated | Diff Allocated | Change | Change % |
|---|---|---|---|---|
| Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net472 | 61.06 KB | 57.9 KB | -3.17 KB | -5.19% |
| Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 | 216.77 KB | 202.11 KB | -14.66 KB | -6.76% |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | StringConcatBenchmark |
net6.0 | 58.8μs | 795ns | 7.95μs | 0 | 0 | 0 | 43.44 KB |
| master | StringConcatBenchmark |
netcoreapp3.1 | 52.6μs | 240ns | 930ns | 0 | 0 | 0 | 42.64 KB |
| master | StringConcatBenchmark |
net472 | 37.3μs | 120ns | 416ns | 0 | 0 | 0 | 61.06 KB |
| master | StringConcatAspectBenchmark |
net6.0 | 264μs | 1.25μs | 7.05μs | 0 | 0 | 0 | 203.54 KB |
| master | StringConcatAspectBenchmark |
netcoreapp3.1 | 306μs | 1.49μs | 11.2μs | 0 | 0 | 0 | 216.77 KB |
| master | StringConcatAspectBenchmark |
net472 | 227μs | 1.19μs | 6.16μs | 0 | 0 | 0 | 229.38 KB |
| #5255 | StringConcatBenchmark |
net6.0 | 50.9μs | 257ns | 1.18μs | 0 | 0 | 0 | 43.44 KB |
| #5255 | StringConcatBenchmark |
netcoreapp3.1 | 51.4μs | 233ns | 839ns | 0 | 0 | 0 | 42.64 KB |
| #5255 | StringConcatBenchmark |
net472 | 37.6μs | 95.8ns | 345ns | 0 | 0 | 0 | 57.9 KB |
| #5255 | StringConcatAspectBenchmark |
net6.0 | 244μs | 3.14μs | 30μs | 0 | 0 | 0 | 202.91 KB |
| #5255 | StringConcatAspectBenchmark |
netcoreapp3.1 | 277μs | 1.42μs | 6.52μs | 0 | 0 | 0 | 202.11 KB |
| #5255 | StringConcatAspectBenchmark |
net472 | 231μs | 1.23μs | 7.98μs | 0 | 0 | 0 | 229.38 KB |
Benchmarks.Trace.ILoggerBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | EnrichedLog |
net6.0 | 1.66μs | 0.352ns | 1.27ns | 0.022 | 0 | 0 | 1.58 KB |
| master | EnrichedLog |
netcoreapp3.1 | 2.18μs | 0.728ns | 2.72ns | 0.0209 | 0 | 0 | 1.58 KB |
| master | EnrichedLog |
net472 | 2.72μs | 1.17ns | 4.36ns | 0.238 | 0 | 0 | 1.51 KB |
| #5255 | EnrichedLog |
net6.0 | 1.5μs | 1.2ns | 4.66ns | 0.0222 | 0 | 0 | 1.58 KB |
| #5255 | EnrichedLog |
netcoreapp3.1 | 2.16μs | 0.882ns | 3.3ns | 0.0205 | 0 | 0 | 1.58 KB |
| #5255 | EnrichedLog |
net472 | 2.52μs | 2.42ns | 9.36ns | 0.239 | 0 | 0 | 1.51 KB |
Benchmarks.Trace.Log4netBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | EnrichedLog |
net6.0 | 114μs | 227ns | 879ns | 0.0566 | 0 | 0 | 4.22 KB |
| master | EnrichedLog |
netcoreapp3.1 | 118μs | 89.8ns | 336ns | 0.0589 | 0 | 0 | 4.22 KB |
| master | EnrichedLog |
net472 | 148μs | 85.6ns | 331ns | 0.663 | 0.221 | 0 | 4.4 KB |
| #5255 | EnrichedLog |
net6.0 | 115μs | 188ns | 705ns | 0.0579 | 0 | 0 | 4.22 KB |
| #5255 | EnrichedLog |
netcoreapp3.1 | 118μs | 135ns | 524ns | 0 | 0 | 0 | 4.22 KB |
| #5255 | EnrichedLog |
net472 | 148μs | 82.9ns | 310ns | 0.666 | 0.222 | 0 | 4.4 KB |
Benchmarks.Trace.NLogBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | EnrichedLog |
net6.0 | 3.13μs | 0.909ns | 3.52ns | 0.0298 | 0 | 0 | 2.14 KB |
| master | EnrichedLog |
netcoreapp3.1 | 4.12μs | 2.11ns | 8.18ns | 0.0289 | 0 | 0 | 2.14 KB |
| master | EnrichedLog |
net472 | 4.88μs | 1.39ns | 5.19ns | 0.31 | 0 | 0 | 1.95 KB |
| #5255 | EnrichedLog |
net6.0 | 2.9μs | 1.87ns | 7.23ns | 0.0305 | 0 | 0 | 2.14 KB |
| #5255 | EnrichedLog |
netcoreapp3.1 | 4.24μs | 2.08ns | 8.05ns | 0.0272 | 0 | 0 | 2.14 KB |
| #5255 | EnrichedLog |
net472 | 4.78μs | 2.58ns | 9.28ns | 0.309 | 0 | 0 | 1.95 KB |
Benchmarks.Trace.RedisBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | SendReceive |
net6.0 | 1.34μs | 0.73ns | 2.83ns | 0.0153 | 0 | 0 | 1.11 KB |
| master | SendReceive |
netcoreapp3.1 | 1.69μs | 0.787ns | 2.84ns | 0.0151 | 0 | 0 | 1.11 KB |
| master | SendReceive |
net472 | 2.16μs | 4.56ns | 17ns | 0.178 | 0 | 0 | 1.12 KB |
| #5255 | SendReceive |
net6.0 | 1.25μs | 0.732ns | 2.84ns | 0.0156 | 0 | 0 | 1.11 KB |
| #5255 | SendReceive |
netcoreapp3.1 | 1.66μs | 0.789ns | 3.05ns | 0.0149 | 0 | 0 | 1.11 KB |
| #5255 | SendReceive |
net472 | 2μs | 2.03ns | 7.33ns | 0.178 | 0 | 0 | 1.12 KB |
Benchmarks.Trace.SerilogBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | EnrichedLog |
net6.0 | 2.9μs | 1.24ns | 4.82ns | 0.0216 | 0 | 0 | 1.54 KB |
| master | EnrichedLog |
netcoreapp3.1 | 4.07μs | 1.03ns | 3.85ns | 0.0205 | 0 | 0 | 1.58 KB |
| master | EnrichedLog |
net472 | 4.2μs | 1.26ns | 4.9ns | 0.313 | 0 | 0 | 1.97 KB |
| #5255 | EnrichedLog |
net6.0 | 2.63μs | 0.669ns | 2.59ns | 0.021 | 0 | 0 | 1.54 KB |
| #5255 | EnrichedLog |
netcoreapp3.1 | 3.9μs | 1.37ns | 5.3ns | 0.0216 | 0 | 0 | 1.58 KB |
| #5255 | EnrichedLog |
net472 | 4.34μs | 1.68ns | 6.3ns | 0.313 | 0 | 0 | 1.97 KB |
Benchmarks.Trace.SpanBenchmark - Slower ⚠️ Same allocations ✔️
Slower ⚠️ in #5255
Benchmark
diff/base
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑netcoreapp3.1
1.132
652.93
738.97
| Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
|---|---|---|---|---|
| Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑netcoreapp3.1 | 1.132 | 652.93 | 738.97 |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | StartFinishSpan |
net6.0 | 463ns | 0.748ns | 2.9ns | 0.00771 | 0 | 0 | 544 B |
| master | StartFinishSpan |
netcoreapp3.1 | 652ns | 0.896ns | 3.23ns | 0.00744 | 0 | 0 | 544 B |
| master | StartFinishSpan |
net472 | 782ns | 2.01ns | 7.77ns | 0.0865 | 0 | 0 | 546 B |
| master | StartFinishScope |
net6.0 | 584ns | 0.937ns | 3.63ns | 0.00937 | 0 | 0 | 664 B |
| master | StartFinishScope |
netcoreapp3.1 | 853ns | 1.35ns | 5.23ns | 0.00919 | 0 | 0 | 664 B |
| master | StartFinishScope |
net472 | 928ns | 1.6ns | 6.21ns | 0.099 | 0 | 0 | 626 B |
| #5255 | StartFinishSpan |
net6.0 | 449ns | 0.841ns | 3.26ns | 0.00748 | 0 | 0 | 544 B |
| #5255 | StartFinishSpan |
netcoreapp3.1 | 739ns | 0.985ns | 3.82ns | 0.00739 | 0 | 0 | 544 B |
| #5255 | StartFinishSpan |
net472 | 740ns | 0.814ns | 3.15ns | 0.0866 | 0 | 0 | 546 B |
| #5255 | StartFinishScope |
net6.0 | 630ns | 1.13ns | 4.36ns | 0.00923 | 0 | 0 | 664 B |
| #5255 | StartFinishScope |
netcoreapp3.1 | 940ns | 0.756ns | 2.83ns | 0.00877 | 0 | 0 | 664 B |
| #5255 | StartFinishScope |
net472 | 993ns | 1.38ns | 5.33ns | 0.0994 | 0 | 0 | 626 B |
Benchmarks.Trace.TraceAnnotationsBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | RunOnMethodBegin |
net6.0 | 702ns | 1.27ns | 4.9ns | 0.0091 | 0 | 0 | 664 B |
| master | RunOnMethodBegin |
netcoreapp3.1 | 1.02μs | 1.77ns | 6.84ns | 0.00904 | 0 | 0 | 664 B |
| master | RunOnMethodBegin |
net472 | 1.11μs | 1.8ns | 6.98ns | 0.0992 | 0 | 0 | 626 B |
| #5255 | RunOnMethodBegin |
net6.0 | 631ns | 0.857ns | 3.32ns | 0.00948 | 0 | 0 | 664 B |
| #5255 | RunOnMethodBegin |
netcoreapp3.1 | 954ns | 2.12ns | 8.21ns | 0.00897 | 0 | 0 | 664 B |
| #5255 | RunOnMethodBegin |
net472 | 1.14μs | 1.72ns | 6.43ns | 0.0993 | 0 | 0 | 626 B |
tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/GraphQLTests.cs
Outdated
Show resolved
Hide resolved
tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/GraphQLTests.cs
Outdated
Show resolved
Hide resolved
Throughput/Crank Report:zap:Throughput results for AspNetCoreSimpleController comparing the following branches/commits: Cases where throughput results for the PR are worse than latest master (5% drop or greater), results are shown in red. Note that these results are based on a single point-in-time result for each branch. For full results, see one of the many, many dashboards! gantt
title Throughput Linux x64 (Total requests)
dateFormat X
axisFormat %s
section Baseline
This PR (5255) (11.057M) : 0, 11057062
master (11.049M) : 0, 11048964
benchmarks/2.9.0 (11.124M) : 0, 11124125
section Automatic
This PR (5255) (7.558M) : 0, 7558361
master (7.647M) : 0, 7647044
benchmarks/2.9.0 (8.268M) : 0, 8268275
section Trace stats
This PR (5255) (7.892M) : 0, 7891947
master (7.930M) : 0, 7929875
section Manual
This PR (5255) (9.506M) : 0, 9506264
master (9.692M) : 0, 9691903
section Manual + Automatic
This PR (5255) (7.116M) : 0, 7115928
master (7.121M) : 0, 7120766
section Version Conflict
This PR (5255) (6.374M) : 0, 6374074
master (6.404M) : 0, 6403827
gantt
title Throughput Linux arm64 (Total requests)
dateFormat X
axisFormat %s
section Baseline
This PR (5255) (9.489M) : 0, 9489180
master (9.351M) : 0, 9351384
benchmarks/2.9.0 (9.557M) : 0, 9556831
section Automatic
This PR (5255) (6.688M) : 0, 6688286
master (6.456M) : 0, 6455727
section Trace stats
This PR (5255) (6.780M) : 0, 6779995
master (6.580M) : 0, 6580411
section Manual
This PR (5255) (8.250M) : 0, 8249531
master (8.037M) : 0, 8037032
section Manual + Automatic
This PR (5255) (6.340M) : 0, 6340133
master (6.270M) : 0, 6269626
section Version Conflict
This PR (5255) (5.703M) : 0, 5703392
master (5.595M) : 0, 5595041
gantt
title Throughput Windows x64 (Total requests)
dateFormat X
axisFormat %s
section Baseline
This PR (5255) (9.514M) : 0, 9514092
master (10.406M) : 0, 10406304
benchmarks/2.9.0 (9.910M) : 0, 9909593
section Automatic
This PR (5255) (7.010M) : 0, 7010114
master (7.296M) : 0, 7295789
benchmarks/2.9.0 (7.464M) : 0, 7464259
section Trace stats
This PR (5255) (7.309M) : 0, 7309364
master (7.634M) : 0, 7634119
section Manual
This PR (5255) (8.602M) : 0, 8601941
master (9.026M) : 0, 9026110
section Manual + Automatic
This PR (5255) (6.699M) : crit ,0, 6699475
master (7.113M) : 0, 7113148
section Version Conflict
This PR (5255) (6.072M) : 0, 6072269
master (6.379M) : 0, 6378587
gantt
title Throughput Linux x64 (ASM) (Total requests)
dateFormat X
axisFormat %s
section Baseline
master (7.518M) : 0, 7517670
benchmarks/2.9.0 (7.908M) : 0, 7908237
section No attack
master (1.831M) : 0, 1831221
benchmarks/2.9.0 (3.212M) : 0, 3211779
section Attack
master (1.442M) : 0, 1442009
benchmarks/2.9.0 (2.469M) : 0, 2469017
section Blocking
master (3.159M) : 0, 3158780
section IAST default
master (6.504M) : 0, 6503728
section IAST full
master (5.620M) : 0, 5619566
section Base vuln
master (0.900M) : 0, 899927
section IAST vuln
master (0.875M) : 0, 875067
|
andrewlock
left a comment
There was a problem hiding this comment.
Thanks - I wonder if we should set this somewhere "centrally" so we don't introduce flake if we use querystrings in the future?
| #endif | ||
|
|
||
| // After updating the regex implementation multiple runtimes started hitting the a timeout, updating here to prevent flakes on master | ||
| SetEnvironmentVariable(Configuration.ConfigurationKeys.ObfuscationQueryStringRegexTimeout, "5_000"); |
There was a problem hiding this comment.
I wonder if we should set this for all test, not just GraphQL. ASM tests in particular probably use querystrings, as do some aspnetcore test IIRC. But this is a good start!
…Tests.cs Co-authored-by: Lucas Pimentel <lucas.pimentel@datadoghq.com>
Summary of changes
Updating when the
ObfuscationQueryStringRegexTimeoutsetting should be change on the existing GraphQL tests and the value for it.Also added an
ein for the logged ObfuscationQueryStringRegexTimeout JSON key.Reason for change
After the latest updates to the regex obfuscator we started getting multiple flaky GraphQL tests(for multiple runtimes).