dd-trace-dotnet icon indicating copy to clipboard operation
dd-trace-dotnet copied to clipboard

WIP

Open gleocadie opened this issue 2 years ago • 4 comments

Summary of changes

Reason for change

Implementation details

Test coverage

Other details

gleocadie avatar Nov 29 '23 14:11 gleocadie

Datadog Report

Branch report: gleocadie/run-subset-profiler-tests-on-tracer-pr Commit report: 9e7cd13

:x: dd-trace-dotnet: 2 Failed (2 Known Flaky), 0 New Flaky, 284853 Passed, 627 Skipped, 52m 35.1s Wall Time

:x: Failed Tests (2)

  • CheckCpuTimeForGcThreadsIsReported - Datadog.Profiler.IntegrationTests.GarbageCollections.GarbageCollectorCpuTimeTest - :snowflake: Known flaky - Details

    Expand for error
    xpected SamplesHelper.GetSamples(runner.Environment.PprofDir) {(|lm:System.Private.CoreLib |ns:System.Collections.Generic |ct:EqualityComparer |cg:<T> |fn:.cctor |fg: |sg:()
    lm:System.Private.CoreLib |ns:System.Collections.Generic |ct:NonRandomizedStringEqualityComparer |cg: |fn:.cctor |fg: |sg:()
    lm:System.Private.CoreLib |ns:System.Collections.Generic |ct:NonRandomizedStringEqualityComparer |cg: |fn:GetStringComparer |fg: |sg:(object )
    lm:System.Private.CoreLib |ns:System.Collections.Generic |ct:Dictionary |cg:<TKey, TVal> |fn:.ctor |fg: |sg:(int capacity, System.Collections.Generic.IEqualityComparer<TKey> comparer)
    lm:System.Private.CoreLib |ns:System |ct:AppContext |cg: |fn:Setup |fg: |sg:(char** pNames, char** pValues, int count), Perftools.Profiles.Label[], System.Int64[]), (|lm:System.Private.CoreLib |ns:System |ct:RuntimeType.RuntimeTypeCache.MemberInfoCache |cg:<T> |fn:Populate |fg: |sg:(string name, MemberListType listType, CacheType cacheType)
    lm:System.Private.CoreLib |ns:System |ct:RuntimeType |cg: |fn:GetPropertyCandidates |fg: |sg:(string name, System.Reflection.BindingFlags bindingAttr, System.Type[] types, bool allowPrefixLookup)
    lm:System.Private.CoreLib |ns:System |ct:RuntimeType |cg: |fn:GetPropertyImpl |fg: |sg:(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Type returnType, System.Type[] types, System.Reflection.ParameterModifier[] modifiers)
    lm:System.Private.CoreLib |ns:System.Reflection |ct:CustomAttribute |cg: |fn:AddCustomAttributes |fg: |sg:(ListBuilder<object>& attributes, System.Reflection.RuntimeModule decoratedModule, int decoratedMetadataToken, System.RuntimeType attributeFilterType, bool mustBeInheritable, ListBuilder<object> derivedAttributes)
    lm:System.Private.CoreLib |ns:System.Reflection |ct:CustomAttribute |cg: |fn:GetCustomAttributes |fg: |sg:(System.Reflection.RuntimeModule decoratedModule, int decoratedMetadataToken, int pcaCount, System.RuntimeType attributeFilterType)
    lm:System.Private.CoreLib |ns:System.Reflection |ct:CustomAttribute |cg: |fn:GetCustomAttributes |fg: |sg:(System.RuntimeType type, System.RuntimeType caType, bool inherit)
    ..
    
  • CheckTimestampAsLabel - Datadog.Profiler.IntegrationTests.Timeline.TimelineTest - :snowflake: Known flaky - Details

    Expand for error
    xit code of "Samples.BuggyBits.exe" should be 0 instead of -1073741819 (= 0xC0000005)
    xpected: True
    ctual:   False
    

datadog-ddstaging[bot] avatar Nov 29 '23 16:11 datadog-ddstaging[bot]

Execution-Time Benchmarks Report :stopwatch:

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:

  • Welch test with statistical test for significance of 5%
  • Only results indicating a difference greater than 5% and 5 ms are considered.

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 (4937) - mean (73ms)  : 61, 85
     .   : milestone, 73,
    master - mean (71ms)  : 60, 83
     .   : milestone, 71,

    section CallTarget+Inlining+NGEN
    This PR (4937) - mean (1,000ms)  : 979, 1021
     .   : milestone, 1000,
    master - mean (998ms)  : 972, 1023
     .   : milestone, 998,

gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4937) - mean (106ms)  : 102, 110
     .   : milestone, 106,
    master - mean (107ms)  : 102, 112
     .   : milestone, 107,

    section CallTarget+Inlining+NGEN
    This PR (4937) - mean (694ms)  : 677, 711
     .   : milestone, 694,
    master - mean (691ms)  : 668, 714
     .   : milestone, 691,

gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4937) - mean (90ms)  : 87, 94
     .   : milestone, 90,
    master - mean (90ms)  : 87, 92
     .   : milestone, 90,

    section CallTarget+Inlining+NGEN
    This PR (4937) - mean (662ms)  : 638, 686
     .   : milestone, 662,
    master - mean (660ms)  : 638, 682
     .   : milestone, 660,

gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4937) - mean (189ms)  : 186, 192
     .   : milestone, 189,
    master - mean (189ms)  : 186, 192
     .   : milestone, 189,

    section CallTarget+Inlining+NGEN
    This PR (4937) - mean (1,129ms)  : 1105, 1152
     .   : milestone, 1129,
    master - mean (1,137ms)  : 1112, 1161
     .   : milestone, 1137,

gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4937) - mean (273ms)  : 268, 277
     .   : milestone, 273,
    master - mean (272ms)  : 269, 276
     .   : milestone, 272,

    section CallTarget+Inlining+NGEN
    This PR (4937) - mean (1,095ms)  : 1067, 1123
     .   : milestone, 1095,
    master - mean (1,088ms)  : 1062, 1115
     .   : milestone, 1088,

gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4937) - mean (261ms)  : 257, 265
     .   : milestone, 261,
    master - mean (262ms)  : 259, 264
     .   : milestone, 262,

    section CallTarget+Inlining+NGEN
    This PR (4937) - mean (1,058ms)  : 1022, 1095
     .   : milestone, 1058,
    master - mean (1,062ms)  : 1033, 1091
     .   : milestone, 1062,

andrewlock avatar Nov 29 '23 16:11 andrewlock

Throughput/Crank Report:zap:

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 (4937) (10.944M)   : 0, 10944476
    master (11.333M)   : 0, 11332518
    benchmarks/2.9.0 (11.258M)   : 0, 11257868

    section Automatic
    This PR (4937) (7.481M)   : 0, 7481438
    master (7.657M)   : 0, 7657438
    benchmarks/2.9.0 (8.046M)   : 0, 8046105

    section Trace stats
    This PR (4937) (7.832M)   : 0, 7831989
    master (8.054M)   : 0, 8053668

    section Manual
    This PR (4937) (8.475M)   : crit ,0, 8475464
    master (10.004M)   : 0, 10003794

    section Manual + Automatic
    This PR (4937) (7.149M)   : 0, 7149119
    master (7.437M)   : 0, 7436536

    section Version Conflict
    This PR (4937) (6.376M)   : crit ,0, 6375987
    master (6.771M)   : 0, 6770626

gantt
    title Throughput Linux arm64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (4937) (9.524M)   : 0, 9523627
    master (9.642M)   : 0, 9641863
    benchmarks/2.9.0 (9.571M)   : 0, 9571091

    section Automatic
    This PR (4937) (6.655M)   : 0, 6654983
    master (6.503M)   : 0, 6503245

    section Trace stats
    This PR (4937) (6.853M)   : 0, 6852717
    master (6.987M)   : 0, 6987377

    section Manual
    This PR (4937) (8.375M)   : 0, 8374817
    master (8.537M)   : 0, 8536637

    section Manual + Automatic
    This PR (4937) (6.164M)   : 0, 6163664
    master (6.089M)   : 0, 6089321

    section Version Conflict
    This PR (4937) (5.544M)   : 0, 5543569
    master (5.724M)   : 0, 5723643

