-
Notifications
You must be signed in to change notification settings - Fork 147
Update test projects and samples to target .NET Framework 4.8 #6922
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
tracer/test/test-applications/security/aspnet/Samples.Security.AspNetMvc5/Web.config
Dismissed
Show dismissed
Hide dismissed
tracer/test/test-applications/security/aspnet/Samples.Security.WebApi/Web.config
Dismissed
Show dismissed
Hide dismissed
tracer/test/test-applications/security/aspnet/Samples.Security.WebForms/Web.config
Dismissed
Show dismissed
Hide dismissed
Benchmarks Report for appsec 🐌Benchmarks for #6922 compared to master:
The following thresholds were used for comparing the benchmark speeds:
Allocation changes below 0.5% are ignored. Benchmark detailsBenchmarks.Trace.Asm.AppSecBodyBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.Asm.AppSecEncoderBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.Asm.AppSecWafBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed ✔️ More allocations
|
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 | 255.32 KB | 260.58 KB | 5.26 KB | 2.06% |
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net472 | 62.2 KB | 61 KB | -1.2 KB | -1.93% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | StringConcatBenchmark |
net6.0 | 60.7μs | 798ns | 7.9μs | 0 | 0 | 0 | 43.44 KB |
master | StringConcatBenchmark |
netcoreapp3.1 | 62.8μs | 940ns | 9.26μs | 0 | 0 | 0 | 42.64 KB |
master | StringConcatBenchmark |
net472 | 36.9μs | 74.2ns | 268ns | 0 | 0 | 0 | 62.2 KB |
master | StringConcatAspectBenchmark |
net6.0 | 315μs | 1.58μs | 11.9μs | 0 | 0 | 0 | 255.32 KB |
master | StringConcatAspectBenchmark |
netcoreapp3.1 | 340μs | 1.82μs | 10.8μs | 0 | 0 | 0 | 253.7 KB |
master | StringConcatAspectBenchmark |
net472 | 295μs | 6.27μs | 61.4μs | 0 | 0 | 0 | 278.53 KB |
#6922 | StringConcatBenchmark |
net6.0 | 61.6μs | 834ns | 8.26μs | 0 | 0 | 0 | 43.44 KB |
#6922 | StringConcatBenchmark |
netcoreapp3.1 | 62.2μs | 958ns | 9.43μs | 0 | 0 | 0 | 42.64 KB |
#6922 | StringConcatBenchmark |
net472 | 37μs | 160ns | 600ns | 0 | 0 | 0 | 61 KB |
#6922 | StringConcatAspectBenchmark |
net6.0 | 309μs | 6.82μs | 66.5μs | 0 | 0 | 0 | 260.58 KB |
#6922 | StringConcatAspectBenchmark |
netcoreapp3.1 | 348μs | 1.99μs | 14.5μs | 0 | 0 | 0 | 252.97 KB |
#6922 | StringConcatAspectBenchmark |
net472 | 292μs | 5.81μs | 55.4μs | 0 | 0 | 0 | 278.53 KB |
Benchmarks Report for tracer 🐌Benchmarks for #6922 compared to master:
The following thresholds were used for comparing the benchmark speeds:
Allocation changes below 0.5% are ignored. Benchmark detailsBenchmarks.Trace.ActivityBenchmark - Slower
|
Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 | 1.163 | 14,999.30 | 17,448.16 |
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 | 6.13 KB | 6.17 KB | 40 B | 0.65% |
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑netcoreapp3.1 | 5.71 KB | 5.74 KB | 35 B | 0.61% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | StartStopWithChild |
net6.0 | 7.81μs | 118ns | 1.18μs | 0 | 0 | 0 | 5.57 KB |
master | StartStopWithChild |
netcoreapp3.1 | 10.4μs | 100ns | 970ns | 0 | 0 | 0 | 5.71 KB |
master | StartStopWithChild |
net472 | 15.1μs | 85.3ns | 597ns | 0.965 | 0.322 | 0 | 6.13 KB |
#6922 | StartStopWithChild |
net6.0 | 7.08μs | 19.6ns | 67.8ns | 0 | 0 | 0 | 5.57 KB |
#6922 | StartStopWithChild |
netcoreapp3.1 | 9.44μs | 49.9ns | 278ns | 0 | 0 | 0 | 5.74 KB |
#6922 | StartStopWithChild |
net472 | 17.4μs | 98ns | 672ns | 0.951 | 0.238 | 0 | 6.17 KB |
Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Fewer allocations 🎉
Fewer allocations 🎉 in #6922
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.AgentWriterBenchmark.WriteAndFlushEnrichedTraces‑net472
3.35 KB
3.31 KB
-34 B
-1.02%
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.AgentWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 | 3.35 KB | 3.31 KB | -34 B | -1.02% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | WriteAndFlushEnrichedTraces |
net6.0 | 513μs | 502ns | 1.81μs | 0 | 0 | 0 | 2.7 KB |
master | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 655μs | 937ns | 3.51μs | 0 | 0 | 0 | 2.7 KB |
master | WriteAndFlushEnrichedTraces |
net472 | 849μs | 651ns | 2.44μs | 0 | 0 | 0 | 3.35 KB |
#6922 | WriteAndFlushEnrichedTraces |
net6.0 | 503μs | 1.19μs | 4.6μs | 0 | 0 | 0 | 2.7 KB |
#6922 | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 662μs | 1.33μs | 5.17μs | 0 | 0 | 0 | 2.7 KB |
#6922 | WriteAndFlushEnrichedTraces |
net472 | 855μs | 404ns | 1.56μs | 0 | 0 | 0 | 3.31 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 | 136μs | 746ns | 4.35μs | 0 | 0 | 0 | 14.48 KB |
master | SendRequest |
netcoreapp3.1 | 143μs | 783ns | 4.64μs | 0 | 0 | 0 | 17.28 KB |
master | SendRequest |
net472 | 0.00219ns | 0.000947ns | 0.00367ns | 0 | 0 | 0 | 0 b |
#6922 | SendRequest |
net6.0 | 131μs | 769ns | 7.01μs | 0 | 0 | 0 | 14.48 KB |
#6922 | SendRequest |
netcoreapp3.1 | 151μs | 456ns | 1.77μs | 0 | 0 | 0 | 17.28 KB |
#6922 | SendRequest |
net472 | 0.00132ns | 0.00056ns | 0.00217ns | 0 | 0 | 0 | 0 b |
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ More allocations ⚠️
More allocations ⚠️ in #6922
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1
41.61 KB
41.87 KB
260 B
0.62%
Fewer allocations 🎉 in #6922
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0
42.52 KB
41.62 KB
-900 B
-2.12%
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 | 41.61 KB | 41.87 KB | 260 B | 0.62% |
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0 | 42.52 KB | 41.62 KB | -900 B | -2.12% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | WriteAndFlushEnrichedTraces |
net6.0 | 596μs | 5.12μs | 49.9μs | 0 | 0 | 0 | 42.52 KB |
master | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 689μs | 5.32μs | 52.1μs | 0 | 0 | 0 | 41.61 KB |
master | WriteAndFlushEnrichedTraces |
net472 | 891μs | 5.18μs | 44μs | 8.33 | 4.17 | 0 | 53.42 KB |
#6922 | WriteAndFlushEnrichedTraces |
net6.0 | 631μs | 8.86μs | 88.1μs | 0 | 0 | 0 | 41.62 KB |
#6922 | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 658μs | 3.24μs | 18.3μs | 0 | 0 | 0 | 41.87 KB |
#6922 | WriteAndFlushEnrichedTraces |
net472 | 864μs | 5.01μs | 44.8μs | 7.81 | 0 | 0 | 53.38 KB |
Benchmarks.Trace.DbCommandBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | ExecuteNonQuery |
net6.0 | 1.24μs | 4.21ns | 16.3ns | 0.0123 | 0 | 0 | 1.03 KB |
master | ExecuteNonQuery |
netcoreapp3.1 | 1.82μs | 5.75ns | 22.3ns | 0.00895 | 0 | 0 | 1.02 KB |
master | ExecuteNonQuery |
net472 | 2.2μs | 5.91ns | 21.3ns | 0.152 | 0.0109 | 0 | 995 B |
#6922 | ExecuteNonQuery |
net6.0 | 1.33μs | 4.28ns | 16ns | 0.0131 | 0 | 0 | 1.03 KB |
#6922 | ExecuteNonQuery |
netcoreapp3.1 | 1.72μs | 4.8ns | 17.9ns | 0.00886 | 0 | 0 | 1.02 KB |
#6922 | ExecuteNonQuery |
net472 | 2.05μs | 3.43ns | 13.3ns | 0.153 | 0.0102 | 0 | 995 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.23μs | 1.04ns | 4.04ns | 0.0125 | 0 | 0 | 984 B |
master | CallElasticsearch |
netcoreapp3.1 | 1.6μs | 3.33ns | 12.9ns | 0.00797 | 0 | 0 | 984 B |
master | CallElasticsearch |
net472 | 2.6μs | 1.13ns | 4.39ns | 0.156 | 0 | 0 | 1 KB |
master | CallElasticsearchAsync |
net6.0 | 1.21μs | 0.868ns | 3.25ns | 0.0122 | 0 | 0 | 960 B |
master | CallElasticsearchAsync |
netcoreapp3.1 | 1.73μs | 3.31ns | 12.4ns | 0.00861 | 0 | 0 | 1.03 KB |
master | CallElasticsearchAsync |
net472 | 2.69μs | 0.862ns | 3.34ns | 0.162 | 0 | 0 | 1.06 KB |
#6922 | CallElasticsearch |
net6.0 | 1.12μs | 1.6ns | 5.99ns | 0.0112 | 0 | 0 | 984 B |
#6922 | CallElasticsearch |
netcoreapp3.1 | 1.54μs | 3.35ns | 12.1ns | 0.00755 | 0 | 0 | 984 B |
#6922 | CallElasticsearch |
net472 | 2.56μs | 0.862ns | 3.34ns | 0.154 | 0 | 0 | 1 KB |
#6922 | CallElasticsearchAsync |
net6.0 | 1.27μs | 1.03ns | 3.98ns | 0.0128 | 0 | 0 | 960 B |
#6922 | CallElasticsearchAsync |
netcoreapp3.1 | 1.63μs | 3.08ns | 11.5ns | 0.00828 | 0 | 0 | 1.03 KB |
#6922 | CallElasticsearchAsync |
net472 | 2.58μs | 1.58ns | 5.91ns | 0.168 | 0 | 0 | 1.06 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.35μs | 0.767ns | 2.87ns | 0.0136 | 0 | 0 | 960 B |
master | ExecuteAsync |
netcoreapp3.1 | 1.67μs | 2.07ns | 7.75ns | 0.00829 | 0 | 0 | 960 B |
master | ExecuteAsync |
net472 | 1.85μs | 1.24ns | 4.8ns | 0.138 | 0 | 0 | 923 B |
#6922 | ExecuteAsync |
net6.0 | 1.41μs | 1.2ns | 4.65ns | 0.0141 | 0 | 0 | 960 B |
#6922 | ExecuteAsync |
netcoreapp3.1 | 1.6μs | 1.68ns | 6.5ns | 0.00799 | 0 | 0 | 960 B |
#6922 | ExecuteAsync |
net472 | 1.87μs | 1.1ns | 4.26ns | 0.14 | 0 | 0 | 923 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.29μs | 3.22ns | 12.5ns | 0.0215 | 0 | 0 | 2.32 KB |
master | SendAsync |
netcoreapp3.1 | 5.29μs | 7.05ns | 27.3ns | 0.0264 | 0 | 0 | 2.86 KB |
master | SendAsync |
net472 | 7.54μs | 6.44ns | 25ns | 0.486 | 0 | 0 | 3.13 KB |
#6922 | SendAsync |
net6.0 | 4.41μs | 2.81ns | 10.9ns | 0.0222 | 0 | 0 | 2.32 KB |
#6922 | SendAsync |
netcoreapp3.1 | 5.53μs | 5.54ns | 19.2ns | 0.0276 | 0 | 0 | 2.86 KB |
#6922 | SendAsync |
net472 | 7.42μs | 2.52ns | 9.77ns | 0.482 | 0 | 0 | 3.13 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.7μs | 8.99ns | 46.7ns | 0.0168 | 0 | 0 | 1.71 KB |
master | EnrichedLog |
netcoreapp3.1 | 2.32μs | 1.52ns | 5.47ns | 0.0232 | 0 | 0 | 1.71 KB |
master | EnrichedLog |
net472 | 2.64μs | 1.42ns | 5.51ns | 0.249 | 0 | 0 | 1.64 KB |
#6922 | EnrichedLog |
net6.0 | 1.65μs | 1.38ns | 5.33ns | 0.0246 | 0 | 0 | 1.71 KB |
#6922 | EnrichedLog |
netcoreapp3.1 | 2.31μs | 5.84ns | 21.8ns | 0.0228 | 0 | 0 | 1.71 KB |
#6922 | EnrichedLog |
net472 | 2.65μs | 8.58ns | 33.2ns | 0.26 | 0 | 0 | 1.64 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 | 112μs | 350ns | 1.31μs | 0 | 0 | 0 | 4.32 KB |
master | EnrichedLog |
netcoreapp3.1 | 115μs | 302ns | 1.17μs | 0 | 0 | 0 | 4.32 KB |
master | EnrichedLog |
net472 | 149μs | 160ns | 621ns | 0 | 0 | 0 | 4.51 KB |
#6922 | EnrichedLog |
net6.0 | 115μs | 255ns | 989ns | 0 | 0 | 0 | 4.32 KB |
#6922 | EnrichedLog |
netcoreapp3.1 | 118μs | 469ns | 1.81μs | 0 | 0 | 0 | 4.32 KB |
#6922 | EnrichedLog |
net472 | 151μs | 349ns | 1.35μs | 0 | 0 | 0 | 4.51 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.01μs | 1.65ns | 6.38ns | 0.0302 | 0 | 0 | 2.26 KB |
master | EnrichedLog |
netcoreapp3.1 | 4.11μs | 1.68ns | 6.06ns | 0.0204 | 0 | 0 | 2.26 KB |
master | EnrichedLog |
net472 | 4.92μs | 2.85ns | 11ns | 0.319 | 0 | 0 | 2.09 KB |
#6922 | EnrichedLog |
net6.0 | 3.05μs | 2.61ns | 10.1ns | 0.0304 | 0 | 0 | 2.26 KB |
#6922 | EnrichedLog |
netcoreapp3.1 | 4.13μs | 4.74ns | 17.1ns | 0.0207 | 0 | 0 | 2.26 KB |
#6922 | EnrichedLog |
net472 | 4.94μs | 2.85ns | 10.3ns | 0.32 | 0 | 0 | 2.09 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.39μs | 0.669ns | 2.59ns | 0.0139 | 0 | 0 | 1.15 KB |
master | SendReceive |
netcoreapp3.1 | 1.78μs | 2.56ns | 9.56ns | 0.00889 | 0 | 0 | 1.15 KB |
master | SendReceive |
net472 | 2.1μs | 0.675ns | 2.61ns | 0.179 | 0 | 0 | 1.16 KB |
#6922 | SendReceive |
net6.0 | 1.32μs | 0.751ns | 2.81ns | 0.0133 | 0 | 0 | 1.15 KB |
#6922 | SendReceive |
netcoreapp3.1 | 1.84μs | 3.03ns | 10.9ns | 0.00916 | 0 | 0 | 1.15 KB |
#6922 | SendReceive |
net472 | 2.15μs | 2.89ns | 11.2ns | 0.18 | 0 | 0 | 1.16 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.68μs | 2.13ns | 7.67ns | 0.0134 | 0 | 0 | 1.64 KB |
master | EnrichedLog |
netcoreapp3.1 | 3.84μs | 3.76ns | 13.5ns | 0.0191 | 0 | 0 | 1.69 KB |
master | EnrichedLog |
net472 | 4.44μs | 2.15ns | 7.74ns | 0.311 | 0 | 0 | 2.08 KB |
#6922 | EnrichedLog |
net6.0 | 2.76μs | 2.38ns | 9.23ns | 0.0138 | 0 | 0 | 1.64 KB |
#6922 | EnrichedLog |
netcoreapp3.1 | 4μs | 3.64ns | 13.6ns | 0.0201 | 0 | 0 | 1.69 KB |
#6922 | EnrichedLog |
net472 | 4.52μs | 2.87ns | 11.1ns | 0.315 | 0 | 0 | 2.08 KB |
Benchmarks.Trace.SpanBenchmark - Slower ⚠️ Same allocations ✔️
Slower ⚠️ in #6922
Benchmark
diff/base
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net472
1.181
776.93
917.89
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net6.0
1.115
528.78
589.57
Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net472 | 1.181 | 776.93 | 917.89 | |
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net6.0 | 1.115 | 528.78 | 589.57 |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | StartFinishSpan |
net6.0 | 408ns | 0.29ns | 1.12ns | 0.00818 | 0 | 0 | 584 B |
master | StartFinishSpan |
netcoreapp3.1 | 614ns | 0.931ns | 3.6ns | 0.0062 | 0 | 0 | 584 B |
master | StartFinishSpan |
net472 | 629ns | 0.277ns | 1.04ns | 0.0912 | 0 | 0 | 586 B |
master | StartFinishScope |
net6.0 | 528ns | 0.477ns | 1.79ns | 0.00793 | 0 | 0 | 704 B |
master | StartFinishScope |
netcoreapp3.1 | 779ns | 0.583ns | 2.18ns | 0.00778 | 0 | 0 | 704 B |
master | StartFinishScope |
net472 | 777ns | 0.343ns | 1.28ns | 0.105 | 0 | 0 | 666 B |
#6922 | StartFinishSpan |
net6.0 | 421ns | 0.44ns | 1.65ns | 0.00638 | 0 | 0 | 584 B |
#6922 | StartFinishSpan |
netcoreapp3.1 | 588ns | 0.606ns | 2.35ns | 0.00587 | 0 | 0 | 584 B |
#6922 | StartFinishSpan |
net472 | 643ns | 1.35ns | 5.22ns | 0.093 | 0 | 0 | 586 B |
#6922 | StartFinishScope |
net6.0 | 589ns | 0.804ns | 3.01ns | 0.00842 | 0 | 0 | 704 B |
#6922 | StartFinishScope |
netcoreapp3.1 | 752ns | 0.715ns | 2.58ns | 0.00755 | 0 | 0 | 704 B |
#6922 | StartFinishScope |
net472 | 918ns | 1.06ns | 4.11ns | 0.104 | 0 | 0 | 666 B |
Benchmarks.Trace.TraceAnnotationsBenchmark - Slower ⚠️ Same allocations ✔️
Slower ⚠️ in #6922
Benchmark
diff/base
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑net6.0
1.126
638.59
719.21
Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑net6.0 | 1.126 | 638.59 | 719.21 |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | RunOnMethodBegin |
net6.0 | 639ns | 0.54ns | 2.02ns | 0.00687 | 0 | 0 | 704 B |
master | RunOnMethodBegin |
netcoreapp3.1 | 934ns | 0.89ns | 3.21ns | 0.00929 | 0 | 0 | 704 B |
master | RunOnMethodBegin |
net472 | 1.12μs | 0.785ns | 2.94ns | 0.101 | 0 | 0 | 666 B |
#6922 | RunOnMethodBegin |
net6.0 | 719ns | 0.714ns | 2.76ns | 0.00713 | 0 | 0 | 704 B |
#6922 | RunOnMethodBegin |
netcoreapp3.1 | 866ns | 1.6ns | 5.98ns | 0.00879 | 0 | 0 | 704 B |
#6922 | RunOnMethodBegin |
net472 | 1.11μs | 3.17ns | 12.3ns | 0.106 | 0 | 0 | 666 B |
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 Baseline
This PR (6922) - mean (70ms) : 65, 75
. : milestone, 70,
section CallTarget+Inlining+NGEN
This PR (6922) - mean (1,014ms) : 988, 1040
. : milestone, 1014,
gantt
title Execution time (ms) FakeDbCommand (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6922) - mean (106ms) : 97, 116
. : milestone, 106,
master - mean (103ms) : 101, 106
. : milestone, 103,
section CallTarget+Inlining+NGEN
This PR (6922) - mean (803ms) : crit, 697, 908
. : crit, milestone, 803,
master - mean (695ms) : 679, 711
. : milestone, 695,
gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6922) - mean (93ms) : 86, 100
. : milestone, 93,
master - mean (89ms) : 88, 91
. : milestone, 89,
section CallTarget+Inlining+NGEN
This PR (6922) - mean (672ms) : 604, 740
. : milestone, 672,
master - mean (653ms) : 634, 672
. : milestone, 653,
gantt
title Execution time (ms) HttpMessageHandler (.NET Framework 4.8)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6922) - mean (190ms) : 186, 194
. : milestone, 190,
section CallTarget+Inlining+NGEN
This PR (6922) - mean (1,110ms) : 1082, 1138
. : milestone, 1110,
gantt
title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6922) - mean (270ms) : 266, 275
. : milestone, 270,
master - mean (271ms) : 265, 277
. : milestone, 271,
section CallTarget+Inlining+NGEN
This PR (6922) - mean (968ms) : crit, 677, 1260
. : crit, milestone, 968,
master - mean (880ms) : 857, 904
. : milestone, 880,
gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6922) - mean (262ms) : 258, 266
. : milestone, 262,
master - mean (262ms) : 258, 266
. : milestone, 262,
section CallTarget+Inlining+NGEN
This PR (6922) - mean (878ms) : 793, 963
. : milestone, 878,
master - mean (869ms) : 843, 895
. : milestone, 869,
|
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.
There's a bunch of file where you use #if NET48
instead of #if NETFRAMEWORK
, feels like a missed opportunity
Datadog ReportAll test runs ✅ 2 Total Test Services: 0 Failed, 2 Passed Test Services
|
This is all in the generated package version code though I think? I wasn't sure I could update those without issues, so I left it as-is (plus changing it later is a simple one-liner if it is ok). If there's any conditionals in other places that's an issue, but I couldn't see any... |
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.
Looks good to me
Maybe need some json
files renamed?
Looks like with that AgentWriter test some testhost.net48
started to get included in the serialized output - not entirely sure why/where it came from? It isn't present in the .NET 4.6.2 variant.
tracer/build/timeit/Samples.HttpMessageHandler/Samples.HttpMessageHandler.windows.net48.json
Outdated
Show resolved
Hide resolved
tracer/build/_build/ExecutionTimeComparison/CompareExecutionTime.cs
Outdated
Show resolved
Hide resolved
tracer/build/_build/ExecutionTimeComparison/CompareExecutionTime.cs
Outdated
Show resolved
Hide resolved
Co-authored-by: Steven Bouwkamp <[email protected]>
BenchmarksBenchmarks Report for tracer 🐌Benchmarks for #6922 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 ✔️ More allocations
|
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.AgentWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 | 3.31 KB | 3.35 KB | 46 B | 1.39% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | WriteAndFlushEnrichedTraces |
net6.0 | 945μs | 35.6ns | 123ns | 0 | 0 | 0 | 2.71 KB |
master | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 1.02ms | 163ns | 588ns | 0 | 0 | 0 | 2.7 KB |
master | WriteAndFlushEnrichedTraces |
net472 | 1.22ms | 41.6ns | 144ns | 0 | 0 | 0 | 3.31 KB |
#6922 | WriteAndFlushEnrichedTraces |
net6.0 | 934μs | 230ns | 859ns | 0 | 0 | 0 | 2.71 KB |
#6922 | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 1.03ms | 586ns | 2.27μs | 0 | 0 | 0 | 2.7 KB |
#6922 | WriteAndFlushEnrichedTraces |
net472 | 1.25ms | 1.57μs | 6.06μs | 0 | 0 | 0 | 3.35 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.3μs | 59.3ns | 230ns | 0 | 0 | 0 | 14.53 KB |
master | SendRequest |
netcoreapp3.1 | 71.3μs | 89.3ns | 322ns | 0 | 0 | 0 | 17.42 KB |
master | SendRequest |
net472 | 0.000237ns | 0.000237ns | 0.00092ns | 0 | 0 | 0 | 0 b |
#6922 | SendRequest |
net6.0 | 61.2μs | 54ns | 187ns | 0 | 0 | 0 | 14.53 KB |
#6922 | SendRequest |
netcoreapp3.1 | 71.5μs | 342ns | 1.32μs | 0 | 0 | 0 | 17.42 KB |
#6922 | SendRequest |
net472 | 0.00722ns | 0.0032ns | 0.0124ns | 0 | 0 | 0 | 0 b |
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Faster 🎉 Fewer allocations 🎉
Faster 🎉 in #6922
Benchmark
base/diff
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472
1.234
1,081,218.33
876,320.42
Fewer allocations 🎉 in #6922
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0
41.86 KB
41.6 KB
-256 B
-0.61%
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472
56.7 KB
56.25 KB
-445 B
-0.78%
Benchmark | base/diff | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 | 1.234 | 1,081,218.33 | 876,320.42 |
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0 | 41.86 KB | 41.6 KB | -256 B | -0.61% |
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 | 56.7 KB | 56.25 KB | -445 B | -0.78% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | WriteAndFlushEnrichedTraces |
net6.0 | 705μs | 3.72μs | 18.2μs | 0 | 0 | 0 | 41.86 KB |
master | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 731μs | 4.12μs | 28.2μs | 0 | 0 | 0 | 42.13 KB |
master | WriteAndFlushEnrichedTraces |
net472 | 1.06ms | 6.19μs | 61.3μs | 8.33 | 0 | 0 | 56.7 KB |
#6922 | WriteAndFlushEnrichedTraces |
net6.0 | 693μs | 2.16μs | 7.48μs | 0 | 0 | 0 | 41.6 KB |
#6922 | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 714μs | 3.85μs | 21.8μs | 0 | 0 | 0 | 42.09 KB |
#6922 | WriteAndFlushEnrichedTraces |
net472 | 874μs | 3.12μs | 12.1μs | 8.33 | 0 | 0 | 56.25 KB |
Benchmarks.Trace.DbCommandBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | ExecuteNonQuery |
net6.0 | 2.06μs | 10.3ns | 41.3ns | 0 | 0 | 0 | 1.03 KB |
master | ExecuteNonQuery |
netcoreapp3.1 | 2.53μs | 8.46ns | 32.8ns | 0 | 0 | 0 | 1.02 KB |
master | ExecuteNonQuery |
net472 | 2.85μs | 4.34ns | 16.8ns | 0.155 | 0.0141 | 0 | 995 B |
#6922 | ExecuteNonQuery |
net6.0 | 2.07μs | 10ns | 43.7ns | 0 | 0 | 0 | 1.03 KB |
#6922 | ExecuteNonQuery |
netcoreapp3.1 | 2.64μs | 3.98ns | 15.4ns | 0 | 0 | 0 | 1.02 KB |
#6922 | ExecuteNonQuery |
net472 | 2.8μs | 4.38ns | 17ns | 0.154 | 0.014 | 0 | 995 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.82μs | 4.7ns | 18.2ns | 0 | 0 | 0 | 1.04 KB |
master | CallElasticsearch |
netcoreapp3.1 | 2.36μs | 8.48ns | 31.7ns | 0 | 0 | 0 | 1.04 KB |
master | CallElasticsearch |
net472 | 3.59μs | 3.55ns | 13.3ns | 0.163 | 0 | 0 | 1.05 KB |
master | CallElasticsearchAsync |
net6.0 | 1.84μs | 6.69ns | 25.9ns | 0 | 0 | 0 | 1.02 KB |
master | CallElasticsearchAsync |
netcoreapp3.1 | 2.42μs | 9.5ns | 36.8ns | 0 | 0 | 0 | 1.09 KB |
master | CallElasticsearchAsync |
net472 | 3.68μs | 4.18ns | 16.2ns | 0.165 | 0 | 0 | 1.11 KB |
#6922 | CallElasticsearch |
net6.0 | 1.76μs | 1.74ns | 6.72ns | 0 | 0 | 0 | 1.04 KB |
#6922 | CallElasticsearch |
netcoreapp3.1 | 2.33μs | 8.94ns | 34.6ns | 0 | 0 | 0 | 1.04 KB |
#6922 | CallElasticsearch |
net472 | 3.55μs | 5.61ns | 21.7ns | 0.158 | 0 | 0 | 1.05 KB |
#6922 | CallElasticsearchAsync |
net6.0 | 1.81μs | 8.4ns | 32.5ns | 0 | 0 | 0 | 1.02 KB |
#6922 | CallElasticsearchAsync |
netcoreapp3.1 | 2.36μs | 6.87ns | 25.7ns | 0 | 0 | 0 | 1.09 KB |
#6922 | CallElasticsearchAsync |
net472 | 3.73μs | 4.65ns | 18ns | 0.168 | 0 | 0 | 1.11 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.88μs | 0.634ns | 2.37ns | 0 | 0 | 0 | 960 B |
master | ExecuteAsync |
netcoreapp3.1 | 2.29μs | 9.93ns | 38.5ns | 0 | 0 | 0 | 960 B |
master | ExecuteAsync |
net472 | 2.6μs | 1.85ns | 7.17ns | 0.143 | 0 | 0 | 923 B |
#6922 | ExecuteAsync |
net6.0 | 1.85μs | 8.64ns | 33.5ns | 0 | 0 | 0 | 960 B |
#6922 | ExecuteAsync |
netcoreapp3.1 | 2.26μs | 9.99ns | 38.7ns | 0 | 0 | 0 | 960 B |
#6922 | ExecuteAsync |
net472 | 2.57μs | 3.88ns | 15ns | 0.14 | 0 | 0 | 923 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 | 6.83μs | 5.16ns | 19.3ns | 0 | 0 | 0 | 2.37 KB |
master | SendAsync |
netcoreapp3.1 | 8.32μs | 14.5ns | 56.3ns | 0 | 0 | 0 | 2.9 KB |
master | SendAsync |
net472 | 12.3μs | 6.94ns | 26ns | 0.488 | 0 | 0 | 3.19 KB |
#6922 | SendAsync |
net6.0 | 7.01μs | 11.3ns | 43.9ns | 0 | 0 | 0 | 2.37 KB |
#6922 | SendAsync |
netcoreapp3.1 | 8.51μs | 36.6ns | 142ns | 0 | 0 | 0 | 2.9 KB |
#6922 | SendAsync |
net472 | 12.4μs | 8.24ns | 31.9ns | 0.496 | 0 | 0 | 3.19 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 | 2.58μs | 1.52ns | 5.9ns | 0 | 0 | 0 | 1.76 KB |
master | EnrichedLog |
netcoreapp3.1 | 3.51μs | 2.14ns | 7.73ns | 0 | 0 | 0 | 1.76 KB |
master | EnrichedLog |
net472 | 3.92μs | 4.04ns | 15.6ns | 0.255 | 0 | 0 | 1.69 KB |
#6922 | EnrichedLog |
net6.0 | 2.54μs | 14.5ns | 73.9ns | 0 | 0 | 0 | 1.76 KB |
#6922 | EnrichedLog |
netcoreapp3.1 | 3.42μs | 2.82ns | 10.2ns | 0 | 0 | 0 | 1.76 KB |
#6922 | EnrichedLog |
net472 | 3.98μs | 4.84ns | 18.7ns | 0.256 | 0 | 0 | 1.69 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 | 122μs | 64.1ns | 222ns | 0 | 0 | 0 | 4.37 KB |
master | EnrichedLog |
netcoreapp3.1 | 128μs | 68ns | 255ns | 0 | 0 | 0 | 4.37 KB |
master | EnrichedLog |
net472 | 166μs | 202ns | 781ns | 0 | 0 | 0 | 4.57 KB |
#6922 | EnrichedLog |
net6.0 | 122μs | 98ns | 339ns | 0 | 0 | 0 | 4.37 KB |
#6922 | EnrichedLog |
netcoreapp3.1 | 128μs | 321ns | 1.24μs | 0 | 0 | 0 | 4.37 KB |
#6922 | EnrichedLog |
net472 | 166μs | 196ns | 733ns | 0 | 0 | 0 | 4.57 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 | 5.13μs | 20.3ns | 78.8ns | 0 | 0 | 0 | 2.32 KB |
master | EnrichedLog |
netcoreapp3.1 | 6.56μs | 19.2ns | 71.7ns | 0 | 0 | 0 | 2.32 KB |
master | EnrichedLog |
net472 | 7.34μs | 4.84ns | 18.7ns | 0.331 | 0 | 0 | 2.14 KB |
#6922 | EnrichedLog |
net6.0 | 5.1μs | 21.9ns | 84.6ns | 0 | 0 | 0 | 2.32 KB |
#6922 | EnrichedLog |
netcoreapp3.1 | 6.56μs | 28.3ns | 110ns | 0 | 0 | 0 | 2.32 KB |
#6922 | EnrichedLog |
net472 | 7.3μs | 7.38ns | 27.6ns | 0.327 | 0 | 0 | 2.14 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 | 2.05μs | 10.8ns | 54ns | 0 | 0 | 0 | 1.21 KB |
master | SendReceive |
netcoreapp3.1 | 2.62μs | 6.95ns | 26.9ns | 0 | 0 | 0 | 1.21 KB |
master | SendReceive |
net472 | 3.11μs | 2.64ns | 9.9ns | 0.184 | 0 | 0 | 1.21 KB |
#6922 | SendReceive |
net6.0 | 1.95μs | 10.2ns | 53.1ns | 0 | 0 | 0 | 1.21 KB |
#6922 | SendReceive |
netcoreapp3.1 | 2.61μs | 8.09ns | 31.3ns | 0 | 0 | 0 | 1.21 KB |
#6922 | SendReceive |
net472 | 3.15μs | 3.92ns | 15.2ns | 0.19 | 0 | 0 | 1.21 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 | 4.2μs | 4.87ns | 18.2ns | 0 | 0 | 0 | 1.64 KB |
master | EnrichedLog |
netcoreapp3.1 | 5.81μs | 25.7ns | 99.4ns | 0 | 0 | 0 | 1.69 KB |
master | EnrichedLog |
net472 | 6.96μs | 7.13ns | 27.6ns | 0.31 | 0 | 0 | 2.08 KB |
#6922 | EnrichedLog |
net6.0 | 4.18μs | 13.6ns | 52.6ns | 0 | 0 | 0 | 1.64 KB |
#6922 | EnrichedLog |
netcoreapp3.1 | 5.69μs | 20.3ns | 78.8ns | 0 | 0 | 0 | 1.69 KB |
#6922 | EnrichedLog |
net472 | 6.75μs | 6.98ns | 27ns | 0.305 | 0 | 0 | 2.08 KB |
Benchmarks.Trace.SpanBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | StartFinishSpan |
net6.0 | 759ns | 3.81ns | 17.5ns | 0 | 0 | 0 | 584 B |
master | StartFinishSpan |
netcoreapp3.1 | 945ns | 4.59ns | 18.3ns | 0 | 0 | 0 | 584 B |
master | StartFinishSpan |
net472 | 904ns | 1.72ns | 6.67ns | 0.0923 | 0 | 0 | 586 B |
master | StartFinishScope |
net6.0 | 913ns | 4.55ns | 18.8ns | 0 | 0 | 0 | 704 B |
master | StartFinishScope |
netcoreapp3.1 | 1.18μs | 1.54ns | 5.95ns | 0 | 0 | 0 | 704 B |
master | StartFinishScope |
net472 | 1.13μs | 0.412ns | 1.54ns | 0.102 | 0 | 0 | 666 B |
#6922 | StartFinishSpan |
net6.0 | 747ns | 1.86ns | 7.19ns | 0 | 0 | 0 | 584 B |
#6922 | StartFinishSpan |
netcoreapp3.1 | 947ns | 5.13ns | 27.6ns | 0 | 0 | 0 | 584 B |
#6922 | StartFinishSpan |
net472 | 926ns | 1.11ns | 4.3ns | 0.0923 | 0 | 0 | 586 B |
#6922 | StartFinishScope |
net6.0 | 927ns | 0.277ns | 1.04ns | 0 | 0 | 0 | 704 B |
#6922 | StartFinishScope |
netcoreapp3.1 | 1.19μs | 5.47ns | 21.2ns | 0 | 0 | 0 | 704 B |
#6922 | StartFinishScope |
net472 | 1.11μs | 0.0971ns | 0.376ns | 0.1 | 0 | 0 | 666 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 | 1.05μs | 1.2ns | 4.65ns | 0 | 0 | 0 | 704 B |
master | RunOnMethodBegin |
netcoreapp3.1 | 1.32μs | 6.76ns | 30.2ns | 0 | 0 | 0 | 704 B |
master | RunOnMethodBegin |
net472 | 1.36μs | 1.16ns | 4.48ns | 0.102 | 0 | 0 | 666 B |
#6922 | RunOnMethodBegin |
net6.0 | 1.04μs | 0.897ns | 3.47ns | 0 | 0 | 0 | 704 B |
#6922 | RunOnMethodBegin |
netcoreapp3.1 | 1.36μs | 5.17ns | 20ns | 0 | 0 | 0 | 704 B |
#6922 | RunOnMethodBegin |
net472 | 1.39μs | 1.15ns | 4.47ns | 0.103 | 0 | 0 | 666 B |
## Summary of changes Adds support for AWS SDK 4.0, [released on 28th Apr](https://aws.amazon.com/blogs/developer/general-availability-of-aws-sdk-for-net-v4-0/) ## Reason for change We want to support the latest versions of the SDK ## Implementation details - Ran a "baseline" bump of package versions for simplicity, and then later removed the commit from the stack. - Bumped the tested versions of AWS. - Bumped the instrumented versions of AWS. - Added scrubbing for http-client-handler vs socket-handler. - This is an implementation detail difference in v4 which doesn't really matter in the snapshots so just scrubbed it where required - Added additional instrumentation to grab the "real" URL that the HTTP Client sends. - The value added by the existing "core pipeline" instrumentation contained the wrong value for the S3 tests, it contained a value `/{Key+}` instead of the expected `/sample.txt`. - This looks like a core change to the library, to allow "parameterized" URLs. - Rather than trying to reproduce the logic it uses in the existing endpoint, the additional instrumentation grabs the "real" URL that's used, and uses that preferentially - I haven't checked to see if we could backport this to earlier SDK versions too, but seems like low value to do so with risks of breakage ## Test coverage Ran an [all-TFMs test](https://dev.azure.com/datadoghq/dd-trace-dotnet/_build/results?buildId=177194&view=results) to make sure everything looks ok, and looks fine in general ## Other details Stacked on - #6922 because the minimum .NET Framework version was bumped to `net472`
Summary of changes
Update test projects and samples to target
net48
instead ofnet461
Reason for change
More and more packages are bumping their minimum TFM requirements for .NET Framework. The most recent case is the AWS SDK v4, which increases the minimum to .NET Framework 4.7.2. We previously were targeting .NET Framework 4.6.2, so it would not be possible for us to test these packages.
In reality, making this update is mostly a noop, seeing as we always actually ran on .NET Framework 4.8 on our test VMs, as that was what's installed (as I understand it anyway).
Implementation details
A lot of find and replace. The most notable changes were:
#if NET462
with#if NETFRAMEWORK
'$(TargetFramework)' == 'net462'
with$(TargetFramework.StartsWith('net4'))
to avoid having to update this again in the future (should probably have done theNETFramework
check instead, but meh.<Reference Include="System.Net.Http" />
to aspnetcore apps that are running on .NET FX (not entirely sure why this was not required in net462? 🤷♂️)<Reference Include="System.IO.Compression" />
toZipArchive
usage (again, not entirely sure why this was not previously required)AgentWriterTests.SpanSampling_ShouldSend_MultipleMatchedSpans_WhenStatsDropsOne
. More on that below.Test coverage
In general, covered by all our existing tests. I've done some full runs, and it looks good AFAICT.
The one weirdness is with the test:
AgentWriterTests.SpanSampling_ShouldSend_MultipleMatchedSpans_WhenStatsDropsOne
, which was failing innet48
. Through a bunch of trial and error, established that theVerify
check was failing. However, when running it locally, it failed on all TFMs for me. Frankly, I don't really understand why any of these tests pass, because AFAICT, the "expectedData" is serializing a singleTraceChunk
whereas the "real" API serializes a collection ofTraceChunk
, but they pass, so I assume I'm missing something 😅Anyway, I changed the failing test to use a
SpanBuffer
to construct the expected data, and updated the comparison code to properly compare the array segment, and it passes, so I think it's ok...Other details
This changes the targets for Debugger, ASM, and profiling too, in case that wasn't clear!
This is a prerequiste for adding AWS SDK V4 support