-
Notifications
You must be signed in to change notification settings - Fork 151
Add partial trust/legacy CAS detection to dd-trace and dd-dotnet #7779
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
Execution-Time Benchmarks Report ⏱️Execution-time results for samples comparing This PR (7779) and master. ✅ No regressions detected - check the details below Full Metrics ComparisonFakeDbCommand
HttpMessageHandler
Comparison explanationExecution-time benchmarks measure the whole time it takes to execute a program, and are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are highlighted in **red**. The following thresholds were used for comparing the execution times:
Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard. Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph). Duration chartsFakeDbCommand (.NET Framework 4.8)gantt
title Execution time (ms) FakeDbCommand (.NET Framework 4.8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (7779) - mean (68ms) : 67, 70
master - mean (68ms) : 67, 70
section Bailout
This PR (7779) - mean (72ms) : 71, 73
master - mean (72ms) : 71, 73
section CallTarget+Inlining+NGEN
This PR (7779) - mean (1,054ms) : 998, 1110
master - mean (1,047ms) : 1010, 1083
FakeDbCommand (.NET Core 3.1)gantt
title Execution time (ms) FakeDbCommand (.NET Core 3.1)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (7779) - mean (106ms) : 103, 109
master - mean (107ms) : 104, 109
section Bailout
This PR (7779) - mean (107ms) : 105, 108
master - mean (107ms) : 106, 109
section CallTarget+Inlining+NGEN
This PR (7779) - mean (752ms) : 725, 778
master - mean (759ms) : 727, 790
FakeDbCommand (.NET 6)gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (7779) - mean (94ms) : 92, 96
master - mean (94ms) : 91, 97
section Bailout
This PR (7779) - mean (94ms) : 93, 95
master - mean (95ms) : 94, 96
section CallTarget+Inlining+NGEN
This PR (7779) - mean (718ms) : 671, 765
master - mean (711ms) : 674, 748
FakeDbCommand (.NET 8)gantt
title Execution time (ms) FakeDbCommand (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (7779) - mean (93ms) : 91, 95
master - mean (93ms) : 91, 95
section Bailout
This PR (7779) - mean (93ms) : 92, 94
master - mean (93ms) : 92, 95
section CallTarget+Inlining+NGEN
This PR (7779) - mean (661ms) : 646, 676
master - mean (664ms) : 649, 678
HttpMessageHandler (.NET Framework 4.8)gantt
title Execution time (ms) HttpMessageHandler (.NET Framework 4.8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (7779) - mean (193ms) : 188, 197
master - mean (193ms) : 189, 197
section Bailout
This PR (7779) - mean (196ms) : 192, 199
master - mean (196ms) : 193, 198
section CallTarget+Inlining+NGEN
This PR (7779) - mean (1,163ms) : 1104, 1222
master - mean (1,172ms) : 1094, 1250
HttpMessageHandler (.NET Core 3.1)gantt
title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (7779) - mean (278ms) : 271, 284
master - mean (278ms) : 272, 283
section Bailout
This PR (7779) - mean (277ms) : 271, 282
master - mean (278ms) : 272, 284
section CallTarget+Inlining+NGEN
This PR (7779) - mean (941ms) : 899, 983
master - mean (954ms) : 915, 992
HttpMessageHandler (.NET 6)gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (7779) - mean (268ms) : 264, 272
master - mean (270ms) : 265, 276
section Bailout
This PR (7779) - mean (268ms) : 265, 271
master - mean (270ms) : 266, 273
section CallTarget+Inlining+NGEN
This PR (7779) - mean (931ms) : 875, 987
master - mean (933ms) : 885, 980
HttpMessageHandler (.NET 8)gantt
title Execution time (ms) HttpMessageHandler (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (7779) - mean (268ms) : 262, 274
master - mean (268ms) : 264, 273
section Bailout
This PR (7779) - mean (267ms) : 264, 270
master - mean (268ms) : 265, 272
section CallTarget+Inlining+NGEN
This PR (7779) - mean (848ms) : 830, 865
master - mean (858ms) : 839, 876
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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.
💡 Codex Review
Here are some automated review suggestions for this pull request.
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
tracer/src/Datadog.Trace.Tools.dd_dotnet/Checks/Windows/IIS/Application.cs
Show resolved
Hide resolved
link04
left a comment
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.
Wow Ty man! All I could think about after finding out what the issue was 💀
BenchmarksBenchmarks Report for benchmark platform 🐌Benchmarks for #7779 compared to master:
The following thresholds were used for comparing the benchmark speeds:
Allocation changes below 0.5% are ignored. Benchmark detailsBenchmarks.Trace.ActivityBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.Asm.AppSecBodyBenchmark - 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.AspNetCoreBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.CharSliceBenchmark - Same speed ✔️ Fewer allocations 🎉
|
| Benchmark | Base Allocated | Diff Allocated | Change | Change % |
|---|---|---|---|---|
| Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑netcoreapp3.1 | 1 B | 0 b | -1 B | -100.00% |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | OriginalCharSlice |
net6.0 | 1.92ms | 1.96μs | 7.35μs | 0 | 0 | 0 | 640.01 KB |
| master | OriginalCharSlice |
netcoreapp3.1 | 2.21ms | 6.9μs | 25.8μs | 0 | 0 | 0 | 640 KB |
| master | OriginalCharSlice |
net472 | 2.55ms | 80.9ns | 303ns | 100 | 0 | 0 | 641.95 KB |
| master | OptimizedCharSlice |
net6.0 | 1.39ms | 182ns | 705ns | 0 | 0 | 0 | 7 B |
| master | OptimizedCharSlice |
netcoreapp3.1 | 1.68ms | 1.67μs | 6.45μs | 0 | 0 | 0 | 1 B |
| master | OptimizedCharSlice |
net472 | 2.01ms | 283ns | 1.1μs | 0 | 0 | 0 | 0 b |
| master | OptimizedCharSliceWithPool |
net6.0 | 857μs | 101ns | 393ns | 0 | 0 | 0 | 3 B |
| master | OptimizedCharSliceWithPool |
netcoreapp3.1 | 808μs | 62.5ns | 242ns | 0 | 0 | 0 | 1 B |
| master | OptimizedCharSliceWithPool |
net472 | 1.13ms | 91.4ns | 354ns | 0 | 0 | 0 | 0 b |
| #7779 | OriginalCharSlice |
net6.0 | 1.92ms | 485ns | 1.81μs | 0 | 0 | 0 | 640.01 KB |
| #7779 | OriginalCharSlice |
netcoreapp3.1 | 2.16ms | 7.39μs | 26.6μs | 0 | 0 | 0 | 640 KB |
| #7779 | OriginalCharSlice |
net472 | 2.65ms | 98.5ns | 368ns | 100 | 0 | 0 | 641.95 KB |
| #7779 | OptimizedCharSlice |
net6.0 | 1.42ms | 282ns | 1.06μs | 0 | 0 | 0 | 7 B |
| #7779 | OptimizedCharSlice |
netcoreapp3.1 | 1.68ms | 358ns | 1.39μs | 0 | 0 | 0 | 1 B |
| #7779 | OptimizedCharSlice |
net472 | 1.97ms | 255ns | 987ns | 0 | 0 | 0 | 0 b |
| #7779 | OptimizedCharSliceWithPool |
net6.0 | 852μs | 25ns | 93.6ns | 0 | 0 | 0 | 3 B |
| #7779 | OptimizedCharSliceWithPool |
netcoreapp3.1 | 842μs | 69.6ns | 269ns | 0 | 0 | 0 | 0 b |
| #7779 | OptimizedCharSliceWithPool |
net472 | 1.15ms | 137ns | 529ns | 0 | 0 | 0 | 0 b |
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Slower ⚠️ More allocations ⚠️
Slower ⚠️ in #7779
Benchmark
diff/base
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472
1.171
866,499.79
1,014,685.21
More allocations ⚠️ in #7779
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1
41.84 KB
42.95 KB
1.12 KB
2.67%
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472
56.49 KB
56.8 KB
306 B
0.54%
| Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
|---|---|---|---|---|
| Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 | 1.171 | 866,499.79 | 1,014,685.21 |
| Benchmark | Base Allocated | Diff Allocated | Change | Change % |
|---|---|---|---|---|
| Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 | 41.84 KB | 42.95 KB | 1.12 KB | 2.67% |
| Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 | 56.49 KB | 56.8 KB | 306 B | 0.54% |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | WriteAndFlushEnrichedTraces |
net6.0 | 680μs | 1.96μs | 7.31μs | 0 | 0 | 0 | 41.61 KB |
| master | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 696μs | 1.49μs | 5.15μs | 0 | 0 | 0 | 41.84 KB |
| master | WriteAndFlushEnrichedTraces |
net472 | 869μs | 2.97μs | 11.5μs | 8.33 | 0 | 0 | 56.49 KB |
| #7779 | WriteAndFlushEnrichedTraces |
net6.0 | 698μs | 3.66μs | 18.3μs | 0 | 0 | 0 | 41.57 KB |
| #7779 | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 707μs | 3.73μs | 19μs | 0 | 0 | 0 | 42.95 KB |
| #7779 | WriteAndFlushEnrichedTraces |
net472 | 1.02ms | 5.65μs | 33μs | 8.33 | 0 | 0 | 56.8 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.91μs | 4.03ns | 15.6ns | 0 | 0 | 0 | 1.02 KB |
| master | ExecuteNonQuery |
netcoreapp3.1 | 2.66μs | 9.81ns | 38ns | 0 | 0 | 0 | 1.02 KB |
| master | ExecuteNonQuery |
net472 | 2.9μs | 3.07ns | 11.9ns | 0.145 | 0.0145 | 0 | 987 B |
| #7779 | ExecuteNonQuery |
net6.0 | 1.94μs | 9.52ns | 42.6ns | 0 | 0 | 0 | 1.02 KB |
| #7779 | ExecuteNonQuery |
netcoreapp3.1 | 2.55μs | 10.7ns | 37ns | 0 | 0 | 0 | 1.02 KB |
| #7779 | ExecuteNonQuery |
net472 | 2.88μs | 4.06ns | 15.7ns | 0.145 | 0.0145 | 0 | 987 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.74μs | 8.1ns | 31.4ns | 0 | 0 | 0 | 1.03 KB |
| master | CallElasticsearch |
netcoreapp3.1 | 2.2μs | 10.5ns | 44.4ns | 0 | 0 | 0 | 1.03 KB |
| master | CallElasticsearch |
net472 | 3.6μs | 3ns | 11.6ns | 0.162 | 0 | 0 | 1.04 KB |
| master | CallElasticsearchAsync |
net6.0 | 1.84μs | 8.73ns | 33.8ns | 0 | 0 | 0 | 1.01 KB |
| master | CallElasticsearchAsync |
netcoreapp3.1 | 2.4μs | 11.6ns | 46.4ns | 0 | 0 | 0 | 1.08 KB |
| master | CallElasticsearchAsync |
net472 | 3.67μs | 4.86ns | 18.8ns | 0.165 | 0 | 0 | 1.1 KB |
| #7779 | CallElasticsearch |
net6.0 | 1.69μs | 1.07ns | 4.15ns | 0 | 0 | 0 | 1.03 KB |
| #7779 | CallElasticsearch |
netcoreapp3.1 | 2.27μs | 11.6ns | 51.7ns | 0 | 0 | 0 | 1.03 KB |
| #7779 | CallElasticsearch |
net472 | 3.51μs | 4.08ns | 15.8ns | 0.159 | 0 | 0 | 1.04 KB |
| #7779 | CallElasticsearchAsync |
net6.0 | 1.82μs | 7.33ns | 28.4ns | 0 | 0 | 0 | 1.01 KB |
| #7779 | CallElasticsearchAsync |
netcoreapp3.1 | 2.37μs | 10.8ns | 41.7ns | 0 | 0 | 0 | 1.08 KB |
| #7779 | CallElasticsearchAsync |
net472 | 3.64μs | 2.3ns | 8.59ns | 0.163 | 0 | 0 | 1.1 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.84μs | 9.26ns | 40.3ns | 0 | 0 | 0 | 952 B |
| master | ExecuteAsync |
netcoreapp3.1 | 2.43μs | 11.3ns | 45.2ns | 0 | 0 | 0 | 952 B |
| master | ExecuteAsync |
net472 | 2.54μs | 3.55ns | 13.8ns | 0.14 | 0 | 0 | 915 B |
| #7779 | ExecuteAsync |
net6.0 | 1.83μs | 0.471ns | 1.7ns | 0 | 0 | 0 | 952 B |
| #7779 | ExecuteAsync |
netcoreapp3.1 | 2.54μs | 10.3ns | 40ns | 0 | 0 | 0 | 952 B |
| #7779 | ExecuteAsync |
net472 | 2.52μs | 2.92ns | 11.3ns | 0.139 | 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.08μs | 8.57ns | 33.2ns | 0 | 0 | 0 | 2.36 KB |
| master | SendAsync |
netcoreapp3.1 | 8.87μs | 33.1ns | 128ns | 0 | 0 | 0 | 2.9 KB |
| master | SendAsync |
net472 | 12.3μs | 8.57ns | 32.1ns | 0.493 | 0 | 0 | 3.18 KB |
| #7779 | SendAsync |
net6.0 | 6.86μs | 5.39ns | 20.9ns | 0 | 0 | 0 | 2.36 KB |
| #7779 | SendAsync |
netcoreapp3.1 | 8.48μs | 19.1ns | 74ns | 0 | 0 | 0 | 2.9 KB |
| #7779 | SendAsync |
net472 | 12.3μs | 7.62ns | 29.5ns | 0.492 | 0 | 0 | 3.18 KB |
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed ✔️ More allocations ⚠️
More allocations ⚠️ in #7779
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1
255.14 KB
277.14 KB
22 KB
8.62%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net6.0
43.59 KB
44.67 KB
1.08 KB
2.48%
Fewer allocations 🎉 in #7779
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑netcoreapp3.1
45.5 KB
42.64 KB
-2.86 KB
-6.29%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0
278.42 KB
256.72 KB
-21.7 KB
-7.80%
| Benchmark | Base Allocated | Diff Allocated | Change | Change % |
|---|---|---|---|---|
| Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 | 255.14 KB | 277.14 KB | 22 KB | 8.62% |
| Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net6.0 | 43.59 KB | 44.67 KB | 1.08 KB | 2.48% |
| Benchmark | Base Allocated | Diff Allocated | Change | Change % |
|---|---|---|---|---|
| Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑netcoreapp3.1 | 45.5 KB | 42.64 KB | -2.86 KB | -6.29% |
| Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 | 278.42 KB | 256.72 KB | -21.7 KB | -7.80% |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | StringConcatBenchmark |
net6.0 | 41.7μs | 160ns | 578ns | 0 | 0 | 0 | 43.59 KB |
| master | StringConcatBenchmark |
netcoreapp3.1 | 54.9μs | 944ns | 9.39μs | 0 | 0 | 0 | 45.5 KB |
| master | StringConcatBenchmark |
net472 | 57.6μs | 91.6ns | 330ns | 0 | 0 | 0 | 65.54 KB |
| master | StringConcatAspectBenchmark |
net6.0 | 474μs | 1.52μs | 5.28μs | 0 | 0 | 0 | 278.42 KB |
| master | StringConcatAspectBenchmark |
netcoreapp3.1 | 488μs | 2.49μs | 10.8μs | 0 | 0 | 0 | 255.14 KB |
| master | StringConcatAspectBenchmark |
net472 | 409μs | 2.31μs | 15.5μs | 0 | 0 | 0 | 278.53 KB |
| #7779 | StringConcatBenchmark |
net6.0 | 46.1μs | 269ns | 2.55μs | 0 | 0 | 0 | 44.67 KB |
| #7779 | StringConcatBenchmark |
netcoreapp3.1 | 49.2μs | 270ns | 1.48μs | 0 | 0 | 0 | 42.64 KB |
| #7779 | StringConcatBenchmark |
net472 | 57.5μs | 121ns | 419ns | 0 | 0 | 0 | 65.54 KB |
| #7779 | StringConcatAspectBenchmark |
net6.0 | 445μs | 2.09μs | 10.7μs | 0 | 0 | 0 | 256.72 KB |
| #7779 | StringConcatAspectBenchmark |
netcoreapp3.1 | 526μs | 1.97μs | 7.38μs | 0 | 0 | 0 | 277.14 KB |
| #7779 | StringConcatAspectBenchmark |
net472 | 406μs | 2.18μs | 11.7μs | 0 | 0 | 0 | 279.81 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.61μs | 14ns | 72.6ns | 0 | 0 | 0 | 1.7 KB |
| master | EnrichedLog |
netcoreapp3.1 | 3.69μs | 17.6ns | 70.4ns | 0 | 0 | 0 | 1.7 KB |
| master | EnrichedLog |
net472 | 4.01μs | 9.66ns | 37.4ns | 0.242 | 0 | 0 | 1.64 KB |
| #7779 | EnrichedLog |
net6.0 | 2.7μs | 13.8ns | 63.4ns | 0 | 0 | 0 | 1.7 KB |
| #7779 | EnrichedLog |
netcoreapp3.1 | 3.57μs | 14ns | 54.4ns | 0 | 0 | 0 | 1.7 KB |
| #7779 | EnrichedLog |
net472 | 4.07μs | 8.11ns | 31.4ns | 0.246 | 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 | 122μs | 97.1ns | 350ns | 0 | 0 | 0 | 4.31 KB |
| master | EnrichedLog |
netcoreapp3.1 | 129μs | 392ns | 1.52μs | 0 | 0 | 0 | 4.31 KB |
| master | EnrichedLog |
net472 | 167μs | 62ns | 232ns | 0 | 0 | 0 | 4.51 KB |
| #7779 | EnrichedLog |
net6.0 | 123μs | 110ns | 398ns | 0 | 0 | 0 | 4.31 KB |
| #7779 | EnrichedLog |
netcoreapp3.1 | 127μs | 150ns | 582ns | 0 | 0 | 0 | 4.31 KB |
| #7779 | EnrichedLog |
net472 | 166μs | 105ns | 408ns | 0 | 0 | 0 | 4.52 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μs | 16ns | 61.9ns | 0 | 0 | 0 | 2.26 KB |
| master | EnrichedLog |
netcoreapp3.1 | 6.84μs | 12.2ns | 45.5ns | 0 | 0 | 0 | 2.26 KB |
| master | EnrichedLog |
net472 | 7.52μs | 6.02ns | 22.5ns | 0.302 | 0 | 0 | 2.08 KB |
| #7779 | EnrichedLog |
net6.0 | 5.21μs | 18ns | 69.7ns | 0 | 0 | 0 | 2.26 KB |
| #7779 | EnrichedLog |
netcoreapp3.1 | 7.11μs | 8.9ns | 34.5ns | 0 | 0 | 0 | 2.26 KB |
| #7779 | EnrichedLog |
net472 | 7.53μs | 9.5ns | 36.8ns | 0.298 | 0 | 0 | 2.08 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.02μs | 9.72ns | 37.6ns | 0 | 0 | 0 | 1.2 KB |
| master | SendReceive |
netcoreapp3.1 | 2.61μs | 13.1ns | 58.5ns | 0 | 0 | 0 | 1.2 KB |
| master | SendReceive |
net472 | 3.09μs | 2.48ns | 9.61ns | 0.185 | 0 | 0 | 1.2 KB |
| #7779 | SendReceive |
net6.0 | 2.02μs | 9.07ns | 35.1ns | 0 | 0 | 0 | 1.2 KB |
| #7779 | SendReceive |
netcoreapp3.1 | 2.64μs | 12.9ns | 54.5ns | 0 | 0 | 0 | 1.2 KB |
| #7779 | SendReceive |
net472 | 3.07μs | 2.96ns | 11.4ns | 0.184 | 0 | 0 | 1.2 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.09μs | 17.4ns | 67.5ns | 0 | 0 | 0 | 1.58 KB |
| master | EnrichedLog |
netcoreapp3.1 | 5.8μs | 11.4ns | 44.2ns | 0 | 0 | 0 | 1.63 KB |
| master | EnrichedLog |
net472 | 6.73μs | 9.84ns | 38.1ns | 0.303 | 0 | 0 | 2.03 KB |
| #7779 | EnrichedLog |
net6.0 | 4.23μs | 4.64ns | 17.3ns | 0 | 0 | 0 | 1.58 KB |
| #7779 | EnrichedLog |
netcoreapp3.1 | 5.67μs | 13.1ns | 50.8ns | 0 | 0 | 0 | 1.63 KB |
| #7779 | EnrichedLog |
net472 | 6.53μs | 6.35ns | 22.9ns | 0.292 | 0 | 0 | 2.03 KB |
Benchmarks.Trace.SpanBenchmark - Slower ⚠️ Same allocations ✔️
Slower ⚠️ in #7779
Benchmark
diff/base
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net6.0
1.135
914.79
1,037.96
| Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
|---|---|---|---|---|
| Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net6.0 | 1.135 | 914.79 | 1,037.96 |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | StartFinishSpan |
net6.0 | 764ns | 3.95ns | 18.5ns | 0 | 0 | 0 | 576 B |
| master | StartFinishSpan |
netcoreapp3.1 | 959ns | 4.95ns | 23.2ns | 0 | 0 | 0 | 576 B |
| master | StartFinishSpan |
net472 | 927ns | 0.386ns | 1.5ns | 0.0885 | 0 | 0 | 578 B |
| master | StartFinishScope |
net6.0 | 905ns | 4.85ns | 26.1ns | 0 | 0 | 0 | 696 B |
| master | StartFinishScope |
netcoreapp3.1 | 1.19μs | 2.53ns | 9.8ns | 0 | 0 | 0 | 696 B |
| master | StartFinishScope |
net472 | 1.12μs | 0.538ns | 2.01ns | 0.102 | 0 | 0 | 658 B |
| #7779 | StartFinishSpan |
net6.0 | 786ns | 3.8ns | 14.7ns | 0 | 0 | 0 | 576 B |
| #7779 | StartFinishSpan |
netcoreapp3.1 | 984ns | 0.404ns | 1.57ns | 0 | 0 | 0 | 576 B |
| #7779 | StartFinishSpan |
net472 | 918ns | 0.557ns | 2.16ns | 0.088 | 0 | 0 | 578 B |
| #7779 | StartFinishScope |
net6.0 | 1.03μs | 4.69ns | 19.9ns | 0 | 0 | 0 | 696 B |
| #7779 | StartFinishScope |
netcoreapp3.1 | 1.22μs | 1.51ns | 5.86ns | 0 | 0 | 0 | 696 B |
| #7779 | StartFinishScope |
net472 | 1.12μs | 0.583ns | 2.26ns | 0.0991 | 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 | 1.08μs | 5.76ns | 28.8ns | 0 | 0 | 0 | 696 B |
| master | RunOnMethodBegin |
netcoreapp3.1 | 1.47μs | 7.42ns | 32.3ns | 0 | 0 | 0 | 696 B |
| master | RunOnMethodBegin |
net472 | 1.46μs | 0.673ns | 2.61ns | 0.102 | 0 | 0 | 658 B |
| #7779 | RunOnMethodBegin |
net6.0 | 1.07μs | 5.23ns | 23.4ns | 0 | 0 | 0 | 696 B |
| #7779 | RunOnMethodBegin |
netcoreapp3.1 | 1.45μs | 5.66ns | 21.9ns | 0 | 0 | 0 | 696 B |
| #7779 | RunOnMethodBegin |
net472 | 1.47μs | 4.49ns | 17.4ns | 0.104 | 0 | 0 | 658 B |
bouwkast
left a comment
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.
Awesome thanks!
Summary of changes
iis check <site>to check for partial trust or the legacy CAS modeReason for change
We recently had an escalation where legacy CAS mode was the problem, but it took a long time to identify. Adding a check to the tool should improve the time to resolution (and allow customers to identify the issue themselves) more quickly.
Implementation details
Read the
system.web/trustnode from the application's web.config and check thelevelandlegacyCasModelproperties. If they reveal a problem, report it. I've largely ignored the .NET Core/.NET Framework aspect here, as it's super niche. Worst case we report something that doesn't actually matter (but it would be a weird config setup).Also noticed that
GetAppSettingswasn't getting the correct settings for the app,.Test coverage
Manually tested it all locally with various configurations, setting the values in root and leaf configs, etc and confirmed it all works as expected (config flattening including on nested apps).
Other details
Theoretically
runtime/NetFx40_LegacySecurityPolicyshould play into it too, but AFAICT, that doesn't apply to aspnet apps, so it's not the focus of this PR. If we need to, we could check it for non-iis apps, but that's pretty niche right now.