Skip to content
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

Use vendored span in HexString #5313

Merged
merged 4 commits into from
Mar 20, 2024
Merged

Use vendored span in HexString #5313

merged 4 commits into from
Mar 20, 2024

Conversation

kevingosse
Copy link
Collaborator

@kevingosse kevingosse commented Mar 15, 2024

Summary of changes

Use vendored span in HexString and HexConverter to reduce code duplication.

The benchmarks show no degradation on performance. ToHexString is faster and allocates less on .NET Framework (probably because it removes the call to BitConverter.GetBytes). The others seem faster but it's within error margin so I think it's just noise.

Method Runtime Mean Error StdDev Gen0 Allocated
ToHexString_Old .NET 6.0 33.21 ns 0.617 ns 0.577 ns 0.0003 88 B
ToHexString_New .NET 6.0 29.97 ns 0.465 ns 0.435 ns 0.0003 88 B
TryParseId_Old .NET 6.0 29.86 ns 0.378 ns 0.354 ns - -
TryParseId_New .NET 6.0 28.75 ns 0.545 ns 0.510 ns - -
ToHexString_Old .NET Core 3.1 39.71 ns 0.310 ns 0.242 ns 0.0003 88 B
ToHexString_New .NET Core 3.1 38.81 ns 0.259 ns 0.243 ns 0.0003 88 B
TryParseId_Old .NET Core 3.1 42.50 ns 0.681 ns 0.637 ns - -
TryParseId_New .NET Core 3.1 41.79 ns 0.709 ns 0.629 ns - -
ToHexString_Old .NET Framework 4.8 77.47 ns 0.905 ns 0.847 ns 0.0395 249 B
ToHexString_New .NET Framework 4.8 69.96 ns 0.546 ns 0.484 ns 0.0153 96 B
TryParseId_Old .NET Framework 4.8 61.72 ns 1.237 ns 1.270 ns - -
TryParseId_New .NET Framework 4.8 62.71 ns 0.856 ns 0.801 ns - -

Implementation details

  • Had to introduce a BitConverterShim because BitConverter.ToUInt64(ReadOnlySpan<byte>) is not available on .NET Framework and netstandard2.0.
  • We can't use safe stackalloc with the vendored span, so I switched to unsafe stackalloc and manually creating the span

Test coverage

HexString is already covered by unit tests.

@kevingosse kevingosse requested a review from a team as a code owner March 15, 2024 15:09
@github-actions github-actions bot added the area:tracer The core tracer library (Datadog.Trace, does not include OpenTracing, native code, or integrations) label Mar 15, 2024
@datadog-ddstaging
Copy link

datadog-ddstaging bot commented Mar 15, 2024

Datadog Report

Branch report: kevin/hexstring
Commit report: 4167228
Test service: dd-trace-dotnet

✅ 0 Failed, 330145 Passed, 1574 Skipped, 34m 27.5s Wall Time

@andrewlock
Copy link
Member

andrewlock commented Mar 15, 2024

Execution-Time Benchmarks Report ⏱️

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 (5313) - mean (75ms)  : 64, 86
     .   : milestone, 75,
    master - mean (73ms)  : 65, 80
     .   : milestone, 73,

    section CallTarget+Inlining+NGEN
    This PR (5313) - mean (998ms)  : 954, 1043
     .   : milestone, 998,
    master - mean (996ms)  : 974, 1017
     .   : milestone, 996,

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

    section CallTarget+Inlining+NGEN
    This PR (5313) - mean (715ms)  : 692, 738
     .   : milestone, 715,
    master - mean (717ms)  : 695, 739
     .   : milestone, 717,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (5313) - mean (94ms)  : 91, 97
     .   : milestone, 94,
    master - mean (93ms)  : 90, 96
     .   : milestone, 93,

    section CallTarget+Inlining+NGEN
    This PR (5313) - mean (673ms)  : 654, 692
     .   : milestone, 673,
    master - mean (670ms)  : 653, 687
     .   : milestone, 670,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (5313) - mean (187ms)  : 185, 190
     .   : milestone, 187,
    master - mean (187ms)  : 183, 191
     .   : milestone, 187,

    section CallTarget+Inlining+NGEN
    This PR (5313) - mean (1,081ms)  : 1056, 1105
     .   : milestone, 1081,
    master - mean (1,070ms)  : 1047, 1092
     .   : milestone, 1070,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (5313) - mean (270ms)  : 266, 275
     .   : milestone, 270,
    master - mean (270ms)  : 266, 275
     .   : milestone, 270,

    section CallTarget+Inlining+NGEN
    This PR (5313) - mean (873ms)  : 848, 899
     .   : milestone, 873,
    master - mean (876ms)  : 854, 898
     .   : milestone, 876,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (5313) - mean (259ms)  : 256, 263
     .   : milestone, 259,
    master - mean (259ms)  : 253, 264
     .   : milestone, 259,

    section CallTarget+Inlining+NGEN
    This PR (5313) - mean (858ms)  : 827, 889
     .   : milestone, 858,
    master - mean (858ms)  : 824, 891
     .   : milestone, 858,