gantt
    title Throughput Windows x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (4937) (9.793M)   : 0, 9792846
    master (10.254M)   : 0, 10253707
    benchmarks/2.9.0 (8.981M)   : 0, 8981100

    section Automatic
    This PR (4937) (7.339M)   : 0, 7338746
    master (6.421M)   : 0, 6420836
    benchmarks/2.9.0 (6.621M)   : 0, 6621015

    section Trace stats
    This PR (4937) (7.600M)   : 0, 7599677
    master (6.589M)   : 0, 6589319

    section Manual
    This PR (4937) (8.983M)   : 0, 8983404
    master (7.901M)   : 0, 7900787

    section Manual + Automatic
    This PR (4937) (6.941M)   : 0, 6940678
    master (6.157M)   : 0, 6157174

    section Version Conflict
    This PR (4937) (6.289M)   : 0, 6289091
    master (5.598M)   : 0, 5598196

gantt
    title Throughput Linux x64 (ASM) (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    master (7.353M)   : 0, 7352773
    benchmarks/2.9.0 (7.805M)   : 0, 7805126

    section No attack
    master (1.971M)   : 0, 1971063
    benchmarks/2.9.0 (3.177M)   : 0, 3177224

    section Attack
    master (1.553M)   : 0, 1553355
    benchmarks/2.9.0 (2.505M)   : 0, 2504790

    section Blocking
    master (3.237M)   : 0, 3236693

    section IAST default
    master (6.655M)   : 0, 6654796

    section IAST full
    master (5.949M)   : 0, 5949094

    section Base vuln
    master (0.974M)   : 0, 974472

    section IAST vuln
    master (0.921M)   : 0, 920725

andrewlock avatar Nov 30 '23 09:11 andrewlock

Benchmarks Report :snail:

Benchmarks for #4937 compared to master:

  • 4 benchmarks are faster, with geometric mean 1.279
  • 3 benchmarks are slower, with geometric mean 1.161
  • 1 benchmarks have fewer allocations

The following thresholds were used for comparing the benchmark speeds:

  • Mann–Whitney U test with statistical test for significance of 5%
  • Only results indicating a difference greater than 10% and 0.3 ns are considered.

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.ActivityBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 8.66μs 47.9ns 292ns 0.0295 0.0126 0 7.48 KB
master StartStopWithChild netcoreapp3.1 10.9μs 57.5ns 309ns 0.0224 0.0112 0 7.58 KB
master StartStopWithChild net472 16.9μs 50.7ns 196ns 1.33 0.356 0.11 7.96 KB
#4937 StartStopWithChild net6.0 8.67μs 46.6ns 272ns 0.0212 0.00849 0 7.48 KB
#4937 StartStopWithChild netcoreapp3.1 10.8μs 58.2ns 340ns 0.0261 0.0104 0 7.57 KB
#4937 StartStopWithChild net472 17.1μs 51.9ns 201ns 1.35 0.343 0.103 7.96 KB
Benchmarks.Trace.AgentWriterBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 461μs 210ns 814ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 643μs 143ns 554ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 796μs 77.8ns 280ns 0.398 0 0 3.3 KB
#4937 WriteAndFlushEnrichedTraces net6.0 467μs 153ns 594ns 0 0 0 2.7 KB
#4937 WriteAndFlushEnrichedTraces netcoreapp3.1 640μs 181ns 651ns 0 0 0 2.7 KB
#4937 WriteAndFlushEnrichedTraces net472 796μs 439ns 1.7μs 0.398 0 0 3.3 KB
Benchmarks.Trace.Asm.AppSecBodyBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #4937

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorSimpleBody‑netcoreapp3.1 1.216 240.34 197.67

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net6.0 43.8μs 26.3ns 102ns 0.022 0 0 1.77 KB
master AllCycleSimpleBody netcoreapp3.1 46.6μs 102ns 367ns 0.0233 0 0 1.74 KB
master AllCycleSimpleBody net472 49.8μs 21.9ns 84.8ns 0.268 0 0 1.81 KB
master AllCycleMoreComplexBody net6.0 214μs 391ns 1.46μs 0.108 0 0 9.25 KB
master AllCycleMoreComplexBody netcoreapp3.1 226μs 168ns 629ns 0.112 0 0 9.14 KB
master AllCycleMoreComplexBody net472 242μs 279ns 965ns 1.44 0 0 9.32 KB
master ObjectExtractorSimpleBody net6.0 129ns 0.0506ns 0.196ns 0.00395 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 240ns 0.0901ns 0.349ns 0.00372 0 0 272 B
master ObjectExtractorSimpleBody net472 151ns 0.0978ns 0.379ns 0.0446 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 2.83μs 0.993ns 3.72ns 0.0538 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 3.71μs 1.35ns 5.06ns 0.0502 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 3.45μs 1.96ns 7.58ns 0.602 0.00688 0 3.8 KB
#4937 AllCycleSimpleBody net6.0 43.4μs 117ns 439ns 0.0215 0 0 1.77 KB
#4937 AllCycleSimpleBody netcoreapp3.1 46.4μs 75.4ns 292ns 0.0233 0 0 1.74 KB
#4937 AllCycleSimpleBody net472 49.8μs 23.9ns 92.4ns 0.268 0 0 1.81 KB
#4937 AllCycleMoreComplexBody net6.0 216μs 643ns 2.49μs 0.106 0 0 9.25 KB
#4937 AllCycleMoreComplexBody netcoreapp3.1 225μs 275ns 1.03μs 0.112 0 0 9.14 KB
#4937 AllCycleMoreComplexBody net472 236μs 79.4ns 308ns 1.41 0 0 9.32 KB
#4937 ObjectExtractorSimpleBody net6.0 129ns 0.045ns 0.168ns 0.00393 0 0 280 B
#4937 ObjectExtractorSimpleBody netcoreapp3.1 198ns 0.103ns 0.386ns 0.00378 0 0 272 B
#4937 ObjectExtractorSimpleBody net472 153ns 0.087ns 0.314ns 0.0446 0 0 281 B
#4937 ObjectExtractorMoreComplexBody net6.0 2.86μs 0.839ns 2.91ns 0.0533 0 0 3.78 KB
#4937 ObjectExtractorMoreComplexBody netcoreapp3.1 3.81μs 1.6ns 6.22ns 0.0515 0 0 3.69 KB
#4937 ObjectExtractorMoreComplexBody net472 3.4μs 1.77ns 6.62ns 0.602 0.00512 0 3.8 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWaf(args=NestedMap (10)) net6.0 49.4μs 18.2ns 68.1ns 0.218 0 0 16.06 KB
master RunWaf(args=NestedMap (10)) netcoreapp3.1 68.4μs 237ns 886ns 0.223 0 0 16.06 KB
master RunWaf(args=NestedMap (10)) net472 96.4μs 505ns 2.52μs 2.56 0.093 0 16.14 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) net6.0 120μs 62.1ns 241ns 0.3 0 0 22.41 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) netcoreapp3.1 137μs 608ns 2.92μs 0.278 0 0 22.36 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) net472 173μs 166ns 645ns 3.54 0.164 0 22.7 KB
master RunWaf(args=NestedMap (100)) net6.0 104μs 41.7ns 161ns 0.426 0 0 32.76 KB
master RunWaf(args=NestedMap (100)) netcoreapp3.1 137μs 441ns 1.71μs 0.449 0 0 33.33 KB
master RunWaf(args=NestedMap (100)) net472 182μs 58.2ns 225ns 5.26 0.363 0 33.67 KB
master RunWafWithAttack(args=Neste(...)tack) [23]) net6.0 175μs 162ns 629ns 0.492 0 0 39.1 KB
master RunWafWithAttack(args=Neste(...)tack) [23]) netcoreapp3.1 205μs 1.08μs 5.3μs 0.526 0 0 39.63 KB
master RunWafWithAttack(args=Neste(...)tack) [23]) net472 263μs 1.23μs 4.77μs 6.33 0.517 0 40.23 KB
master RunWaf(args=NestedMap (20)) net6.0 99.3μs 31.3ns 121ns 0.44 0 0 32.18 KB
master RunWaf(args=NestedMap (20)) netcoreapp3.1 135μs 755ns 4.89μs 0.407 0 0 32.3 KB
master RunWaf(args=NestedMap (20)) net472 183μs 774ns 3μs 5.16 0.362 0 32.63 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) net6.0 176μs 81.7ns 316ns 0.526 0 0 38.53 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) netcoreapp3.1 208μs 195ns 729ns 0.498 0 0 38.6 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) net472 256μs 197ns 738ns 6.11 0.509 0 39.2 KB
#4937 RunWaf(args=NestedMap (10)) net6.0 50.8μs 22.5ns 84.1ns 0.227 0 0 16.06 KB
#4937 RunWaf(args=NestedMap (10)) netcoreapp3.1 65.9μs 335ns 1.57μs 0.194 0 0 16.06 KB
#4937 RunWaf(args=NestedMap (10)) net472 95.6μs 231ns 896ns 2.52 0.0951 0 16.14 KB
#4937 RunWafWithAttack(args=Neste(...)tack) [22]) net6.0 118μs 616ns 3.2μs 0.287 0 0 22.41 KB
#4937 RunWafWithAttack(args=Neste(...)tack) [22]) netcoreapp3.1 140μs 763ns 4.39μs 0.278 0 0 22.36 KB
#4937 RunWafWithAttack(args=Neste(...)tack) [22]) net472 167μs 166ns 620ns 3.55 0.165 0 22.7 KB
#4937 RunWaf(args=NestedMap (100)) net6.0 108μs 136ns 525ns 0.432 0 0 32.76 KB
#4937 RunWaf(args=NestedMap (100)) netcoreapp3.1 128μs 634ns 2.61μs 0.438 0 0 33.33 KB
#4937 RunWaf(args=NestedMap (100)) net472 188μs 807ns 3.12μs 5.35 0.369 0 33.67 KB
#4937 RunWafWithAttack(args=Neste(...)tack) [23]) net6.0 174μs 124ns 481ns 0.485 0 0 39.1 KB
#4937 RunWafWithAttack(args=Neste(...)tack) [23]) netcoreapp3.1 207μs 707ns 2.64μs 0.498 0 0 39.63 KB
#4937 RunWafWithAttack(args=Neste(...)tack) [23]) net472 266μs 946ns 3.66μs 6.35 0.519 0 40.23 KB
#4937 RunWaf(args=NestedMap (20)) net6.0 100μs 24.7ns 88.9ns 0.426 0 0 32.18 KB
#4937 RunWaf(args=NestedMap (20)) netcoreapp3.1 128μs 575ns 2.23μs 0.432 0 0 32.3 KB
#4937 RunWaf(args=NestedMap (20)) net472 187μs 694ns 2.5μs 5.17 0.363 0 32.63 KB
#4937 RunWafWithAttack(args=Neste(...)tack) [22]) net6.0 173μs 953ns 5.72μs 0.488 0 0 38.53 KB
#4937 RunWafWithAttack(args=Neste(...)tack) [22]) netcoreapp3.1 207μs 938ns 3.63μs 0.503 0 0 38.6 KB
#4937 RunWafWithAttack(args=Neste(...)tack) [22]) net472 257μs 199ns 772ns 6.19 0.515 0 39.2 KB
Benchmarks.Trace.AspNetCoreBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net6.0 174μs 189ns 733ns 0.259 0 0 18.25 KB
master SendRequest netcoreapp3.1 193μs 246ns 955ns 0.194 0 0 20.41 KB
master SendRequest net472 0.00055ns 0.0002ns 0.000749ns 0 0 0 0 b
#4937 SendRequest net6.0 174μs 276ns 1.07μs 0.174 0 0 18.25 KB
#4937 SendRequest netcoreapp3.1 192μs 260ns 1.01μs 0.192 0 0 20.41 KB
#4937 SendRequest net472 0.000771ns 0.000256ns 0.000991ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed :heavy_check_mark: Fewer allocations :tada:

