-
Notifications
You must be signed in to change notification settings - Fork 148
feat(libdatadog-logger): integrate libdatadog logging #7075
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Datadog ReportAll test runs ✅ 2 Total Test Services: 0 Failed, 2 Passed Test Services
|
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.8)
dateFormat X
axisFormat %s
todayMarker off
section Bailout
This PR (7075) - mean (74ms) : 72, 76
. : milestone, 74,
master - mean (74ms) : 73, 76
. : milestone, 74,
section Baseline
This PR (7075) - mean (71ms) : 67, 74
. : milestone, 71,
master - mean (71ms) : 67, 75
. : milestone, 71,
section CallTarget+Inlining+NGEN
This PR (7075) - mean (1,032ms) : 1002, 1062
. : milestone, 1032,
master - mean (1,034ms) : 993, 1075
. : milestone, 1034,
gantt
title Execution time (ms) FakeDbCommand (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Bailout
This PR (7075) - mean (109ms) : 105, 112
. : milestone, 109,
master - mean (108ms) : 106, 109
. : milestone, 108,
section Baseline
This PR (7075) - mean (107ms) : 103, 111
. : milestone, 107,
master - mean (106ms) : 104, 109
. : milestone, 106,
section CallTarget+Inlining+NGEN
This PR (7075) - mean (714ms) : 693, 734
. : milestone, 714,
master - mean (712ms) : 692, 732
. : milestone, 712,
gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Bailout
This PR (7075) - mean (94ms) : 93, 96
. : milestone, 94,
master - mean (95ms) : 93, 97
. : milestone, 95,
section Baseline
This PR (7075) - mean (95ms) : 92, 97
. : milestone, 95,
master - mean (94ms) : 92, 97
. : milestone, 94,
section CallTarget+Inlining+NGEN
This PR (7075) - mean (671ms) : 653, 690
. : milestone, 671,
master - mean (674ms) : 654, 693
. : milestone, 674,
gantt
title Execution time (ms) HttpMessageHandler (.NET Framework 4.8)
dateFormat X
axisFormat %s
todayMarker off
section Bailout
This PR (7075) - mean (192ms) : 191, 194
. : milestone, 192,
master - mean (192ms) : 190, 194
. : milestone, 192,
section Baseline
This PR (7075) - mean (189ms) : 184, 195
. : milestone, 189,
master - mean (188ms) : 185, 192
. : milestone, 188,
section CallTarget+Inlining+NGEN
This PR (7075) - mean (1,123ms) : 1097, 1149
. : milestone, 1123,
master - mean (1,121ms) : 1090, 1151
. : milestone, 1121,
gantt
title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Bailout
This PR (7075) - mean (270ms) : 266, 273
. : milestone, 270,
master - mean (270ms) : 267, 273
. : milestone, 270,
section Baseline
This PR (7075) - mean (268ms) : 265, 272
. : milestone, 268,
master - mean (268ms) : 264, 272
. : milestone, 268,
section CallTarget+Inlining+NGEN
This PR (7075) - mean (887ms) : 859, 914
. : milestone, 887,
master - mean (883ms) : 858, 907
. : milestone, 883,
gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Bailout
This PR (7075) - mean (263ms) : 260, 265
. : milestone, 263,
master - mean (262ms) : 259, 265
. : milestone, 262,
section Baseline
This PR (7075) - mean (263ms) : 259, 267
. : milestone, 263,
master - mean (262ms) : 259, 266
. : milestone, 262,
section CallTarget+Inlining+NGEN
This PR (7075) - mean (873ms) : 835, 911
. : milestone, 873,
master - mean (878ms) : 839, 916
. : milestone, 878,
gantt
title Execution time (ms) HttpMessageHandler (.NET 8)
dateFormat X
axisFormat %s
todayMarker off
section Bailout
This PR (7075) - mean (261ms) : 258, 264
. : milestone, 261,
master - mean (261ms) : 258, 263
. : milestone, 261,
section Baseline
This PR (7075) - mean (261ms) : 257, 265
. : milestone, 261,
master - mean (261ms) : 258, 264
. : milestone, 261,
section CallTarget+Inlining+NGEN
This PR (7075) - mean (779ms) : 758, 800
. : milestone, 779,
master - mean (782ms) : 760, 804
. : milestone, 782,
|
BenchmarksBenchmarks Report for benchmark platform 🐌Benchmarks for #7075 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 ✔️ Fewer allocations 🎉
|
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 | 6.09 KB | 6.05 KB | -40 B | -0.66% |
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑netcoreapp3.1 | 5.75 KB | 5.71 KB | -47 B | -0.82% |
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net6.0 | 5.58 KB | 5.36 KB | -217 B | -3.89% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | StartStopWithChild |
net6.0 | 11.2μs | 59.7ns | 322ns | 0 | 0 | 0 | 5.58 KB |
master | StartStopWithChild |
netcoreapp3.1 | 14.1μs | 67.5ns | 286ns | 0 | 0 | 0 | 5.75 KB |
master | StartStopWithChild |
net472 | 22.1μs | 119ns | 651ns | 1.03 | 0.411 | 0.103 | 6.09 KB |
#7075 | StartStopWithChild |
net6.0 | 10.9μs | 59.7ns | 358ns | 0 | 0 | 0 | 5.36 KB |
#7075 | StartStopWithChild |
netcoreapp3.1 | 13.6μs | 60.4ns | 234ns | 0 | 0 | 0 | 5.71 KB |
#7075 | StartStopWithChild |
net472 | 22.3μs | 112ns | 512ns | 0.994 | 0.331 | 0.11 | 6.05 KB |
Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Fewer allocations 🎉
Fewer allocations 🎉 in #7075
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.AgentWriterBenchmark.WriteAndFlushEnrichedTraces‑net472
3.33 KB
3.31 KB
-23 B
-0.69%
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.AgentWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 | 3.33 KB | 3.31 KB | -23 B | -0.69% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | WriteAndFlushEnrichedTraces |
net6.0 | 927μs | 26.6ns | 103ns | 0 | 0 | 0 | 2.71 KB |
master | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 1.04ms | 404ns | 1.56μs | 0 | 0 | 0 | 2.7 KB |
master | WriteAndFlushEnrichedTraces |
net472 | 1.25ms | 357ns | 1.38μs | 0 | 0 | 0 | 3.33 KB |
#7075 | WriteAndFlushEnrichedTraces |
net6.0 | 936μs | 86.9ns | 325ns | 0 | 0 | 0 | 2.71 KB |
#7075 | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 1.03ms | 228ns | 881ns | 0 | 0 | 0 | 2.7 KB |
#7075 | WriteAndFlushEnrichedTraces |
net472 | 1.24ms | 508ns | 1.9μs | 0 | 0 | 0 | 3.31 KB |
Benchmarks.Trace.Asm.AppSecBodyBenchmark - Same speed ✔️ More allocations ⚠️
More allocations ⚠️ in #7075
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleSimpleBody‑net472
236.35 KB
239.66 KB
3.3 KB
1.40%
Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleMoreComplexBody‑net472
239.87 KB
243.17 KB
3.3 KB
1.38%
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleSimpleBody‑net472 | 236.35 KB | 239.66 KB | 3.3 KB | 1.40% |
Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleMoreComplexBody‑net472 | 239.87 KB | 243.17 KB | 3.3 KB | 1.38% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | AllCycleSimpleBody |
net6.0 | 331μs | 1.76μs | 8.42μs | 0 | 0 | 0 | 197.06 KB |
master | AllCycleSimpleBody |
netcoreapp3.1 | 510μs | 1.45μs | 5.61μs | 0 | 0 | 0 | 204.77 KB |
master | AllCycleSimpleBody |
net472 | 436μs | 119ns | 460ns | 36.6 | 2.16 | 0 | 236.35 KB |
master | AllCycleMoreComplexBody |
net6.0 | 338μs | 1.76μs | 8.8μs | 0 | 0 | 0 | 200.56 KB |
master | AllCycleMoreComplexBody |
netcoreapp3.1 | 495μs | 987ns | 3.56μs | 0 | 0 | 0 | 208.18 KB |
master | AllCycleMoreComplexBody |
net472 | 446μs | 106ns | 412ns | 36.6 | 2.16 | 0 | 239.87 KB |
master | ObjectExtractorSimpleBody |
net6.0 | 311ns | 1.77ns | 12.3ns | 0 | 0 | 0 | 280 B |
master | ObjectExtractorSimpleBody |
netcoreapp3.1 | 409ns | 1.93ns | 8.2ns | 0 | 0 | 0 | 272 B |
master | ObjectExtractorSimpleBody |
net472 | 303ns | 0.175ns | 0.676ns | 0.0442 | 0 | 0 | 281 B |
master | ObjectExtractorMoreComplexBody |
net6.0 | 6.52μs | 29.5ns | 110ns | 0 | 0 | 0 | 3.78 KB |
master | ObjectExtractorMoreComplexBody |
netcoreapp3.1 | 7.76μs | 36.2ns | 140ns | 0 | 0 | 0 | 3.69 KB |
master | ObjectExtractorMoreComplexBody |
net472 | 6.66μs | 0.89ns | 3.33ns | 0.599 | 0 | 0 | 3.8 KB |
#7075 | AllCycleSimpleBody |
net6.0 | 331μs | 1.64μs | 7.15μs | 0 | 0 | 0 | 197.61 KB |
#7075 | AllCycleSimpleBody |
netcoreapp3.1 | 500μs | 1.79μs | 6.91μs | 0 | 0 | 0 | 205.37 KB |
#7075 | AllCycleSimpleBody |
net472 | 443μs | 136ns | 527ns | 36.6 | 2.16 | 0 | 239.66 KB |
#7075 | AllCycleMoreComplexBody |
net6.0 | 340μs | 625ns | 2.34μs | 0 | 0 | 0 | 201.12 KB |
#7075 | AllCycleMoreComplexBody |
netcoreapp3.1 | 512μs | 1.61μs | 6.03μs | 0 | 0 | 0 | 208.78 KB |
#7075 | AllCycleMoreComplexBody |
net472 | 453μs | 448ns | 1.74μs | 37.9 | 2.23 | 0 | 243.17 KB |
#7075 | ObjectExtractorSimpleBody |
net6.0 | 320ns | 1.64ns | 7.5ns | 0 | 0 | 0 | 280 B |
#7075 | ObjectExtractorSimpleBody |
netcoreapp3.1 | 400ns | 2.11ns | 10.1ns | 0 | 0 | 0 | 272 B |
#7075 | ObjectExtractorSimpleBody |
net472 | 304ns | 0.029ns | 0.101ns | 0.0445 | 0 | 0 | 281 B |
#7075 | ObjectExtractorMoreComplexBody |
net6.0 | 6.43μs | 30.5ns | 126ns | 0 | 0 | 0 | 3.78 KB |
#7075 | ObjectExtractorMoreComplexBody |
netcoreapp3.1 | 7.82μs | 6.29ns | 23.5ns | 0 | 0 | 0 | 3.69 KB |
#7075 | ObjectExtractorMoreComplexBody |
net472 | 6.88μs | 3.34ns | 12.9ns | 0.583 | 0 | 0 | 3.8 KB |
Benchmarks.Trace.Asm.AppSecEncoderBenchmark - Same speed ✔️ Fewer allocations 🎉
Fewer allocations 🎉 in #7075
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs‑net6.0
2.16 KB
2.15 KB
-11 B
-0.51%
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs‑net6.0 | 2.16 KB | 2.15 KB | -11 B | -0.51% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | EncodeArgs |
net6.0 | 73.3μs | 263ns | 984ns | 0 | 0 | 0 | 32.41 KB |
master | EncodeArgs |
netcoreapp3.1 | 95.7μs | 36.2ns | 130ns | 0 | 0 | 0 | 32.4 KB |
master | EncodeArgs |
net472 | 107μs | 17.6ns | 65.8ns | 4.82 | 0 | 0 | 32.51 KB |
master | EncodeLegacyArgs |
net6.0 | 143μs | 122ns | 472ns | 0 | 0 | 0 | 2.16 KB |
master | EncodeLegacyArgs |
netcoreapp3.1 | 197μs | 42.5ns | 147ns | 0 | 0 | 0 | 2.14 KB |
master | EncodeLegacyArgs |
net472 | 261μs | 66.8ns | 250ns | 0 | 0 | 0 | 2.16 KB |
#7075 | EncodeArgs |
net6.0 | 76.5μs | 199ns | 772ns | 0 | 0 | 0 | 32.4 KB |
#7075 | EncodeArgs |
netcoreapp3.1 | 98μs | 129ns | 501ns | 0 | 0 | 0 | 32.4 KB |
#7075 | EncodeArgs |
net472 | 110μs | 42.2ns | 152ns | 4.92 | 0 | 0 | 32.51 KB |
#7075 | EncodeLegacyArgs |
net6.0 | 145μs | 84.3ns | 326ns | 0 | 0 | 0 | 2.15 KB |
#7075 | EncodeLegacyArgs |
netcoreapp3.1 | 198μs | 128ns | 495ns | 0 | 0 | 0 | 2.14 KB |
#7075 | EncodeLegacyArgs |
net472 | 261μs | 30.4ns | 118ns | 0 | 0 | 0 | 2.15 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 | 271μs | 133ns | 499ns | 0 | 0 | 0 | 4.55 KB |
master | RunWafRealisticBenchmark |
netcoreapp3.1 | 294μs | 264ns | 989ns | 0 | 0 | 0 | 4.48 KB |
master | RunWafRealisticBenchmark |
net472 | 307μs | 38.1ns | 147ns | 0 | 0 | 0 | 4.66 KB |
master | RunWafRealisticBenchmarkWithAttack |
net6.0 | 181μs | 80.1ns | 300ns | 0 | 0 | 0 | 2.24 KB |
master | RunWafRealisticBenchmarkWithAttack |
netcoreapp3.1 | 198μs | 104ns | 404ns | 0 | 0 | 0 | 2.22 KB |
master | RunWafRealisticBenchmarkWithAttack |
net472 | 207μs | 45.3ns | 169ns | 0 | 0 | 0 | 2.28 KB |
#7075 | RunWafRealisticBenchmark |
net6.0 | 272μs | 78.8ns | 284ns | 0 | 0 | 0 | 4.55 KB |
#7075 | RunWafRealisticBenchmark |
netcoreapp3.1 | 288μs | 50.3ns | 188ns | 0 | 0 | 0 | 4.48 KB |
#7075 | RunWafRealisticBenchmark |
net472 | 307μs | 25.6ns | 99ns | 0 | 0 | 0 | 4.66 KB |
#7075 | RunWafRealisticBenchmarkWithAttack |
net6.0 | 181μs | 32.3ns | 117ns | 0 | 0 | 0 | 2.24 KB |
#7075 | RunWafRealisticBenchmarkWithAttack |
netcoreapp3.1 | 194μs | 72.3ns | 251ns | 0 | 0 | 0 | 2.22 KB |
#7075 | RunWafRealisticBenchmarkWithAttack |
net472 | 208μs | 37.3ns | 144ns | 0 | 0 | 0 | 2.29 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 | 61.1μs | 29ns | 104ns | 0 | 0 | 0 | 14.53 KB |
master | SendRequest |
netcoreapp3.1 | 69.9μs | 118ns | 440ns | 0 | 0 | 0 | 17.42 KB |
master | SendRequest |
net472 | 0.0171ns | 0.00147ns | 0.00551ns | 0 | 0 | 0 | 0 b |
#7075 | SendRequest |
net6.0 | 61μs | 31ns | 107ns | 0 | 0 | 0 | 14.52 KB |
#7075 | SendRequest |
netcoreapp3.1 | 70.6μs | 105ns | 365ns | 0 | 0 | 0 | 17.42 KB |
#7075 | SendRequest |
net472 | 0.00876ns | 0.00164ns | 0.00635ns | 0 | 0 | 0 | 0 b |
Benchmarks.Trace.CharSliceBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
#7075 | OriginalCharSlice |
net6.0 | 1.92ms | 5.72μs | 22.2μs | 0 | 0 | 0 | 640.01 KB |
#7075 | OriginalCharSlice |
netcoreapp3.1 | 2.13ms | 7.78μs | 28μs | 0 | 0 | 0 | 640 KB |
#7075 | OriginalCharSlice |
net472 | 2.69ms | 144ns | 559ns | 100 | 0 | 0 | 641.95 KB |
#7075 | OptimizedCharSlice |
net6.0 | 1.47ms | 105ns | 406ns | 0 | 0 | 0 | 7 B |
#7075 | OptimizedCharSlice |
netcoreapp3.1 | 1.74ms | 403ns | 1.56μs | 0 | 0 | 0 | 1 B |
#7075 | OptimizedCharSlice |
net472 | 2.01ms | 118ns | 459ns | 0 | 0 | 0 | 0 b |
#7075 | OptimizedCharSliceWithPool |
net6.0 | 857μs | 21.6ns | 80.8ns | 0 | 0 | 0 | 3 B |
#7075 | OptimizedCharSliceWithPool |
netcoreapp3.1 | 907μs | 37.4ns | 140ns | 0 | 0 | 0 | 0 b |
#7075 | OptimizedCharSliceWithPool |
net472 | 1.14ms | 31.5ns | 122ns | 0 | 0 | 0 | 0 b |
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ More allocations ⚠️
More allocations ⚠️ in #7075
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1
41.89 KB
42.16 KB
270 B
0.64%
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 | 41.89 KB | 42.16 KB | 270 B | 0.64% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | WriteAndFlushEnrichedTraces |
net6.0 | 645μs | 512ns | 1.98μs | 0 | 0 | 0 | 41.73 KB |
master | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 631μs | 1.67μs | 6.67μs | 0 | 0 | 0 | 41.89 KB |
master | WriteAndFlushEnrichedTraces |
net472 | 923μs | 1.93μs | 7.2μs | 4.46 | 0 | 0 | 55.75 KB |
#7075 | WriteAndFlushEnrichedTraces |
net6.0 | 709μs | 3.92μs | 24.2μs | 0 | 0 | 0 | 41.83 KB |
#7075 | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 665μs | 3.3μs | 15.1μs | 0 | 0 | 0 | 42.16 KB |
#7075 | WriteAndFlushEnrichedTraces |
net472 | 908μs | 3.53μs | 13.2μs | 4.46 | 0 | 0 | 55.89 KB |
Benchmarks.Trace.DbCommandBenchmark - Same speed ✔️ Fewer allocations 🎉
Fewer allocations 🎉 in #7075
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑net6.0
1.03 KB
1.02 KB
-8 B
-0.78%
Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑netcoreapp3.1
1.02 KB
1.02 KB
-8 B
-0.78%
Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑net472
995 B
987 B
-8 B
-0.80%
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑net6.0 | 1.03 KB | 1.02 KB | -8 B | -0.78% |
Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑netcoreapp3.1 | 1.02 KB | 1.02 KB | -8 B | -0.78% |
Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑net472 | 995 B | 987 B | -8 B | -0.80% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | ExecuteNonQuery |
net6.0 | 1.99μs | 10.2ns | 46.8ns | 0 | 0 | 0 | 1.03 KB |
master | ExecuteNonQuery |
netcoreapp3.1 | 2.53μs | 3.43ns | 13.3ns | 0 | 0 | 0 | 1.02 KB |
master | ExecuteNonQuery |
net472 | 2.7μs | 2.41ns | 9.34ns | 0.147 | 0.0134 | 0 | 995 B |
#7075 | ExecuteNonQuery |
net6.0 | 1.93μs | 1.83ns | 6.85ns | 0 | 0 | 0 | 1.02 KB |
#7075 | ExecuteNonQuery |
netcoreapp3.1 | 2.5μs | 1.67ns | 6.01ns | 0 | 0 | 0 | 1.02 KB |
#7075 | ExecuteNonQuery |
net472 | 2.89μs | 2.47ns | 9.55ns | 0.143 | 0.0143 | 0 | 987 B |
Benchmarks.Trace.ElasticsearchBenchmark - Same speed ✔️ Fewer allocations 🎉
Fewer allocations 🎉 in #7075
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync‑net472
1.11 KB
1.1 KB
-8 B
-0.72%
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync‑netcoreapp3.1
1.09 KB
1.08 KB
-8 B
-0.74%
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch‑net472
1.05 KB
1.04 KB
-8 B
-0.76%
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch‑net6.0
1.04 KB
1.03 KB
-8 B
-0.77%
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch‑netcoreapp3.1
1.04 KB
1.03 KB
-8 B
-0.77%
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync‑net6.0
1.02 KB
1.01 KB
-8 B
-0.79%
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync‑net472 | 1.11 KB | 1.1 KB | -8 B | -0.72% |
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync‑netcoreapp3.1 | 1.09 KB | 1.08 KB | -8 B | -0.74% |
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch‑net472 | 1.05 KB | 1.04 KB | -8 B | -0.76% |
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch‑net6.0 | 1.04 KB | 1.03 KB | -8 B | -0.77% |
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch‑netcoreapp3.1 | 1.04 KB | 1.03 KB | -8 B | -0.77% |
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync‑net6.0 | 1.02 KB | 1.01 KB | -8 B | -0.79% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | CallElasticsearch |
net6.0 | 1.83μs | 5.85ns | 22.7ns | 0 | 0 | 0 | 1.04 KB |
master | CallElasticsearch |
netcoreapp3.1 | 2.3μs | 11.8ns | 56.6ns | 0 | 0 | 0 | 1.04 KB |
master | CallElasticsearch |
net472 | 3.55μs | 3.05ns | 11.8ns | 0.159 | 0 | 0 | 1.05 KB |
master | CallElasticsearchAsync |
net6.0 | 1.81μs | 3.89ns | 14.5ns | 0 | 0 | 0 | 1.02 KB |
master | CallElasticsearchAsync |
netcoreapp3.1 | 2.35μs | 7.26ns | 28.1ns | 0 | 0 | 0 | 1.09 KB |
master | CallElasticsearchAsync |
net472 | 3.84μs | 3.19ns | 12.4ns | 0.169 | 0 | 0 | 1.11 KB |
#7075 | CallElasticsearch |
net6.0 | 1.81μs | 8.75ns | 36.1ns | 0 | 0 | 0 | 1.03 KB |
#7075 | CallElasticsearch |
netcoreapp3.1 | 2.28μs | 10.1ns | 39.1ns | 0 | 0 | 0 | 1.03 KB |
#7075 | CallElasticsearch |
net472 | 3.63μs | 4.17ns | 16.2ns | 0.162 | 0 | 0 | 1.04 KB |
#7075 | CallElasticsearchAsync |
net6.0 | 1.87μs | 6.76ns | 26.2ns | 0 | 0 | 0 | 1.01 KB |
#7075 | CallElasticsearchAsync |
netcoreapp3.1 | 2.47μs | 11.3ns | 43.9ns | 0 | 0 | 0 | 1.08 KB |
#7075 | CallElasticsearchAsync |
net472 | 3.71μs | 3.21ns | 12.4ns | 0.168 | 0 | 0 | 1.1 KB |
Benchmarks.Trace.GraphQLBenchmark - Same speed ✔️ Fewer allocations 🎉
Fewer allocations 🎉 in #7075
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.GraphQLBenchmark.ExecuteAsync‑net6.0
960 B
952 B
-8 B
-0.83%
Benchmarks.Trace.GraphQLBenchmark.ExecuteAsync‑netcoreapp3.1
960 B
952 B
-8 B
-0.83%
Benchmarks.Trace.GraphQLBenchmark.ExecuteAsync‑net472
923 B
915 B
-8 B
-0.87%
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.GraphQLBenchmark.ExecuteAsync‑net6.0 | 960 B | 952 B | -8 B | -0.83% |
Benchmarks.Trace.GraphQLBenchmark.ExecuteAsync‑netcoreapp3.1 | 960 B | 952 B | -8 B | -0.83% |
Benchmarks.Trace.GraphQLBenchmark.ExecuteAsync‑net472 | 923 B | 915 B | -8 B | -0.87% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | ExecuteAsync |
net6.0 | 1.78μs | 9.27ns | 43.5ns | 0 | 0 | 0 | 960 B |
master | ExecuteAsync |
netcoreapp3.1 | 2.29μs | 7.45ns | 25.8ns | 0 | 0 | 0 | 960 B |
master | ExecuteAsync |
net472 | 2.58μs | 1.78ns | 6.88ns | 0.143 | 0 | 0 | 923 B |
#7075 | ExecuteAsync |
net6.0 | 1.76μs | 0.327ns | 1.18ns | 0 | 0 | 0 | 952 B |
#7075 | ExecuteAsync |
netcoreapp3.1 | 2.38μs | 10.3ns | 35.8ns | 0 | 0 | 0 | 952 B |
#7075 | ExecuteAsync |
net472 | 2.61μs | 1.61ns | 6.02ns | 0.145 | 0 | 0 | 915 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 | 7.1μs | 10.4ns | 39ns | 0 | 0 | 0 | 2.37 KB |
master | SendAsync |
netcoreapp3.1 | 8.69μs | 14.1ns | 54.6ns | 0 | 0 | 0 | 2.9 KB |
master | SendAsync |
net472 | 12.5μs | 10.3ns | 38.5ns | 0.498 | 0 | 0 | 3.19 KB |
#7075 | SendAsync |
net6.0 | 6.99μs | 6.47ns | 24.2ns | 0 | 0 | 0 | 2.36 KB |
#7075 | SendAsync |
netcoreapp3.1 | 8.76μs | 10.8ns | 41.9ns | 0 | 0 | 0 | 2.9 KB |
#7075 | SendAsync |
net472 | 12.4μs | 9.21ns | 35.7ns | 0.498 | 0 | 0 | 3.18 KB |
Benchmarks.Trace.Iast.StringAspectsBenchmark - Slower ⚠️ More allocations ⚠️
Slower ⚠️ in #7075
Benchmark
diff/base
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1
1.267
413,700.00
524,000.00
More allocations ⚠️ in #7075
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0
259.96 KB
276.08 KB
16.12 KB
6.20%
Fewer allocations 🎉 in #7075
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net472
286.72 KB
281.5 KB
-5.22 KB
-1.82%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1
274.93 KB
256.25 KB
-18.68 KB
-6.79%
Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 | 1.267 | 413,700.00 | 524,000.00 |
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 | 259.96 KB | 276.08 KB | 16.12 KB | 6.20% |
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net472 | 286.72 KB | 281.5 KB | -5.22 KB | -1.82% |
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 | 274.93 KB | 256.25 KB | -18.68 KB | -6.79% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | StringConcatBenchmark |
net6.0 | 44.6μs | 212ns | 1.6μs | 0 | 0 | 0 | 43.83 KB |
master | StringConcatBenchmark |
netcoreapp3.1 | 47.2μs | 224ns | 838ns | 0 | 0 | 0 | 42.64 KB |
master | StringConcatBenchmark |
net472 | 56.8μs | 259ns | 968ns | 0 | 0 | 0 | 57.34 KB |
master | StringConcatAspectBenchmark |
net6.0 | 458μs | 1.08μs | 3.89μs | 0 | 0 | 0 | 259.96 KB |
master | StringConcatAspectBenchmark |
netcoreapp3.1 | 447μs | 6.44μs | 63.7μs | 0 | 0 | 0 | 274.93 KB |
master | StringConcatAspectBenchmark |
net472 | 410μs | 2.07μs | 9.27μs | 0 | 0 | 0 | 286.72 KB |
#7075 | StringConcatBenchmark |
net6.0 | 44.8μs | 249ns | 1.51μs | 0 | 0 | 0 | 43.86 KB |
#7075 | StringConcatBenchmark |
netcoreapp3.1 | 49.5μs | 266ns | 1.81μs | 0 | 0 | 0 | 42.73 KB |
#7075 | StringConcatBenchmark |
net472 | 57.5μs | 159ns | 594ns | 0 | 0 | 0 | 57.34 KB |
#7075 | StringConcatAspectBenchmark |
net6.0 | 488μs | 2.19μs | 9.28μs | 0 | 0 | 0 | 276.08 KB |
#7075 | StringConcatAspectBenchmark |
netcoreapp3.1 | 525μs | 2.36μs | 8.83μs | 0 | 0 | 0 | 256.25 KB |
#7075 | StringConcatAspectBenchmark |
net472 | 412μs | 2.31μs | 15.5μs | 0 | 0 | 0 | 281.5 KB |
Benchmarks.Trace.ILoggerBenchmark - Same speed ✔️ Fewer allocations 🎉
Fewer allocations 🎉 in #7075
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.ILoggerBenchmark.EnrichedLog‑net6.0
1.76 KB
1.7 KB
-56 B
-3.18%
Benchmarks.Trace.ILoggerBenchmark.EnrichedLog‑netcoreapp3.1
1.76 KB
1.7 KB
-56 B
-3.18%
Benchmarks.Trace.ILoggerBenchmark.EnrichedLog‑net472
1.69 KB
1.64 KB
-56 B
-3.31%
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.ILoggerBenchmark.EnrichedLog‑net6.0 | 1.76 KB | 1.7 KB | -56 B | -3.18% |
Benchmarks.Trace.ILoggerBenchmark.EnrichedLog‑netcoreapp3.1 | 1.76 KB | 1.7 KB | -56 B | -3.18% |
Benchmarks.Trace.ILoggerBenchmark.EnrichedLog‑net472 | 1.69 KB | 1.64 KB | -56 B | -3.31% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | EnrichedLog |
net6.0 | 2.63μs | 2.6ns | 10.1ns | 0 | 0 | 0 | 1.76 KB |
master | EnrichedLog |
netcoreapp3.1 | 3.44μs | 4.38ns | 17ns | 0 | 0 | 0 | 1.76 KB |
master | EnrichedLog |
net472 | 4.05μs | 4.83ns | 18.7ns | 0.265 | 0 | 0 | 1.69 KB |
#7075 | EnrichedLog |
net6.0 | 2.62μs | 12.5ns | 48.6ns | 0 | 0 | 0 | 1.7 KB |
#7075 | EnrichedLog |
netcoreapp3.1 | 3.52μs | 13.9ns | 53.9ns | 0 | 0 | 0 | 1.7 KB |
#7075 | EnrichedLog |
net472 | 4.01μs | 4.44ns | 17.2ns | 0.258 | 0 | 0 | 1.64 KB |
Benchmarks.Trace.Log4netBenchmark - Same speed ✔️ Fewer allocations 🎉
Fewer allocations 🎉 in #7075
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.Log4netBenchmark.EnrichedLog‑net6.0
4.37 KB
4.31 KB
-56 B
-1.28%
Benchmarks.Trace.Log4netBenchmark.EnrichedLog‑netcoreapp3.1
4.37 KB
4.31 KB
-56 B
-1.28%
Benchmarks.Trace.Log4netBenchmark.EnrichedLog‑net472
4.57 KB
4.51 KB
-60 B
-1.31%
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.Log4netBenchmark.EnrichedLog‑net6.0 | 4.37 KB | 4.31 KB | -56 B | -1.28% |
Benchmarks.Trace.Log4netBenchmark.EnrichedLog‑netcoreapp3.1 | 4.37 KB | 4.31 KB | -56 B | -1.28% |
Benchmarks.Trace.Log4netBenchmark.EnrichedLog‑net472 | 4.57 KB | 4.51 KB | -60 B | -1.31% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | EnrichedLog |
net6.0 | 123μs | 145ns | 563ns | 0 | 0 | 0 | 4.37 KB |
master | EnrichedLog |
netcoreapp3.1 | 126μs | 330ns | 1.24μs | 0 | 0 | 0 | 4.37 KB |
master | EnrichedLog |
net472 | 167μs | 161ns | 603ns | 0 | 0 | 0 | 4.57 KB |
#7075 | EnrichedLog |
net6.0 | 122μs | 74ns | 277ns | 0 | 0 | 0 | 4.31 KB |
#7075 | EnrichedLog |
netcoreapp3.1 | 126μs | 130ns | 488ns | 0 | 0 | 0 | 4.31 KB |
#7075 | EnrichedLog |
net472 | 167μs | 167ns | 578ns | 0 | 0 | 0 | 4.51 KB |
Benchmarks.Trace.NLogBenchmark - Same speed ✔️ Fewer allocations 🎉
Fewer allocations 🎉 in #7075
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.NLogBenchmark.EnrichedLog‑net6.0
2.32 KB
2.26 KB
-56 B
-2.41%
Benchmarks.Trace.NLogBenchmark.EnrichedLog‑netcoreapp3.1
2.32 KB
2.26 KB
-56 B
-2.41%
Benchmarks.Trace.NLogBenchmark.EnrichedLog‑net472
2.14 KB
2.08 KB
-56 B
-2.62%
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.NLogBenchmark.EnrichedLog‑net6.0 | 2.32 KB | 2.26 KB | -56 B | -2.41% |
Benchmarks.Trace.NLogBenchmark.EnrichedLog‑netcoreapp3.1 | 2.32 KB | 2.26 KB | -56 B | -2.41% |
Benchmarks.Trace.NLogBenchmark.EnrichedLog‑net472 | 2.14 KB | 2.08 KB | -56 B | -2.62% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | EnrichedLog |
net6.0 | 4.94μs | 19.3ns | 74.6ns | 0 | 0 | 0 | 2.32 KB |
master | EnrichedLog |
netcoreapp3.1 | 6.77μs | 22.2ns | 79.9ns | 0 | 0 | 0 | 2.32 KB |
master | EnrichedLog |
net472 | 7.45μs | 8.04ns | 31.1ns | 0.335 | 0 | 0 | 2.14 KB |
#7075 | EnrichedLog |
net6.0 | 5.06μs | 13.6ns | 52.8ns | 0 | 0 | 0 | 2.26 KB |
#7075 | EnrichedLog |
netcoreapp3.1 | 6.86μs | 13.8ns | 53.6ns | 0 | 0 | 0 | 2.26 KB |
#7075 | EnrichedLog |
net472 | 7.45μs | 6.69ns | 25.9ns | 0.3 | 0 | 0 | 2.08 KB |
Benchmarks.Trace.RedisBenchmark - Same speed ✔️ Fewer allocations 🎉
Fewer allocations 🎉 in #7075
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.RedisBenchmark.SendReceive‑net472
1.21 KB
1.2 KB
-8 B
-0.66%
Benchmarks.Trace.RedisBenchmark.SendReceive‑net6.0
1.21 KB
1.2 KB
-8 B
-0.66%
Benchmarks.Trace.RedisBenchmark.SendReceive‑netcoreapp3.1
1.21 KB
1.2 KB
-8 B
-0.66%
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.RedisBenchmark.SendReceive‑net472 | 1.21 KB | 1.2 KB | -8 B | -0.66% |
Benchmarks.Trace.RedisBenchmark.SendReceive‑net6.0 | 1.21 KB | 1.2 KB | -8 B | -0.66% |
Benchmarks.Trace.RedisBenchmark.SendReceive‑netcoreapp3.1 | 1.21 KB | 1.2 KB | -8 B | -0.66% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | SendReceive |
net6.0 | 2.04μs | 10.5ns | 49.4ns | 0 | 0 | 0 | 1.21 KB |
master | SendReceive |
netcoreapp3.1 | 2.53μs | 11.8ns | 47.4ns | 0 | 0 | 0 | 1.21 KB |
master | SendReceive |
net472 | 3.28μs | 2.71ns | 10.5ns | 0.178 | 0 | 0 | 1.21 KB |
#7075 | SendReceive |
net6.0 | 2.07μs | 2.68ns | 10.4ns | 0 | 0 | 0 | 1.2 KB |
#7075 | SendReceive |
netcoreapp3.1 | 2.61μs | 9.76ns | 37.8ns | 0 | 0 | 0 | 1.2 KB |
#7075 | SendReceive |
net472 | 3.23μs | 1.96ns | 7.59ns | 0.176 | 0 | 0 | 1.2 KB |
Benchmarks.Trace.SerilogBenchmark - Same speed ✔️ Fewer allocations 🎉
Fewer allocations 🎉 in #7075
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.SerilogBenchmark.EnrichedLog‑net472
2.08 KB
2.03 KB
-56 B
-2.69%
Benchmarks.Trace.SerilogBenchmark.EnrichedLog‑netcoreapp3.1
1.69 KB
1.63 KB
-56 B
-3.32%
Benchmarks.Trace.SerilogBenchmark.EnrichedLog‑net6.0
1.64 KB
1.58 KB
-56 B
-3.41%
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.SerilogBenchmark.EnrichedLog‑net472 | 2.08 KB | 2.03 KB | -56 B | -2.69% |
Benchmarks.Trace.SerilogBenchmark.EnrichedLog‑netcoreapp3.1 | 1.69 KB | 1.63 KB | -56 B | -3.32% |
Benchmarks.Trace.SerilogBenchmark.EnrichedLog‑net6.0 | 1.64 KB | 1.58 KB | -56 B | -3.41% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | EnrichedLog |
net6.0 | 4.18μs | 0.92ns | 3.44ns | 0 | 0 | 0 | 1.64 KB |
master | EnrichedLog |
netcoreapp3.1 | 5.64μs | 23ns | 89.3ns | 0 | 0 | 0 | 1.69 KB |
master | EnrichedLog |
net472 | 6.67μs | 7.28ns | 27.3ns | 0.298 | 0 | 0 | 2.08 KB |
#7075 | EnrichedLog |
net6.0 | 4.21μs | 1.98ns | 6.87ns | 0 | 0 | 0 | 1.58 KB |
#7075 | EnrichedLog |
netcoreapp3.1 | 5.58μs | 12.3ns | 46.1ns | 0 | 0 | 0 | 1.63 KB |
#7075 | EnrichedLog |
net472 | 6.64μs | 7.89ns | 30.5ns | 0.299 | 0 | 0 | 2.03 KB |
Benchmarks.Trace.SpanBenchmark - Same speed ✔️ Fewer allocations 🎉
Fewer allocations 🎉 in #7075
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net6.0
704 B
696 B
-8 B
-1.14%
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑netcoreapp3.1
704 B
696 B
-8 B
-1.14%
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net472
666 B
658 B
-8 B
-1.20%
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net472
586 B
578 B
-8 B
-1.37%
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net6.0
584 B
576 B
-8 B
-1.37%
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑netcoreapp3.1
584 B
576 B
-8 B
-1.37%
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net6.0 | 704 B | 696 B | -8 B | -1.14% |
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑netcoreapp3.1 | 704 B | 696 B | -8 B | -1.14% |
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net472 | 666 B | 658 B | -8 B | -1.20% |
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net472 | 586 B | 578 B | -8 B | -1.37% |
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net6.0 | 584 B | 576 B | -8 B | -1.37% |
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑netcoreapp3.1 | 584 B | 576 B | -8 B | -1.37% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | StartFinishSpan |
net6.0 | 751ns | 3.97ns | 22.4ns | 0 | 0 | 0 | 584 B |
master | StartFinishSpan |
netcoreapp3.1 | 953ns | 4.42ns | 17.7ns | 0 | 0 | 0 | 584 B |
master | StartFinishSpan |
net472 | 914ns | 0.809ns | 3.13ns | 0.0912 | 0 | 0 | 586 B |
master | StartFinishScope |
net6.0 | 918ns | 0.479ns | 1.73ns | 0 | 0 | 0 | 704 B |
master | StartFinishScope |
netcoreapp3.1 | 1.15μs | 6.24ns | 34.2ns | 0 | 0 | 0 | 704 B |
master | StartFinishScope |
net472 | 1.09μs | 0.174ns | 0.652ns | 0.104 | 0 | 0 | 666 B |
#7075 | StartFinishSpan |
net6.0 | 761ns | 3.75ns | 15.9ns | 0 | 0 | 0 | 576 B |
#7075 | StartFinishSpan |
netcoreapp3.1 | 965ns | 0.375ns | 1.35ns | 0 | 0 | 0 | 576 B |
#7075 | StartFinishSpan |
net472 | 925ns | 0.41ns | 1.53ns | 0.0882 | 0 | 0 | 578 B |
#7075 | StartFinishScope |
net6.0 | 903ns | 4.72ns | 23.6ns | 0 | 0 | 0 | 696 B |
#7075 | StartFinishScope |
netcoreapp3.1 | 1.21μs | 4.07ns | 15.2ns | 0 | 0 | 0 | 696 B |
#7075 | StartFinishScope |
net472 | 1.12μs | 0.459ns | 1.78ns | 0.101 | 0 | 0 | 658 B |
Benchmarks.Trace.TraceAnnotationsBenchmark - Same speed ✔️ Fewer allocations 🎉
Fewer allocations 🎉 in #7075
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑net6.0
704 B
696 B
-8 B
-1.14%
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑netcoreapp3.1
704 B
696 B
-8 B
-1.14%
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑net472
666 B
658 B
-8 B
-1.20%
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑net6.0 | 704 B | 696 B | -8 B | -1.14% |
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑netcoreapp3.1 | 704 B | 696 B | -8 B | -1.14% |
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑net472 | 666 B | 658 B | -8 B | -1.20% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | RunOnMethodBegin |
net6.0 | 1.02μs | 5.36ns | 26.8ns | 0 | 0 | 0 | 704 B |
master | RunOnMethodBegin |
netcoreapp3.1 | 1.38μs | 2.28ns | 8.82ns | 0 | 0 | 0 | 704 B |
master | RunOnMethodBegin |
net472 | 1.36μs | 0.141ns | 0.544ns | 0.102 | 0 | 0 | 666 B |
#7075 | RunOnMethodBegin |
net6.0 | 1.02μs | 4.36ns | 16.9ns | 0 | 0 | 0 | 696 B |
#7075 | RunOnMethodBegin |
netcoreapp3.1 | 1.38μs | 6.99ns | 32ns | 0 | 0 | 0 | 696 B |
#7075 | RunOnMethodBegin |
net472 | 1.4μs | 1.34ns | 5.18ns | 0.0981 | 0 | 0 | 658 B |
/// <summary> | ||
/// Represents a configuration for a standard output/error logger. | ||
/// </summary> | ||
[StructLayout(LayoutKind.Sequential)] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could/should we move this to a Logging
sub-folder in the LibDatadog
folder? It's already getting a bit confusing with the number of supporting types we have, would be nice to keep things a bit more organized IMO
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in my head, my plan is to create a dir structure as following
- Libdatadog
- Common
- DataPipeline
- Logger
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good, not a blocker tho
Also, just realised we should add some additional assertions to the data pipeline integration tests, to make sure the logging is working as expected |
e817c37
to
011895f
Compare
e310b02
to
3388f68
Compare
## Summary of changes - Simplify the copying of libdatadog for tests - Minor changes to the serilog logger to allow subsequent usage by libdatadog ## Reason for change Prerequistes for #7075 ## Implementation details - Copy the libdatadog file to all the test output directories (maintaining a seperate list of projects to copy is redundant, and ever-increasing. - Expose `FileLoggingConfiguration` on `DatadogSerilogLogger` (we already exposed _one_ of the properties, may as well expose it all ## Test coverage If it builds, we're good ## Other details Required for - #7075 - #7084
a120b38
to
a89663d
Compare
869fd54
to
c751713
Compare
## Summary of changes Address my comments in #7075 ## Reason for change ## Implementation details ## Test coverage ## Other details <!-- Fixes #{issue} --> <!--⚠️ 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. -->
## Summary of changes Bump libdatadog from 19.0.0 to 19.0.1 ## Reason for change 19.0.0 was missing the logging FFI for Windows. Fixed in DataDog/libdatadog#1117 ## Implementation details Bump the libdatadog version ## Test coverage Will rebase #7075 and confirm it works ## Other details Libdatadog release details: - https://github.com/DataDog/libdatadog/releases/tag/v19.0.1
## Summary of changes Address my comments in #7075 ## Reason for change ## Implementation details ## Test coverage ## Other details <!-- Fixes #{issue} --> <!--⚠️ 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. -->
2f67087
to
8c0d23a
Compare
… for enhanced log file management
## Summary of changes Address my comments in #7075 ## Reason for change ## Implementation details ## Test coverage ## Other details <!-- Fixes #{issue} --> <!--⚠️ 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. -->
8c0d23a
to
4ddd083
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
## Summary of changes Bump libdatadog from 19.0.0 to 19.0.1 ## Reason for change 19.0.0 was missing the logging FFI for Windows. Fixed in DataDog/libdatadog#1117 ## Implementation details Bump the libdatadog version ## Test coverage Will rebase #7075 and confirm it works ## Other details Libdatadog release details: - https://github.com/DataDog/libdatadog/releases/tag/v19.0.1
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just some minor comments
NativeInterop.Exporter.FreeError(handle); | ||
} | ||
catch (Exception ex) | ||
if (!IsInvalid) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this !
be flipped?
if (!IsInvalid) | |
if (IsInvalid) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh wait, maybe this is saying "if the handle is valid we can then get the exception"
Wording here is a bit confusing IMO so maybe it'd be better off checking if the handle != IntPtr.Zero
to avoid a double negative
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah it looks like that is the case, I think using !IsInvalid
is harder to read
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I 100% completely agree, this completely confused me before too - I basically wrote the same series of comments on the original PR 😂
However, SafeHandle
is a Microsoft type, and IsInvalid
is the property you have to override 🙈 So our hands are somewhat tied :sigh:
SetHandle(handle); | ||
} | ||
|
||
public override bool IsInvalid => handle == IntPtr.Zero; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just commenting here also that going with a IsValid
check instead of IsInvalid
would read better if we are then going to use !IsInvalid
in places.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
shakes fist at Microsoft's SafeHandle
Co-authored-by: Steven Bouwkamp <[email protected]>
## Summary of changes - Simplify the copying of libdatadog for tests - Minor changes to the serilog logger to allow subsequent usage by libdatadog ## Reason for change Prerequistes for #7075 ## Implementation details - Copy the libdatadog file to all the test output directories (maintaining a seperate list of projects to copy is redundant, and ever-increasing. - Expose `FileLoggingConfiguration` on `DatadogSerilogLogger` (we already exposed _one_ of the properties, may as well expose it all ## Test coverage If it builds, we're good ## Other details Required for - #7075 - #7084
## Summary of changes Bump libdatadog from 19.0.0 to 19.0.1 ## Reason for change 19.0.0 was missing the logging FFI for Windows. Fixed in DataDog/libdatadog#1117 ## Implementation details Bump the libdatadog version ## Test coverage Will rebase #7075 and confirm it works ## Other details Libdatadog release details: - https://github.com/DataDog/libdatadog/releases/tag/v19.0.1
## Summary of changes Fixes https://datadoghq.atlassian.net/browse/APMSP-1835 This PR adds enabling the file based logging for libdatadog, ie we start to write the logs to the configured file as it happens. ## Reason for change This is missing feature in the native exporter and must have for troubleshooting. ## Implementation details This PR DataDog/libdatadog#1018 does the bulk of the logging setup. In this, we are only calling the exposed APIs. ## Test coverage Since all the coverage is done in libdatadog there nothing to test in CI, however I verified manually that log file is created and written. ## Other details <!-- Fixes #{issue} --> We will need DataDog/libdatadog#1088 for fully support the file based logging practices. Also, we will need a release of libdatadog to pass the CI. <!--⚠️ 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. --> --------- Co-authored-by: Andrew Lock <[email protected]> Co-authored-by: Steven Bouwkamp <[email protected]>
Summary of changes
Fixes https://datadoghq.atlassian.net/browse/APMSP-1835
This PR adds enabling the file based logging for libdatadog, ie we start to write the logs to the configured file as it happens.
Reason for change
This is missing feature in the native exporter and must have for troubleshooting.
Implementation details
This PR DataDog/libdatadog#1018 does the bulk of the logging setup. In this, we are only calling the exposed APIs.
Test coverage
Since all the coverage is done in libdatadog there nothing to test in CI, however I verified manually that log file is created and written.
Other details
We will need DataDog/libdatadog#1088 for fully support the file based logging practices.
Also, we will need a release of libdatadog to pass the CI.