Loading

@andrewlock
Copy link
Member

andrewlock commented Mar 15, 2024

Benchmarks Report for tracer 🐌

Benchmarks for #5313 compared to master:

  • 3 benchmarks are faster, with geometric mean 1.137
  • 3 benchmarks are slower, with geometric mean 1.151
  • 2 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 ✔️ Fewer allocations 🎉

Fewer allocations 🎉 in #5313

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 8.14 KB 8.05 KB -89 B -1.09%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 8.55μs 48.3ns 317ns 0.0256 0.0128 0 7.51 KB
master StartStopWithChild netcoreapp3.1 10.5μs 55.5ns 277ns 0.0255 0.0102 0 7.6 KB
master StartStopWithChild net472 16.9μs 45ns 168ns 1.36 0.333 0.0974 8.14 KB
#5313 StartStopWithChild net6.0 8.85μs 50.1ns 343ns 0.0305 0.0183 0.00609 7.51 KB
#5313 StartStopWithChild netcoreapp3.1 10.5μs 56.6ns 310ns 0.0261 0.0104 0 7.59 KB
#5313 StartStopWithChild net472 17.2μs 58ns 217ns 1.36 0.358 0.125 8.05 KB
Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 467μs 296ns 1.15μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 608μs 219ns 819ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 820μs 662ns 2.29μs 0.406 0 0 3.3 KB
#5313 WriteAndFlushEnrichedTraces net6.0 494μs 97.7ns 366ns 0 0 0 2.7 KB
#5313 WriteAndFlushEnrichedTraces netcoreapp3.1 609μs 253ns 947ns 0 0 0 2.7 KB
#5313 WriteAndFlushEnrichedTraces net472 808μs 351ns 1.36μs 0.403 0 0 3.3 KB
Benchmarks.Trace.AspNetCoreBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net6.0 171μs 130ns 502ns 0.257 0 0 18.33 KB
master SendRequest netcoreapp3.1 195μs 163ns 589ns 0.195 0 0 20.49 KB
master SendRequest net472 0.000283ns 0.000125ns 0.000482ns 0 0 0 0 b
#5313 SendRequest net6.0 169μs 115ns 432ns 0.253 0 0 18.33 KB
#5313 SendRequest netcoreapp3.1 195μs 190ns 711ns 0.195 0 0 20.49 KB
#5313 SendRequest net472 0.00127ns 0.000324ns 0.00126ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 539μs 2.48μs 9.62μs 0.534 0 0 41.58 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 678μs 1.34μs 5.2μs 0.34 0 0 41.74 KB
master WriteAndFlushEnrichedTraces net472 894μs 3.77μs 14.6μs 8.09 2.25 0.45 53.23 KB
#5313 WriteAndFlushEnrichedTraces net6.0 541μs 792ns 3.07μs 0.525 0 0 41.63 KB
#5313 WriteAndFlushEnrichedTraces netcoreapp3.1 655μs 1.43μs 5.36μs 0.324 0 0 41.69 KB
#5313 WriteAndFlushEnrichedTraces net472 872μs 2.38μs 9.23μs 8.33 2.5 0.417 53.27 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.19μs 0.342ns 1.28ns 0.0108 0 0 784 B
master ExecuteNonQuery netcoreapp3.1 1.53μs 1.99ns 7.72ns 0.0106 0 0 784 B
master ExecuteNonQuery net472 1.84μs 0.875ns 3.39ns 0.118 0 0 746 B
#5313 ExecuteNonQuery net6.0 1.17μs 0.426ns 1.65ns 0.0111 0 0 784 B
#5313 ExecuteNonQuery netcoreapp3.1 1.57μs 0.453ns 1.7ns 0.011 0 0 784 B
#5313 ExecuteNonQuery net472 1.85μs 0.908ns 3.4ns 0.118 0 0 746 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.34μs 1.09ns 4.1ns 0.0142 0 0 1.01 KB
master CallElasticsearch netcoreapp3.1 1.61μs 1.48ns 5.54ns 0.0136 0 0 1.01 KB
master CallElasticsearch net472 2.5μs 1.52ns 5.89ns 0.162 0 0 1.02 KB
master CallElasticsearchAsync net6.0 1.33μs 0.406ns 1.57ns 0.0135 0 0 984 B
master CallElasticsearchAsync netcoreapp3.1 1.67μs 1.07ns 4ns 0.0141 0 0 1.06 KB
master CallElasticsearchAsync net472 2.63μs 1.24ns 4.63ns 0.17 0 0 1.08 KB
#5313 CallElasticsearch net6.0 1.33μs 0.809ns 3.03ns 0.0139 0 0 1.01 KB
#5313 CallElasticsearch netcoreapp3.1 1.59μs 0.875ns 3.28ns 0.0134 0 0 1.01 KB
#5313 CallElasticsearch net472 2.7μs 1.21ns 4.69ns 0.161 0 0 1.02 KB
#5313 CallElasticsearchAsync net6.0 1.27μs 1.15ns 4.46ns 0.0135 0 0 984 B
#5313 CallElasticsearchAsync netcoreapp3.1 1.69μs 3.06ns 11.9ns 0.0143 0 0 1.06 KB
#5313 CallElasticsearchAsync net472 2.58μs 1.32ns 5.09ns 0.17 0 0 1.08 KB
Benchmarks.Trace.GraphQLBenchmark - Faster 🎉 Same allocations ✔️