Fewer allocations :tada: in #4937

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0 41.65 KB 41.41 KB -237 B -0.57%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 567μs 231ns 893ns 0.561 0 0 41.65 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 657μs 1.35μs 5.22μs 0.324 0 0 41.79 KB
master WriteAndFlushEnrichedTraces net472 822μs 3.45μs 13.3μs 8.12 2.44 0.406 53.22 KB
#4937 WriteAndFlushEnrichedTraces net6.0 540μs 1.19μs 4.44μs 0.556 0 0 41.41 KB
#4937 WriteAndFlushEnrichedTraces netcoreapp3.1 648μs 1.64μs 6.15μs 0.324 0 0 41.81 KB
#4937 WriteAndFlushEnrichedTraces net472 848μs 4.06μs 16.2μs 8.13 2.57 0.428 53.23 KB
Benchmarks.Trace.DbCommandBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #4937

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑net6.0 1.146 1,205.07 1,051.60

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteNonQuery net6.0 1.21μs 0.998ns 3.86ns 0.011 0 0 768 B
master ExecuteNonQuery netcoreapp3.1 1.45μs 0.774ns 2.79ns 0.0103 0 0 768 B
master ExecuteNonQuery net472 1.79μs 0.722ns 2.79ns 0.116 0.000896 0 730 B
#4937 ExecuteNonQuery net6.0 1.05μs 0.409ns 1.58ns 0.0105 0 0 768 B
#4937 ExecuteNonQuery netcoreapp3.1 1.4μs 1.66ns 6.41ns 0.0104 0 0 768 B
#4937 ExecuteNonQuery net472 1.72μs 2.48ns 9.59ns 0.116 0 0 730 B
Benchmarks.Trace.ElasticsearchBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master CallElasticsearch net6.0 1.16μs 0.843ns 3.15ns 0.0131 0 0 936 B
master CallElasticsearch netcoreapp3.1 1.55μs 0.667ns 2.31ns 0.0124 0 0 936 B
master CallElasticsearch net472 2.45μs 0.387ns 1.45ns 0.151 0 0 955 B
master CallElasticsearchAsync net6.0 1.28μs 0.491ns 1.77ns 0.0124 0 0 912 B
master CallElasticsearchAsync netcoreapp3.1 1.66μs 0.678ns 2.54ns 0.0125 0 0 984 B
master CallElasticsearchAsync net472 2.58μs 0.804ns 3.11ns 0.16 0 0 1.01 KB
#4937 CallElasticsearch net6.0 1.14μs 0.486ns 1.82ns 0.0131 0 0 936 B
#4937 CallElasticsearch netcoreapp3.1 1.55μs 1.03ns 3.84ns 0.0124 0 0 936 B
#4937 CallElasticsearch net472 2.44μs 0.827ns 3.09ns 0.151 0 0 955 B
#4937 CallElasticsearchAsync net6.0 1.22μs 0.643ns 2.23ns 0.0128 0 0 912 B
#4937 CallElasticsearchAsync netcoreapp3.1 1.63μs 0.877ns 3.28ns 0.0131 0 0 984 B
#4937 CallElasticsearchAsync net472 2.71μs 2.06ns 7.98ns 0.16 0 0 1.01 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net6.0 1.2μs 0.915ns 3.42ns 0.0127 0 0 912 B
master ExecuteAsync netcoreapp3.1 1.6μs 1.16ns 4.33ns 0.0121 0 0 912 B
master ExecuteAsync net472 1.76μs 0.7ns 2.71ns 0.139 0 0 875 B
#4937 ExecuteAsync net6.0 1.28μs 0.408ns 1.53ns 0.0129 0 0 912 B
#4937 ExecuteAsync netcoreapp3.1 1.65μs 0.63ns 2.44ns 0.0124 0 0 912 B
#4937 ExecuteAsync net472 1.81μs 3.22ns 12.5ns 0.139 0 0 875 B
Benchmarks.Trace.HttpClientBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendAsync net6.0 4.05μs 1.35ns 5.06ns 0.0284 0 0 2.1 KB
master SendAsync netcoreapp3.1 5μs 1.79ns 6.95ns 0.035 0 0 2.63 KB
master SendAsync net472 7.73μs 2.98ns 11.5ns 0.523 0 0 3.31 KB
#4937 SendAsync net6.0 4.03μs 1.39ns 5.37ns 0.0282 0 0 2.1 KB
#4937 SendAsync netcoreapp3.1 4.91μs 2.65ns 10.3ns 0.0343 0 0 2.63 KB
#4937 SendAsync net472 7.87μs 4.59ns 17.8ns 0.523 0 0 3.31 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Slower :warning: Same allocations :heavy_check_mark:

Slower :warning: in #4937

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark(parameters: System.Collections.Generic.List`1[System.String])‑netcoreapp3.1 1.209 52,800.00 63,850.00

Faster :tada: in #4937

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark(parameters: System.Collections.Generic.List`1[System.String])‑net6.0 1.676 109,200.00 65,150.00 bimodal

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark(parameters=Syste(...)ring] [48]) net6.0 52μs 285ns 1.69μs 0 0 0 43.44 KB
master StringConcatBenchmark(parameters=Syste(...)ring] [48]) netcoreapp3.1 53.1μs 269ns 1.17μs 0 0 0 42.64 KB
master StringConcatBenchmark(parameters=Syste(...)ring] [48]) net472 37.8μs 79.6ns 276ns 0 0 0 59.59 KB
master StringConcatAspectBenchmark(parameters=Syste(...)ring] [48]) net6.0 106μs 3.23μs 32.3μs 0 0 0 43.29 KB
master StringConcatAspectBenchmark(parameters=Syste(...)ring] [48]) netcoreapp3.1 103μs 3.85μs 38.1μs 0 0 0 42.64 KB
master StringConcatAspectBenchmark(parameters=Syste(...)ring] [48]) net472 63μs 212ns 763ns 0 0 0 57.34 KB
#4937 StringConcatBenchmark(parameters=Syste(...)ring] [48]) net6.0 58.5μs 666ns 6.52μs 0 0 0 43.44 KB
#4937 StringConcatBenchmark(parameters=Syste(...)ring] [48]) netcoreapp3.1 64.6μs 794ns 7.94μs 0 0 0 42.64 KB
#4937 StringConcatBenchmark(parameters=Syste(...)ring] [48]) net472 38.1μs 117ns 422ns 0 0 0 59.7 KB
#4937 StringConcatAspectBenchmark(parameters=Syste(...)ring] [48]) net6.0 65.3μs 312ns 1.32μs 0 0 0 43.29 KB
#4937 StringConcatAspectBenchmark(parameters=Syste(...)ring] [48]) netcoreapp3.1 110μs 3.73μs 37.1μs 0 0 0 42.64 KB
#4937 StringConcatAspectBenchmark(parameters=Syste(...)ring] [48]) net472 60.9μs 248ns 858ns 0 0 0 57.34 KB
Benchmarks.Trace.ILoggerBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 1.43μs 0.441ns 1.71ns 0.0222 0 0 1.57 KB
master EnrichedLog netcoreapp3.1 2.13μs 1.63ns 6.3ns 0.0213 0 0 1.57 KB
master EnrichedLog net472 2.54μs 5.72ns 22.2ns 0.237 0 0 1.5 KB
#4937 EnrichedLog net6.0 1.48μs 0.579ns 2.09ns 0.0221 0 0 1.57 KB
#4937 EnrichedLog netcoreapp3.1 2.08μs 0.436ns 1.57ns 0.021 0 0 1.57 KB
#4937 EnrichedLog net472 2.61μs 3.41ns 13.2ns 0.238 0 0 1.5 KB
Benchmarks.Trace.Log4netBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 115μs 114ns 443ns 0.0571 0 0 4.21 KB
master EnrichedLog netcoreapp3.1 118μs 144ns 560ns 0 0 0 4.21 KB
master EnrichedLog net472 150μs 120ns 467ns 0.663 0.221 0 4.39 KB
#4937 EnrichedLog net6.0 112μs 65.8ns 255ns 0 0 0 4.21 KB
#4937 EnrichedLog netcoreapp3.1 117μs 95.7ns 371ns 0 0 0 4.21 KB
#4937 EnrichedLog net472 149μs 204ns 789ns 0.664 0.221 0 4.39 KB
Benchmarks.Trace.NLogBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 2.97μs 1.46ns 5.67ns 0.0296 0 0 2.13 KB
master EnrichedLog netcoreapp3.1 4.28μs 2.05ns 7.95ns 0.028 0 0 2.13 KB
master EnrichedLog net472 4.73μs 4.1ns 15.9ns 0.309 0 0 1.95 KB
#4937 EnrichedLog net6.0 3.01μs 0.802ns 3.1ns 0.0302 0 0 2.13 KB
#4937 EnrichedLog netcoreapp3.1 4.06μs 2.07ns 7.46ns 0.0286 0 0 2.13 KB
#4937 EnrichedLog net472 4.94μs 3.37ns 13.1ns 0.307 0 0 1.95 KB
Benchmarks.Trace.RedisBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendReceive net6.0 1.36μs 0.537ns 1.94ns 0.0156 0 0 1.1 KB
master SendReceive netcoreapp3.1 1.81μs 0.876ns 3.39ns 0.0145 0 0 1.1 KB
master SendReceive net472 2.21μs 3.15ns 12.2ns 0.176 0.00111 0 1.12 KB
#4937 SendReceive net6.0 1.34μs 0.618ns 2.39ns 0.0154 0 0 1.1 KB
#4937 SendReceive netcoreapp3.1 1.81μs 0.716ns 2.68ns 0.0145 0 0 1.1 KB
#4937 SendReceive net472 2.13μs 1.65ns 6.39ns 0.177 0 0 1.12 KB
Benchmarks.Trace.SerilogBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 2.71μs 0.835ns 3.12ns 0.0208 0 0 1.53 KB
master EnrichedLog netcoreapp3.1 3.9μs 2.03ns 7.88ns 0.0196 0 0 1.58 KB
master EnrichedLog net472 4.45μs 1.38ns 5.33ns 0.311 0 0 1.97 KB
#4937 EnrichedLog net6.0 2.71μs 0.701ns 2.71ns 0.0203 0 0 1.53 KB
#4937 EnrichedLog netcoreapp3.1 3.93μs 3.23ns 11.6ns 0.0215 0 0 1.58 KB
#4937 EnrichedLog net472 4.41μs 2.22ns 8.58ns 0.311 0 0 1.97 KB
Benchmarks.Trace.SpanBenchmark - Slower :warning: Same allocations :heavy_check_mark:

