[Profiler] Fix static analysis job#6406
Conversation
Datadog ReportBranch report: ✅ 0 Failed, 451346 Passed, 3186 Skipped, 21h 11m 41.38s Total Time |
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 (6406) - mean (69ms) : 66, 72
. : milestone, 69,
master - mean (69ms) : 66, 72
. : milestone, 69,
section CallTarget+Inlining+NGEN
This PR (6406) - mean (985ms) : 959, 1011
. : milestone, 985,
master - mean (983ms) : 957, 1010
. : milestone, 983,
gantt
title Execution time (ms) FakeDbCommand (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6406) - mean (108ms) : 106, 111
. : milestone, 108,
master - mean (108ms) : 106, 110
. : milestone, 108,
section CallTarget+Inlining+NGEN
This PR (6406) - mean (681ms) : 665, 698
. : milestone, 681,
master - mean (678ms) : 664, 691
. : milestone, 678,
gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6406) - mean (92ms) : 90, 94
. : milestone, 92,
master - mean (91ms) : 89, 92
. : milestone, 91,
section CallTarget+Inlining+NGEN
This PR (6406) - mean (634ms) : 617, 652
. : milestone, 634,
master - mean (631ms) : 614, 648
. : milestone, 631,
gantt
title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6406) - mean (190ms) : 187, 194
. : milestone, 190,
master - mean (190ms) : 186, 195
. : milestone, 190,
section CallTarget+Inlining+NGEN
This PR (6406) - mean (1,093ms) : 1070, 1115
. : milestone, 1093,
master - mean (1,093ms) : 1058, 1128
. : milestone, 1093,
gantt
title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6406) - mean (277ms) : 273, 281
. : milestone, 277,
master - mean (275ms) : 271, 279
. : milestone, 275,
section CallTarget+Inlining+NGEN
This PR (6406) - mean (874ms) : 843, 905
. : milestone, 874,
master - mean (872ms) : 840, 904
. : milestone, 872,
gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6406) - mean (266ms) : 261, 271
. : milestone, 266,
master - mean (266ms) : 261, 270
. : milestone, 266,
section CallTarget+Inlining+NGEN
This PR (6406) - mean (850ms) : 817, 883
. : milestone, 850,
master - mean (851ms) : 812, 891
. : milestone, 851,
|
Throughput/Crank Report ⚡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 (6406) (11.264M) : 0, 11263704
master (11.204M) : 0, 11203778
benchmarks/2.9.0 (11.033M) : 0, 11032866
section Automatic
This PR (6406) (7.347M) : 0, 7347315
master (7.331M) : 0, 7330853
benchmarks/2.9.0 (7.786M) : 0, 7785853
section Trace stats
master (7.519M) : 0, 7518727
section Manual
master (11.261M) : 0, 11260993
section Manual + Automatic
This PR (6406) (6.762M) : 0, 6761750
master (6.666M) : 0, 6665502
section DD_TRACE_ENABLED=0
master (10.167M) : 0, 10167088
gantt
title Throughput Linux arm64 (Total requests)
dateFormat X
axisFormat %s
section Baseline
This PR (6406) (9.656M) : 0, 9656324
master (9.521M) : 0, 9520567
benchmarks/2.9.0 (9.495M) : 0, 9494821
section Automatic
This PR (6406) (6.324M) : 0, 6324250
master (6.372M) : 0, 6371730
section Trace stats
master (6.726M) : 0, 6725555
section Manual
master (9.500M) : 0, 9500374
section Manual + Automatic
This PR (6406) (6.035M) : 0, 6034918
master (6.088M) : 0, 6087765
section DD_TRACE_ENABLED=0
master (8.948M) : 0, 8948240
gantt
title Throughput Windows x64 (Total requests)
dateFormat X
axisFormat %s
section Baseline
This PR (6406) (9.989M) : 0, 9988779
master (9.993M) : 0, 9992988
benchmarks/2.9.0 (10.020M) : 0, 10019592
section Automatic
This PR (6406) (6.388M) : 0, 6387922
master (6.486M) : 0, 6486065
benchmarks/2.9.0 (7.255M) : 0, 7255257
section Trace stats
master (7.145M) : 0, 7145458
section Manual
master (10.073M) : 0, 10072872
section Manual + Automatic
This PR (6406) (5.795M) : 0, 5794747
master (6.084M) : 0, 6083938
section DD_TRACE_ENABLED=0
master (9.408M) : 0, 9407738
|
Benchmarks Report for tracer 🐌Benchmarks for #6406 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.AspNetCoreBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.DbCommandBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.ElasticsearchBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.GraphQLBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.HttpClientBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.ILoggerBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.Log4netBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.NLogBenchmark - Faster 🎉 Same allocations ✔️
|
| Benchmark | base/diff | Base Median (ns) | Diff Median (ns) | Modality |
|---|---|---|---|---|
| Benchmarks.Trace.NLogBenchmark.EnrichedLog‑net6.0 | 1.158 | 3,259.72 | 2,816.07 |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | EnrichedLog |
net6.0 | 3.26μs | 1.33ns | 5.16ns | 0.0311 | 0 | 0 | 2.2 KB |
| master | EnrichedLog |
netcoreapp3.1 | 4.21μs | 1.51ns | 5.86ns | 0.0295 | 0 | 0 | 2.2 KB |
| master | EnrichedLog |
net472 | 4.89μs | 2.44ns | 9.44ns | 0.32 | 0 | 0 | 2.02 KB |
| #6406 | EnrichedLog |
net6.0 | 2.82μs | 1.15ns | 4.29ns | 0.0311 | 0 | 0 | 2.2 KB |
| #6406 | EnrichedLog |
netcoreapp3.1 | 4.14μs | 1.46ns | 5.66ns | 0.0289 | 0 | 0 | 2.2 KB |
| #6406 | EnrichedLog |
net472 | 4.94μs | 0.883ns | 3.42ns | 0.319 | 0 | 0 | 2.02 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.32μs | 0.99ns | 3.71ns | 0.0163 | 0 | 0 | 1.14 KB |
| master | SendReceive |
netcoreapp3.1 | 1.81μs | 1.19ns | 4.59ns | 0.0152 | 0 | 0 | 1.14 KB |
| master | SendReceive |
net472 | 2.17μs | 1.59ns | 6.17ns | 0.184 | 0 | 0 | 1.16 KB |
| #6406 | SendReceive |
net6.0 | 1.39μs | 0.98ns | 3.8ns | 0.0159 | 0 | 0 | 1.14 KB |
| #6406 | SendReceive |
netcoreapp3.1 | 1.79μs | 0.924ns | 3.58ns | 0.0153 | 0 | 0 | 1.14 KB |
| #6406 | SendReceive |
net472 | 2.11μs | 0.846ns | 3.28ns | 0.183 | 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.78μs | 0.606ns | 2.27ns | 0.0223 | 0 | 0 | 1.6 KB |
| master | EnrichedLog |
netcoreapp3.1 | 3.77μs | 1.11ns | 4.28ns | 0.0225 | 0 | 0 | 1.65 KB |
| master | EnrichedLog |
net472 | 4.49μs | 3.76ns | 14.6ns | 0.322 | 0 | 0 | 2.04 KB |
| #6406 | EnrichedLog |
net6.0 | 2.72μs | 1.13ns | 4.24ns | 0.0216 | 0 | 0 | 1.6 KB |
| #6406 | EnrichedLog |
netcoreapp3.1 | 3.82μs | 1.38ns | 5.35ns | 0.0211 | 0 | 0 | 1.65 KB |
| #6406 | EnrichedLog |
net472 | 4.43μs | 2.03ns | 7.59ns | 0.322 | 0 | 0 | 2.04 KB |
Benchmarks.Trace.SpanBenchmark - Slower ⚠️ Same allocations ✔️
Slower ⚠️ in #6406
Benchmark
diff/base
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net6.0
1.179
475.78
560.95
| Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
|---|---|---|---|---|
| Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net6.0 | 1.179 | 475.78 | 560.95 |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | StartFinishSpan |
net6.0 | 399ns | 0.658ns | 2.55ns | 0.00798 | 0 | 0 | 576 B |
| master | StartFinishSpan |
netcoreapp3.1 | 602ns | 0.93ns | 3.6ns | 0.00784 | 0 | 0 | 576 B |
| master | StartFinishSpan |
net472 | 666ns | 0.828ns | 3.1ns | 0.0917 | 0 | 0 | 578 B |
| master | StartFinishScope |
net6.0 | 475ns | 0.634ns | 2.46ns | 0.00976 | 0 | 0 | 696 B |
| master | StartFinishScope |
netcoreapp3.1 | 725ns | 1.21ns | 4.52ns | 0.00961 | 0 | 0 | 696 B |
| master | StartFinishScope |
net472 | 920ns | 2.27ns | 8.79ns | 0.104 | 0 | 0 | 658 B |
| #6406 | StartFinishSpan |
net6.0 | 391ns | 0.396ns | 1.53ns | 0.00806 | 0 | 0 | 576 B |
| #6406 | StartFinishSpan |
netcoreapp3.1 | 601ns | 1.05ns | 3.93ns | 0.00771 | 0 | 0 | 576 B |
| #6406 | StartFinishSpan |
net472 | 667ns | 1.67ns | 6.48ns | 0.0915 | 0 | 0 | 578 B |
| #6406 | StartFinishScope |
net6.0 | 561ns | 0.489ns | 1.89ns | 0.00958 | 0 | 0 | 696 B |
| #6406 | StartFinishScope |
netcoreapp3.1 | 772ns | 1.31ns | 5.09ns | 0.00937 | 0 | 0 | 696 B |
| #6406 | StartFinishScope |
net472 | 878ns | 2.12ns | 8.22ns | 0.104 | 0 | 0 | 658 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.41ns | 5.44ns | 0.0098 | 0 | 0 | 696 B |
| master | RunOnMethodBegin |
netcoreapp3.1 | 885ns | 1.94ns | 7.52ns | 0.00935 | 0 | 0 | 696 B |
| master | RunOnMethodBegin |
net472 | 1.1μs | 2.31ns | 8.93ns | 0.104 | 0 | 0 | 658 B |
| #6406 | RunOnMethodBegin |
net6.0 | 704ns | 0.905ns | 3.5ns | 0.00983 | 0 | 0 | 696 B |
| #6406 | RunOnMethodBegin |
netcoreapp3.1 | 963ns | 1.33ns | 5.17ns | 0.00909 | 0 | 0 | 696 B |
| #6406 | RunOnMethodBegin |
net472 | 1.17μs | 2.12ns | 8.2ns | 0.104 | 0 | 0 | 658 B |
Summary of changes
Fix static analysis job.
Reason for change
The static analysis job searches in the logs files for
error:string. But if the analyzer reports a programming issues, it will report the whole statement. If that statement containserror:💥Implementation details
In that specific case, we prevent the analyzer to report those 2 specific statements.
Test coverage
Static job analysis must be green now.
Other details