Faster 🎉 in #5313

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.GraphQLBenchmark.ExecuteAsync‑net6.0 1.130 1,402.24 1,241.41

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net6.0 1.41μs 1.69ns 6.55ns 0.0127 0 0 928 B
master ExecuteAsync netcoreapp3.1 1.67μs 1.84ns 7.11ns 0.0117 0 0 928 B
master ExecuteAsync net472 1.91μs 0.838ns 3.24ns 0.141 0 0 891 B
#5313 ExecuteAsync net6.0 1.24μs 0.78ns 3.02ns 0.0131 0 0 928 B
#5313 ExecuteAsync netcoreapp3.1 1.76μs 0.753ns 2.72ns 0.0124 0 0 928 B
#5313 ExecuteAsync net472 1.87μs 1.02ns 3.95ns 0.142 0 0 891 B
Benchmarks.Trace.HttpClientBenchmark - Same speed ✔️ Fewer allocations 🎉

Fewer allocations 🎉 in #5313

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.HttpClientBenchmark.SendAsync‑net472 3.38 KB 3.05 KB -330 B -9.77%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendAsync net6.0 4.38μs 1.65ns 6.16ns 0.0306 0 0 2.16 KB
master SendAsync netcoreapp3.1 5.2μs 5.03ns 18.8ns 0.0364 0 0 2.7 KB
master SendAsync net472 7.63μs 11.8ns 45.6ns 0.536 0 0 3.38 KB
#5313 SendAsync net6.0 4.15μs 1.52ns 5.47ns 0.0292 0 0 2.16 KB
#5313 SendAsync netcoreapp3.1 5.08μs 3.72ns 14.4ns 0.0352 0 0 2.7 KB
#5313 SendAsync net472 7.56μs 4.85ns 18.8ns 0.482 0 0 3.05 KB
Benchmarks.Trace.ILoggerBenchmark - Faster 🎉 Same allocations ✔️

