[CIVIz] Generate MessagePack values at compile time#8221
[CIVIz] Generate MessagePack values at compile time#8221pierotibou wants to merge 1 commit intopierre/mpack-dsmfrom
Conversation
BenchmarksBenchmark execution time: 2026-02-19 01:35:33 Comparing candidate commit 63d795c in PR branch Found 11 performance improvements and 15 performance regressions! Performance is the same for 156 metrics, 10 unstable metrics. scenario:Benchmarks.Trace.ActivityBenchmark.StartStopWithChild net6.0
scenario:Benchmarks.Trace.AgentWriterBenchmark.WriteAndFlushEnrichedTraces net472
scenario:Benchmarks.Trace.AgentWriterBenchmark.WriteAndFlushEnrichedTraces net6.0
scenario:Benchmarks.Trace.AgentWriterBenchmark.WriteAndFlushEnrichedTraces netcoreapp3.1
scenario:Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorSimpleBody net472
scenario:Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorSimpleBody netcoreapp3.1
scenario:Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces net472
scenario:Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces netcoreapp3.1
scenario:Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool net472
scenario:Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool net6.0
scenario:Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch net472
scenario:Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch netcoreapp3.1
scenario:Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync net472
scenario:Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync netcoreapp3.1
scenario:Benchmarks.Trace.HttpClientBenchmark.SendAsync net472
scenario:Benchmarks.Trace.ILoggerBenchmark.EnrichedLog net6.0
scenario:Benchmarks.Trace.RedisBenchmark.SendReceive net6.0
scenario:Benchmarks.Trace.SingleSpanAspNetCoreBenchmark.SingleSpanAspNetCore net6.0
scenario:Benchmarks.Trace.SingleSpanAspNetCoreBenchmark.SingleSpanAspNetCore netcoreapp3.1
scenario:Benchmarks.Trace.SpanBenchmark.StartFinishScope net472
scenario:Benchmarks.Trace.SpanBenchmark.StartFinishScope net6.0
scenario:Benchmarks.Trace.SpanBenchmark.StartFinishSpan net472
scenario:Benchmarks.Trace.SpanBenchmark.StartFinishTwoScopes net472
scenario:Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin net6.0
|
Execution-Time Benchmarks Report ⏱️Execution-time results for samples comparing This PR (8221) 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 (8221) - mean (75ms) : 72, 78
master - mean (77ms) : 75, 79
section Bailout
This PR (8221) - mean (79ms) : 77, 81
master - mean (81ms) : 79, 83
section CallTarget+Inlining+NGEN
This PR (8221) - mean (1,073ms) : 1022, 1124
master - mean (1,098ms) : 1052, 1145
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 (8221) - mean (115ms) : 112, 118
master - mean (119ms) : 116, 122
section Bailout
This PR (8221) - mean (117ms) : 114, 119
master - mean (121ms) : 118, 123
section CallTarget+Inlining+NGEN
This PR (8221) - mean (768ms) : 686, 849
master - mean (772ms) : 716, 828
FakeDbCommand (.NET 6)gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8221) - mean (103ms) : 101, 106
master - mean (105ms) : 101, 110
section Bailout
This PR (8221) - mean (104ms) : 102, 106
master - mean (109ms) : 107, 112
section CallTarget+Inlining+NGEN
This PR (8221) - mean (773ms) : 741, 806
master - mean (764ms) : 689, 840
FakeDbCommand (.NET 8)gantt
title Execution time (ms) FakeDbCommand (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8221) - mean (101ms) : 99, 104
master - mean (105ms) : 101, 109
section Bailout
This PR (8221) - mean (103ms) : 101, 105
master - mean (107ms) : 105, 109
section CallTarget+Inlining+NGEN
This PR (8221) - mean (675ms) : 650, 701
master - mean (686ms) : 661, 711
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 (8221) - mean (193ms) : 190, 197
master - mean (211ms) : 194, 228
section Bailout
This PR (8221) - mean (197ms) : 194, 200
master - mean (215ms) : 198, 233
section CallTarget+Inlining+NGEN
This PR (8221) - mean (1,230ms) : 1171, 1290
master - mean (1,224ms) : 1126, 1322
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 (8221) - mean (278ms) : 272, 284
master - mean (306ms) : 282, 329
section Bailout
This PR (8221) - mean (280ms) : 275, 285
master - mean (310ms) : 281, 340
section CallTarget+Inlining+NGEN
This PR (8221) - mean (940ms) : 901, 980
master - mean (987ms) : 919, 1055
HttpMessageHandler (.NET 6)gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8221) - mean (270ms) : 265, 275
master - mean (304ms) : 271, 336
section Bailout
This PR (8221) - mean (270ms) : 267, 273
master - mean (310ms) : 268, 351
section CallTarget+Inlining+NGEN
This PR (8221) - mean (931ms) : 906, 956
master - mean (991ms) : 893, 1090
HttpMessageHandler (.NET 8)gantt
title Execution time (ms) HttpMessageHandler (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8221) - mean (270ms) : 265, 274
master - mean (309ms) : 271, 347
section Bailout
This PR (8221) - mean (270ms) : 266, 273
master - mean (315ms) : 280, 350
section CallTarget+Inlining+NGEN
This PR (8221) - mean (926ms) : 896, 957
master - mean (971ms) : 863, 1080
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Summary of changes
Generate MessagePack values at compile time in CI Viz MessagePackFormatters
Reason for change
Consistency with SpanMessagePackFormatter and micro optimization of startup time.
Implementation details
Based on top of #8175 and #8220
Pushing as draft as I need to re review with fresh eyes
Test coverage
Covered by current CIVIz tests (which may not be complete as one bug slipped through when I was doing the change)