-
Notifications
You must be signed in to change notification settings - Fork 151
[Profiler] Support Windows pdb format #8096
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
base: master
Are you sure you want to change the base?
Conversation
BenchmarksBenchmark execution time: 2026-01-29 17:28:04 Comparing candidate commit 71de755 in PR branch Found 5 performance improvements and 9 performance regressions! Performance is the same for 164 metrics, 14 unstable metrics. scenario:Benchmarks.Trace.AgentWriterBenchmark.WriteAndFlushEnrichedTraces netcoreapp3.1
scenario:Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleSimpleBody netcoreapp3.1
scenario:Benchmarks.Trace.AspNetCoreBenchmark.SendRequest net6.0
scenario:Benchmarks.Trace.AspNetCoreBenchmark.SendRequest netcoreapp3.1
scenario:Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces net472
scenario:Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces net6.0
scenario:Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces netcoreapp3.1
scenario:Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice netcoreapp3.1
scenario:Benchmarks.Trace.Log4netBenchmark.EnrichedLog net6.0
scenario:Benchmarks.Trace.SerilogBenchmark.EnrichedLog net472
scenario:Benchmarks.Trace.SerilogBenchmark.EnrichedLog net6.0
scenario:Benchmarks.Trace.SingleSpanAspNetCoreBenchmark.SingleSpanAspNetCore net6.0
|
Execution-Time Benchmarks Report ⏱️Execution-time results for samples comparing This PR (8096) 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 (8096) - mean (79ms) : 76, 82
master - mean (78ms) : 76, 80
section Bailout
This PR (8096) - mean (83ms) : 81, 85
master - mean (83ms) : 80, 85
section CallTarget+Inlining+NGEN
This PR (8096) - mean (1,101ms) : 1055, 1147
master - mean (1,099ms) : 1057, 1142
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 (8096) - mean (123ms) : 119, 127
master - mean (124ms) : 120, 128
section Bailout
This PR (8096) - mean (125ms) : 123, 128
master - mean (125ms) : 122, 128
section CallTarget+Inlining+NGEN
This PR (8096) - mean (803ms) : 739, 867
master - mean (801ms) : 743, 859
FakeDbCommand (.NET 6)gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8096) - mean (108ms) : 103, 112
master - mean (107ms) : 104, 111
section Bailout
This PR (8096) - mean (110ms) : 107, 114
master - mean (109ms) : 106, 112
section CallTarget+Inlining+NGEN
This PR (8096) - mean (768ms) : 693, 842
master - mean (766ms) : 690, 842
FakeDbCommand (.NET 8)gantt
title Execution time (ms) FakeDbCommand (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8096) - mean (106ms) : 103, 110
master - mean (107ms) : 103, 111
section Bailout
This PR (8096) - mean (107ms) : 104, 109
master - mean (107ms) : 105, 110
section CallTarget+Inlining+NGEN
This PR (8096) - mean (710ms) : 686, 734
master - mean (709ms) : 686, 732
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 (8096) - mean (195ms) : 190, 199
master - mean (200ms) : 194, 206
section Bailout
This PR (8096) - mean (199ms) : 195, 203
master - mean (204ms) : 201, 207
section CallTarget+Inlining+NGEN
This PR (8096) - mean (1,167ms) : 1083, 1250
master - mean (1,167ms) : 1097, 1236
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 (8096) - mean (285ms) : 275, 295
master - mean (285ms) : 273, 298
section Bailout
This PR (8096) - mean (282ms) : 276, 288
master - mean (289ms) : 280, 297
section CallTarget+Inlining+NGEN
This PR (8096) - mean (938ms) : 883, 992
master - mean (959ms) : 911, 1008
HttpMessageHandler (.NET 6)gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8096) - mean (272ms) : 267, 276
master - mean (274ms) : 269, 279
section Bailout
This PR (8096) - mean (272ms) : 268, 276
master - mean (273ms) : 269, 277
section CallTarget+Inlining+NGEN
This PR (8096) - mean (932ms) : 879, 985
master - mean (934ms) : 867, 1002
HttpMessageHandler (.NET 8)gantt
title Execution time (ms) HttpMessageHandler (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8096) - mean (272ms) : 268, 276
master - mean (272ms) : 266, 278
section Bailout
This PR (8096) - mean (273ms) : 266, 279
master - mean (273ms) : 268, 277
section CallTarget+Inlining+NGEN
This PR (8096) - mean (846ms) : 825, 867
master - mean (844ms) : 827, 862
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Summary of changes
Add Windows PDB format support in addition to the existing Portable PDB format.
Reason for change
Needed for old .NET Framework applications
Implementation details
Limited to the start of the method (not the exact position in the source code file based on the Instruction pointer)
Test coverage
Unit tests have been added for both Portable and Windows parsers
Other details