Faster 🎉 in #5313

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.ILoggerBenchmark.EnrichedLog‑netcoreapp3.1 1.129 2,330.07 2,063.21

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 1.47μs 0.716ns 2.68ns 0.0234 0 0 1.65 KB
master EnrichedLog netcoreapp3.1 2.33μs 0.702ns 2.62ns 0.0221 0 0 1.65 KB
master EnrichedLog net472 2.49μs 1.15ns 4ns 0.249 0 0 1.57 KB
#5313 EnrichedLog net6.0 1.47μs 0.831ns 3.22ns 0.0234 0 0 1.65 KB
#5313 EnrichedLog netcoreapp3.1 2.07μs 1.48ns 5.53ns 0.0229 0 0 1.65 KB
#5313 EnrichedLog net472 2.69μs 2.16ns 8.36ns 0.249 0 0 1.57 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 112μs 73.3ns 284ns 0.0561 0 0 4.23 KB
master EnrichedLog netcoreapp3.1 119μs 379ns 1.47μs 0 0 0 4.23 KB
master EnrichedLog net472 146μs 152ns 569ns 0.656 0.219 0 4.41 KB
#5313 EnrichedLog net6.0 112μs 85.2ns 330ns 0.0563 0 0 4.23 KB
#5313 EnrichedLog netcoreapp3.1 118μs 159ns 596ns 0 0 0 4.23 KB
#5313 EnrichedLog net472 146μs 120ns 433ns 0.653 0.218 0 4.41 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 3.02μs 2.78ns 10.7ns 0.0302 0 0 2.21 KB
master EnrichedLog netcoreapp3.1 4.23μs 4.72ns 18.3ns 0.0295 0 0 2.21 KB
master EnrichedLog net472 4.9μs 3ns 11.6ns 0.32 0 0 2.02 KB
#5313 EnrichedLog net6.0 3.24μs 1.38ns 5.35ns 0.0307 0 0 2.21 KB
#5313 EnrichedLog netcoreapp3.1 4.15μs 1.75ns 6.54ns 0.0289 0 0 2.21 KB
#5313 EnrichedLog net472 5.01μs 1.7ns 6.58ns 0.32 0 0 2.02 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 1.41μs 0.357ns 1.24ns 0.0167 0 0 1.18 KB
master SendReceive netcoreapp3.1 1.79μs 1.3ns 4.7ns 0.0155 0 0 1.18 KB
master SendReceive net472 2.36μs 2.48ns 9.61ns 0.186 0 0 1.18 KB
#5313 SendReceive net6.0 1.38μs 0.455ns 1.7ns 0.0165 0 0 1.18 KB
#5313 SendReceive netcoreapp3.1 1.91μs 1.52ns 5.49ns 0.0154 0 0 1.18 KB
#5313 SendReceive net472 2.3μs 2.29ns 8.88ns 0.187 0 0 1.18 KB
Benchmarks.Trace.SerilogBenchmark - Faster 🎉 Same allocations ✔️

Faster 🎉 in #5313

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SerilogBenchmark.EnrichedLog‑netcoreapp3.1 1.152 4,186.10 3,633.66

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 2.71μs 1.09ns 4.07ns 0.0216 0 0 1.55 KB
master EnrichedLog netcoreapp3.1 4.19μs 1.32ns 5.1ns 0.021 0 0 1.6 KB
master EnrichedLog net472 4.5μs 2.7ns 10.4ns 0.316 0 0 1.99 KB
#5313 EnrichedLog net6.0 2.8μs 0.791ns 2.96ns 0.021 0 0 1.55 KB
#5313 EnrichedLog netcoreapp3.1 3.63μs 1.4ns 5.42ns 0.0219 0 0 1.6 KB
#5313 EnrichedLog net472 4.58μs 3.31ns 12.4ns 0.314 0 0 1.99 KB
Benchmarks.Trace.SpanBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #5313

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net6.0 1.192 436.60 520.31
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net472 1.136 654.88 743.86
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑netcoreapp3.1 1.126 669.90 754.13

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net6.0 437ns 0.798ns 3.09ns 0.00785 0 0 552 B
master StartFinishSpan netcoreapp3.1 670ns 1.58ns 6.12ns 0.00741 0 0 552 B
master StartFinishSpan net472 654ns 1.32ns 5.12ns 0.0878 0 0 554 B
master StartFinishScope net6.0 611ns 1.38ns 5.33ns 0.00928 0 0 672 B
master StartFinishScope netcoreapp3.1 863ns 1.62ns 6.29ns 0.0092 0 0 672 B
master StartFinishScope net472 884ns 1.86ns 7.22ns 0.1 0 0 634 B
#5313 StartFinishSpan net6.0 521ns 1.04ns 4.02ns 0.00786 0 0 552 B
#5313 StartFinishSpan netcoreapp3.1 752ns 1.63ns 6.31ns 0.00744 0 0 552 B
#5313 StartFinishSpan net472 744ns 1.65ns 6.39ns 0.0879 0 0 554 B
#5313 StartFinishScope net6.0 593ns 0.951ns 3.56ns 0.00957 0 0 672 B
#5313 StartFinishScope netcoreapp3.1 814ns 1.6ns 6.18ns 0.00883 0 0 672 B
#5313 StartFinishScope net472 972ns 2.57ns 9.97ns 0.101 0 0 634 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 659ns 1.13ns 4.39ns 0.0094 0 0 672 B
master RunOnMethodBegin netcoreapp3.1 962ns 1.84ns 6.89ns 0.00899 0 0 672 B
master RunOnMethodBegin net472 1.06μs 1.82ns 7.06ns 0.1 0 0 634 B
#5313 RunOnMethodBegin net6.0 710ns 1.26ns 4.88ns 0.00934 0 0 672 B
#5313 RunOnMethodBegin netcoreapp3.1 931ns 1.91ns 7.39ns 0.00891 0 0 672 B
#5313 RunOnMethodBegin net472 980ns 2.55ns 9.87ns 0.101 0 0 634 B