Slower :warning: in #4937

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑netcoreapp3.1 1.145 660.39 756.27

Faster :tada: in #4937

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net6.0 1.146 627.29 547.54

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net6.0 512ns 0.131ns 0.507ns 0.00741 0 0 536 B
master StartFinishSpan netcoreapp3.1 658ns 1.17ns 4.53ns 0.0073 0 0 536 B
master StartFinishSpan net472 758ns 1.06ns 4.12ns 0.0853 0 0 538 B
master StartFinishScope net6.0 627ns 0.113ns 0.392ns 0.0092 0 0 656 B
master StartFinishScope netcoreapp3.1 818ns 0.312ns 1.21ns 0.0086 0 0 656 B
master StartFinishScope net472 930ns 0.499ns 1.93ns 0.098 0 0 618 B
#4937 StartFinishSpan net6.0 533ns 0.0786ns 0.272ns 0.0075 0 0 536 B
#4937 StartFinishSpan netcoreapp3.1 754ns 1.47ns 5.49ns 0.00731 0 0 536 B
#4937 StartFinishSpan net472 790ns 0.527ns 2.04ns 0.0854 0 0 538 B
#4937 StartFinishScope net6.0 547ns 0.128ns 0.479ns 0.00911 0 0 656 B
#4937 StartFinishScope netcoreapp3.1 882ns 0.54ns 2.09ns 0.00891 0 0 656 B
#4937 StartFinishScope net472 946ns 0.221ns 0.855ns 0.0978 0 0 618 B
Benchmarks.Trace.TraceAnnotationsBenchmark - Slower :warning: Same allocations :heavy_check_mark:

Slower :warning: in #4937

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑net6.0 1.129 575.12 649.32

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunOnMethodBegin net6.0 574ns 0.474ns 1.83ns 0.00906 0 0 656 B
master RunOnMethodBegin netcoreapp3.1 903ns 0.95ns 3.68ns 0.0087 0 0 656 B
master RunOnMethodBegin net472 1.15μs 0.419ns 1.62ns 0.098 0 0 618 B
#4937 RunOnMethodBegin net6.0 648ns 0.869ns 3.37ns 0.00925 0 0 656 B
#4937 RunOnMethodBegin netcoreapp3.1 922ns 1.06ns 4.11ns 0.00885 0 0 656 B
#4937 RunOnMethodBegin net472 1.08μs 0.351ns 1.31ns 0.0977 0 0 618 B

andrewlock avatar Nov 30 '23 10:11 andrewlock