Conversation
351024c to
48a3bea
Compare
BenchmarksBenchmark execution time: 2026-02-02 16:41:22 Comparing candidate commit f8c8abf in PR branch Found 8 performance improvements and 15 performance regressions! Performance is the same for 150 metrics, 19 unstable metrics. scenario:Benchmarks.Trace.ActivityBenchmark.StartStopWithChild netcoreapp3.1
scenario:Benchmarks.Trace.AgentWriterBenchmark.WriteAndFlushEnrichedTraces net6.0
scenario:Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleSimpleBody net6.0
scenario:Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorMoreComplexBody net6.0
scenario:Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorSimpleBody net6.0
scenario:Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs net6.0
scenario:Benchmarks.Trace.AspNetCoreBenchmark.SendRequest net472
scenario:Benchmarks.Trace.AspNetCoreBenchmark.SendRequest net6.0
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 net6.0
scenario:Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice netcoreapp3.1
scenario:Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool net472
scenario:Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch net6.0
scenario:Benchmarks.Trace.SingleSpanAspNetCoreBenchmark.SingleSpanAspNetCore netcoreapp3.1
scenario:Benchmarks.Trace.SpanBenchmark.StartFinishScope netcoreapp3.1
scenario:Benchmarks.Trace.SpanBenchmark.StartFinishSpan net6.0
scenario:Benchmarks.Trace.SpanBenchmark.StartFinishTwoScopes net6.0
|
This comment has been minimized.
This comment has been minimized.
48a3bea to
a68c150
Compare
Execution-Time Benchmarks Report ⏱️Execution-time results for samples comparing This PR (7956) 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 (7956) - mean (80ms) : 77, 83
master - mean (80ms) : 77, 82
section Bailout
This PR (7956) - mean (84ms) : 82, 87
master - mean (84ms) : 82, 86
section CallTarget+Inlining+NGEN
This PR (7956) - mean (1,117ms) : 1072, 1161
master - mean (1,116ms) : 1068, 1163
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 (7956) - mean (126ms) : 123, 129
master - mean (127ms) : 124, 130
section Bailout
This PR (7956) - mean (126ms) : 124, 129
master - mean (128ms) : 125, 131
section CallTarget+Inlining+NGEN
This PR (7956) - mean (819ms) : 766, 871
master - mean (810ms) : 758, 862
FakeDbCommand (.NET 6)gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (7956) - mean (110ms) : 108, 113
master - mean (110ms) : 105, 115
section Bailout
This PR (7956) - mean (112ms) : 109, 114
master - mean (111ms) : 108, 114
section CallTarget+Inlining+NGEN
This PR (7956) - mean (777ms) : 718, 837
master - mean (770ms) : 701, 838
FakeDbCommand (.NET 8)gantt
title Execution time (ms) FakeDbCommand (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (7956) - mean (110ms) : 106, 113
master - mean (108ms) : 105, 112
section Bailout
This PR (7956) - mean (112ms) : 109, 115
master - mean (109ms) : 106, 112
section CallTarget+Inlining+NGEN
This PR (7956) - mean (739ms) : 720, 758
master - mean (725ms) : 700, 750
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 (7956) - mean (213ms) : 200, 225
master - mean (211ms) : 201, 221
section Bailout
This PR (7956) - mean (216ms) : 207, 224
master - mean (223ms) : 209, 236
section CallTarget+Inlining+NGEN
This PR (7956) - mean (1,198ms) : 1149, 1247
master - mean (1,224ms) : 1139, 1308
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 (7956) - mean (300ms) : 286, 314
master - mean (301ms) : 289, 314
section Bailout
This PR (7956) - mean (305ms) : 284, 327
master - mean (302ms) : 287, 317
section CallTarget+Inlining+NGEN
This PR (7956) - mean (977ms) : 921, 1032
master - mean (984ms) : 929, 1038
HttpMessageHandler (.NET 6)gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (7956) - mean (290ms) : 279, 302
master - mean (294ms) : 280, 309
section Bailout
This PR (7956) - mean (292ms) : 279, 306
master - mean (302ms) : 280, 324
section CallTarget+Inlining+NGEN
This PR (7956) - mean (966ms) : 910, 1023
master - mean (976ms) : 917, 1034
HttpMessageHandler (.NET 8)gantt
title Execution time (ms) HttpMessageHandler (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (7956) - mean (297ms) : 280, 313
master - mean (300ms) : 281, 319
section Bailout
This PR (7956) - mean (298ms) : 284, 312
master - mean (302ms) : 276, 328
section CallTarget+Inlining+NGEN
This PR (7956) - mean (911ms) : 805, 1018
master - mean (965ms) : 858, 1072
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ba4ecf7 to
214f1b1
Compare
997966f to
1601550
Compare
dfee890 to
dcc4b43
Compare
profiler/src/ProfilerEngine/Datadog.Profiler.Native/CorProfilerCallback.cpp
Outdated
Show resolved
Hide resolved
profiler/src/ProfilerEngine/Datadog.Profiler.Native/CorProfilerCallback.cpp
Outdated
Show resolved
Hide resolved
profiler/src/ProfilerEngine/Datadog.Profiler.Native/CorProfilerCallback.cpp
Outdated
Show resolved
Hide resolved
profiler/src/ProfilerEngine/Datadog.Profiler.Native/CorProfilerCallback.cpp
Outdated
Show resolved
Hide resolved
profiler/src/ProfilerEngine/Datadog.Profiler.Native/CorProfilerCallback.cpp
Outdated
Show resolved
Hide resolved
profiler/src/ProfilerEngine/Datadog.Profiler.Native/CorProfilerCallback.cpp
Outdated
Show resolved
Hide resolved
profiler/src/ProfilerEngine/Datadog.Profiler.Native/EnvironmentVariables.h
Outdated
Show resolved
Hide resolved
profiler/src/ProfilerEngine/Datadog.Profiler.Native/CorProfilerCallback.cpp
Outdated
Show resolved
Hide resolved
profiler/src/ProfilerEngine/Datadog.Profiler.Native/CorProfilerCallback.cpp
Outdated
Show resolved
Hide resolved
profiler/src/ProfilerEngine/Datadog.Profiler.Native/CorProfilerCallback.cpp
Outdated
Show resolved
Hide resolved
profiler/src/ProfilerEngine/Datadog.Profiler.Native/FrameStore.cpp
Outdated
Show resolved
Hide resolved
profiler/src/ProfilerEngine/Datadog.Profiler.Native/ManagedCodeCache.h
Outdated
Show resolved
Hide resolved
profiler/src/ProfilerEngine/Datadog.Profiler.Native/ManagedCodeCache.cpp
Outdated
Show resolved
Hide resolved
profiler/src/ProfilerEngine/Datadog.Profiler.Native/ManagedCodeCache.cpp
Outdated
Show resolved
Hide resolved
profiler/src/ProfilerEngine/Datadog.Profiler.Native/ManagedCodeCache.cpp
Outdated
Show resolved
Hide resolved
profiler/src/ProfilerEngine/Datadog.Profiler.Native/ManagedCodeCache.cpp
Outdated
Show resolved
Hide resolved
profiler/src/ProfilerEngine/Datadog.Profiler.Native/ManagedCodeCache.h
Outdated
Show resolved
Hide resolved
profiler/src/ProfilerEngine/Datadog.Profiler.Native/ManagedCodeCache.cpp
Show resolved
Hide resolved
profiler/src/ProfilerEngine/Datadog.Profiler.Native/ManagedCodeCache.cpp
Outdated
Show resolved
Hide resolved
profiler/src/ProfilerEngine/Datadog.Profiler.Native/ManagedCodeCache.cpp
Outdated
Show resolved
Hide resolved
profiler/src/ProfilerEngine/Datadog.Profiler.Native/ManagedCodeCache.cpp
Outdated
Show resolved
Hide resolved
profiler/src/ProfilerEngine/Datadog.Profiler.Native.Windows/AutoResetEvent.cpp
Outdated
Show resolved
Hide resolved
profiler/src/ProfilerEngine/Datadog.Profiler.Native.Windows/AutoResetEvent.cpp
Outdated
Show resolved
Hide resolved
profiler/src/ProfilerEngine/Datadog.Profiler.Native.Windows/AutoResetEvent.cpp
Outdated
Show resolved
Hide resolved
68f017e to
7a73bf4
Compare
7a73bf4 to
f8c8abf
Compare
|
|
||
|
|
There was a problem hiding this comment.
remove these 2 empty lines
Summary of changes
Introduce Managed Code cache component.
Reason for change
A managed code cache is a cache that holds managed (code) functions code ranges. The goal is two-fold:
GetFunctionFromIP. This can occur when querying a function Id for an instruction pointer and we race against a deallocation.Implementation details
GetFunctionFromIPto enrich our cache.DD_INTERNAL_PROFILING_USE_MANAGED_CODE_CACHE=1. We will ask customer to set this env var and if crash reports related toGetFunctionFromIPare less frequent, we will make it default.Test coverage
Other details