Copy link
Member

@lucaspimentel lucaspimentel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@andrewlock
Copy link
Member

andrewlock commented Mar 15, 2024

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 (5313) (10.946M)   : 0, 10946006
    master (11.325M)   : 0, 11324667
    benchmarks/2.9.0 (11.277M)   : 0, 11277254

    section Automatic
    This PR (5313) (7.701M)   : 0, 7700916
    master (7.785M)   : 0, 7785071
    benchmarks/2.9.0 (7.986M)   : 0, 7985594

    section Trace stats
    This PR (5313) (8.139M)   : 0, 8139493
    master (8.030M)   : 0, 8029574

    section Manual
    This PR (5313) (9.718M)   : 0, 9717564
    master (9.790M)   : 0, 9790118

    section Manual + Automatic
    This PR (5313) (7.387M)   : 0, 7386593
    master (7.255M)   : 0, 7254615

    section Version Conflict
    This PR (5313) (6.608M)   : 0, 6608292
    master (6.649M)   : 0, 6649451

Loading
gantt
    title Throughput Linux arm64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (5313) (9.725M)   : 0, 9725113
    master (9.499M)   : 0, 9498796
    benchmarks/2.9.0 (9.656M)   : 0, 9655801

    section Automatic
    This PR (5313) (6.629M)   : 0, 6629370
    master (6.572M)   : 0, 6571504

    section Trace stats
    This PR (5313) (6.936M)   : 0, 6936246
    master (6.781M)   : 0, 6781384

    section Manual
    This PR (5313) (8.396M)   : 0, 8395571
    master (7.963M)   : 0, 7962540

    section Manual + Automatic
    This PR (5313) (6.166M)   : 0, 6166179
    master (6.132M)   : 0, 6132125

    section Version Conflict
    This PR (5313) (5.643M)   : 0, 5643006
    master (5.616M)   : 0, 5616216

Loading
gantt
    title Throughput Windows x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (5313) (9.635M)   : 0, 9634944
    master (9.851M)   : 0, 9850836
    benchmarks/2.9.0 (9.962M)   : 0, 9961782

    section Automatic
    This PR (5313) (7.133M)   : 0, 7132531
    master (7.061M)   : 0, 7060782
    benchmarks/2.9.0 (7.328M)   : 0, 7328264

    section Trace stats
    This PR (5313) (7.369M)   : 0, 7369159
    master (7.367M)   : 0, 7366991

    section Manual
    This PR (5313) (8.759M)   : 0, 8759449
    master (8.739M)   : 0, 8739132

    section Manual + Automatic
    This PR (5313) (6.849M)   : 0, 6848725
    master (6.785M)   : 0, 6785188

    section Version Conflict
    This PR (5313) (6.271M)   : 0, 6271392
    master (6.306M)   : 0, 6305644

Loading

Copy link
Member

@andrewlock andrewlock left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, except for the merge conflicts I'm gonna hav on v3 😅

@kevingosse kevingosse merged commit b24b67b into master Mar 20, 2024
56 checks passed
@kevingosse kevingosse deleted the kevin/hexstring branch March 20, 2024 14:37
@github-actions github-actions bot added this to the vNext milestone Mar 20, 2024
@andrewlock andrewlock modified the milestones: vNext, vNext-v2 Apr 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:tracer The core tracer library (Datadog.Trace, does not include OpenTracing, native code, or integrations)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants