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

[Profiler] Reduce memory allocation of the profiler #3764

Merged
merged 4 commits into from Feb 9, 2023

Conversation

gleocadie
Copy link
Collaborator

@gleocadie gleocadie commented Feb 7, 2023

Summary of changes

Reduce profiler memory footprint.

Reason for change

The profiler was recently profiled by the native profiler. We discovered that std::ifstream each time it opens a file, allocates a buffer 8K. In our test, using std::ifstream on a hot path (CPU profiler on linux to read the thread stat file /proc/<pid>/task/<tid>/stat), this accounts for ~50% of the memory allocated (over the minute).

Implementation details

Do no use std::ifstream, prefer the C way to read and parse stat file.

Test coverage

Other details

@gleocadie gleocadie requested a review from a team as a code owner February 7, 2023 16:38
@datadog-ddstaging
Copy link

datadog-ddstaging bot commented Feb 7, 2023

Datadog Report

Branch report: gleocadie/optimization-linux-profiler
Commit report: c5975b3

dd-trace-dotnet: 0 Failed, 0 New Flaky, 232391 Passed, 638 Skipped, 20m 35.44s Wall Time

@andrewlock

This comment has been minimized.

@andrewlock

This comment has been minimized.

@gleocadie gleocadie force-pushed the gleocadie/optimization-linux-profiler branch from 2d679b1 to 45fb62f Compare February 7, 2023 23:57
@andrewlock

This comment was marked as outdated.

@andrewlock

This comment was marked as outdated.

@andrewlock

This comment was marked as resolved.

@gleocadie gleocadie force-pushed the gleocadie/optimization-linux-profiler branch 2 times, most recently from d0c611e to bb28791 Compare February 8, 2023 01:05
@andrewlock

This comment has been minimized.

@andrewlock

This comment has been minimized.

@andrewlock

This comment has been minimized.

@andrewlock

This comment has been minimized.

@gleocadie gleocadie force-pushed the gleocadie/optimization-linux-profiler branch 2 times, most recently from 846a4e5 to 04421ce Compare February 8, 2023 09:58
@andrewlock

This comment has been minimized.

@andrewlock

This comment has been minimized.

@andrewlock

This comment has been minimized.

Copy link
Contributor

@chrisnas chrisnas left a comment

Choose a reason for hiding this comment

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

LGTM

@andrewlock

This comment has been minimized.

@gleocadie gleocadie force-pushed the gleocadie/optimization-linux-profiler branch 2 times, most recently from 5bc3954 to 31ba7ef Compare February 8, 2023 11:40
@andrewlock

This comment has been minimized.

@andrewlock

This comment has been minimized.

@andrewlock

This comment has been minimized.

@gleocadie gleocadie force-pushed the gleocadie/optimization-linux-profiler branch from 31ba7ef to 914307b Compare February 8, 2023 12:39
@andrewlock

This comment has been minimized.

@andrewlock

This comment has been minimized.

@andrewlock

This comment has been minimized.

@andrewlock

This comment has been minimized.

@andrewlock

This comment has been minimized.

@andrewlock

This comment has been minimized.

@andrewlock

This comment has been minimized.

@andrewlock

This comment has been minimized.

@andrewlock
Copy link
Member

Benchmarks Report 🐌

Benchmarks for #3764 compared to master:

  • 2 benchmarks are slower, with geometric mean 1.118
  • All benchmarks have the same 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.AgentWriterBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net472 746μs 677ns 2.62μs 0.377 0 0 3.22 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 554μs 219ns 791ns 0 0 0 2.63 KB
#3764 WriteAndFlushEnrichedTraces net472 758μs 758ns 2.94μs 0.377 0 0 3.22 KB
#3764 WriteAndFlushEnrichedTraces netcoreapp3.1 553μs 121ns 452ns 0 0 0 2.62 KB
Benchmarks.Trace.AppSecBodyBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #3764

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.AppSecBodyBenchmark.ObjectExtractorSimpleBody‑netcoreapp3.1 1.117 228.18 254.78

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net472 93.7μs 35.3ns 127ns 0.277 0 0 1.77 KB
master AllCycleSimpleBody netcoreapp3.1 97.7μs 534ns 3.16μs 0 0 0 1.64 KB
master AllCycleMoreComplexBody net472 285μs 41.4ns 149ns 1.99 0 0 13.02 KB
master AllCycleMoreComplexBody netcoreapp3.1 276μs 1.5μs 8.74μs 0.136 0 0 12.1 KB
master ObjectExtractorSimpleBody net472 271ns 0.314ns 1.21ns 0.0574 0 0 361 B
master ObjectExtractorSimpleBody netcoreapp3.1 228ns 0.113ns 0.422ns 0.00368 0 0 272 B
master ObjectExtractorMoreComplexBody net472 15.7μs 20.6ns 79.9ns 1.2 0.0155 0 7.62 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 12.7μs 4.53ns 17ns 0.0887 0 0 6.75 KB
#3764 AllCycleSimpleBody net472 98.9μs 544ns 3.07μs 0.277 0 0 1.77 KB
#3764 AllCycleSimpleBody netcoreapp3.1 103μs 302ns 1.17μs 0 0 0 1.64 KB
#3764 AllCycleMoreComplexBody net472 283μs 131ns 509ns 1.99 0 0 13.02 KB
#3764 AllCycleMoreComplexBody netcoreapp3.1 280μs 1.54μs 8.96μs 0.144 0 0 12.1 KB
#3764 ObjectExtractorSimpleBody net472 291ns 0.222ns 0.832ns 0.0573 0 0 361 B
#3764 ObjectExtractorSimpleBody netcoreapp3.1 255ns 0.124ns 0.481ns 0.00371 0 0 272 B
#3764 ObjectExtractorMoreComplexBody net472 15.9μs 23.5ns 91ns 1.21 0.016 0 7.62 KB
#3764 ObjectExtractorMoreComplexBody netcoreapp3.1 13.4μs 6.28ns 24.3ns 0.0939 0 0 6.75 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 net472 0ns 0ns 0ns 0 0 0 0 b
master SendRequest netcoreapp3.1 181μs 240ns 899ns 0.181 0 0 20.98 KB
#3764 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3764 SendRequest netcoreapp3.1 181μs 344ns 1.33μs 0.267 0 0 20.98 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 net472 1.73μs 0.456ns 1.71ns 0.163 0 0 1.03 KB
master ExecuteNonQuery netcoreapp3.1 1.38μs 0.575ns 2.23ns 0.0138 0 0 1.02 KB
#3764 ExecuteNonQuery net472 1.67μs 0.902ns 3.49ns 0.163 0 0 1.03 KB
#3764 ExecuteNonQuery netcoreapp3.1 1.32μs 0.425ns 1.65ns 0.0138 0 0 1.02 KB
Benchmarks.Trace.ElasticsearchBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master CallElasticsearch net472 2.45μs 0.892ns 3.46ns 0.196 0 0 1.24 KB
master CallElasticsearch netcoreapp3.1 1.44μs 7.09ns 30.1ns 0.0161 0 0 1.18 KB
master CallElasticsearchAsync net472 2.43μs 0.511ns 1.91ns 0.218 0.00122 0 1.37 KB
master CallElasticsearchAsync netcoreapp3.1 1.44μs 0.531ns 1.99ns 0.0173 0 0 1.3 KB
#3764 CallElasticsearch net472 2.43μs 1.07ns 4.13ns 0.196 0 0 1.24 KB
#3764 CallElasticsearch netcoreapp3.1 1.38μs 0.914ns 3.42ns 0.0155 0 0 1.18 KB
#3764 CallElasticsearchAsync net472 2.38μs 0.799ns 2.99ns 0.218 0.00118 0 1.37 KB
#3764 CallElasticsearchAsync netcoreapp3.1 1.43μs 0.559ns 2.17ns 0.0177 0 0 1.3 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net472 2.49μs 1.2ns 4.65ns 0.238 0.00124 0 1.5 KB
master ExecuteAsync netcoreapp3.1 1.57μs 0.979ns 3.53ns 0.0188 0 0 1.42 KB
#3764 ExecuteAsync net472 2.66μs 3.71ns 14.4ns 0.238 0.00131 0 1.5 KB
#3764 ExecuteAsync netcoreapp3.1 1.56μs 3.04ns 11.8ns 0.0191 0 0 1.42 KB
Benchmarks.Trace.HttpClientBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendAsync net472 7.23μs 4.57ns 17.7ns 0.558 0 0 3.52 KB
master SendAsync netcoreapp3.1 4.59μs 1.79ns 6.93ns 0.0435 0 0 3.21 KB
#3764 SendAsync net472 7.02μs 4.69ns 18.2ns 0.556 0.0035 0 3.51 KB
#3764 SendAsync netcoreapp3.1 4.62μs 1.9ns 6.84ns 0.0421 0 0 3.21 KB
Benchmarks.Trace.ILoggerBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net472 2.63μs 1.59ns 5.95ns 0.301 0 0 1.9 KB
master EnrichedLog netcoreapp3.1 2.2μs 4.7ns 18.2ns 0.0265 0 0 1.93 KB
#3764 EnrichedLog net472 2.67μs 1.06ns 3.68ns 0.302 0 0 1.9 KB
#3764 EnrichedLog netcoreapp3.1 2.09μs 1.1ns 4.11ns 0.026 0 0 1.93 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 net472 145μs 62.6ns 243ns 0.727 0.218 0 4.74 KB
master EnrichedLog netcoreapp3.1 118μs 118ns 443ns 0.0594 0 0 4.58 KB
#3764 EnrichedLog net472 145μs 91.8ns 343ns 0.729 0.219 0 4.74 KB
#3764 EnrichedLog netcoreapp3.1 117μs 179ns 695ns 0.0578 0 0 4.58 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 net472 5.14μs 1.61ns 5.79ns 0.583 0.00257 0 3.68 KB
master EnrichedLog netcoreapp3.1 3.94μs 1.68ns 6.29ns 0.0533 0 0 4 KB
#3764 EnrichedLog net472 5.27μs 1.58ns 6.1ns 0.584 0.00262 0 3.68 KB
#3764 EnrichedLog netcoreapp3.1 3.9μs 1.26ns 4.55ns 0.0543 0 0 4 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 net472 2.04μs 0.683ns 2.56ns 0.23 0.00102 0 1.45 KB
master SendReceive netcoreapp3.1 1.62μs 0.737ns 2.85ns 0.0187 0 0 1.4 KB
#3764 SendReceive net472 2.08μs 2.27ns 8.77ns 0.23 0.00104 0 1.45 KB
#3764 SendReceive netcoreapp3.1 1.77μs 1.95ns 7.02ns 0.0189 0 0 1.4 KB
Benchmarks.Trace.SerilogBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net472 4.62μs 1.88ns 7.03ns 0.368 0 0 2.32 KB
master EnrichedLog netcoreapp3.1 3.81μs 1.46ns 5.67ns 0.0249 0 0 1.89 KB
#3764 EnrichedLog net472 4.51μs 1.11ns 4.16ns 0.367 0 0 2.32 KB
#3764 EnrichedLog netcoreapp3.1 3.83μs 0.865ns 3.35ns 0.025 0 0 1.89 KB
Benchmarks.Trace.SpanBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net472 1E+03ns 0.48ns 1.86ns 0.141 0 0 891 B
master StartFinishSpan netcoreapp3.1 789ns 1.22ns 4.72ns 0.0115 0 0 840 B
master StartFinishScope net472 1.13μs 0.89ns 3.45ns 0.154 0 0 971 B
master StartFinishScope netcoreapp3.1 949ns 0.585ns 2.11ns 0.0127 0 0 960 B
#3764 StartFinishSpan net472 994ns 0.416ns 1.61ns 0.141 0 0 891 B
#3764 StartFinishSpan netcoreapp3.1 804ns 0.284ns 1.1ns 0.0116 0 0 840 B
#3764 StartFinishScope net472 1.22μs 0.489ns 1.89ns 0.154 0 0 971 B
#3764 StartFinishScope netcoreapp3.1 916ns 0.324ns 1.21ns 0.0132 0 0 960 B
Benchmarks.Trace.TraceAnnotationsBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #3764

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑net472 1.119 1,186.09 1,327.03

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunOnMethodBegin net472 1.19μs 1.13ns 4.37ns 0.154 0 0 971 B
master RunOnMethodBegin netcoreapp3.1 947ns 0.321ns 1.24ns 0.0133 0 0 960 B
#3764 RunOnMethodBegin net472 1.33μs 0.464ns 1.8ns 0.154 0 0 971 B
#3764 RunOnMethodBegin netcoreapp3.1 992ns 0.21ns 0.813ns 0.0129 0 0 960 B

@andrewlock
Copy link
Member

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 (3764) - mean (3,318ms)  : 3248, 3388
     .   : milestone, 3318,
    master - mean (3,321ms)  : 3256, 3387
     .   : milestone, 3321,

    section CallTarget+Inlining+NGEN
    This PR (3764) - mean (3,325ms)  : 3263, 3386
     .   : milestone, 3325,
    master - mean (3,333ms)  : 3258, 3409
     .   : milestone, 3333,

gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3764) - mean (3,372ms)  : 3292, 3452
     .   : milestone, 3372,
    master - mean (3,367ms)  : 3289, 3444
     .   : milestone, 3367,

    section CallTarget+Inlining+NGEN
    This PR (3764) - mean (3,371ms)  : 3283, 3458
     .   : milestone, 3371,
    master - mean (3,362ms)  : 3286, 3437
     .   : milestone, 3362,

gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3764) - mean (3,333ms)  : 3263, 3403
     .   : milestone, 3333,
    master - mean (3,341ms)  : 3253, 3429
     .   : milestone, 3341,

    section CallTarget+Inlining+NGEN
    This PR (3764) - mean (3,331ms)  : 3259, 3403
     .   : milestone, 3331,
    master - mean (3,330ms)  : 3267, 3394
     .   : milestone, 3330,

gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3764) - mean (206ms)  : 194, 218
     .   : milestone, 206,
    master - mean (204ms)  : 191, 216
     .   : milestone, 204,

    section CallTarget+Inlining+NGEN
    This PR (3764) - mean (202ms)  : 188, 217
     .   : milestone, 202,
    master - mean (204ms)  : 190, 218
     .   : milestone, 204,

gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3764) - mean (272ms)  : 254, 290
     .   : milestone, 272,
    master - mean (267ms)  : 250, 285
     .   : milestone, 267,

    section CallTarget+Inlining+NGEN
    This PR (3764) - mean (269ms)  : 255, 284
     .   : milestone, 269,
    master - mean (269ms)  : 258, 280
     .   : milestone, 269,

gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3764) - mean (252ms)  : 240, 265
     .   : milestone, 252,
    master - mean (255ms)  : 241, 269
     .   : milestone, 255,

    section CallTarget+Inlining+NGEN
    This PR (3764) - mean (253ms)  : 241, 265
     .   : milestone, 253,
    master - mean (252ms)  : 241, 263
     .   : milestone, 252,

@andrewlock
Copy link
Member

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 (3764) (5.718M)   : 0, 5717632
    master (5.836M)   : 0, 5836160
    benchmarks/2.23.0 (6.324M)   : 0, 6324342
    benchmarks/2.9.0 (6.240M)   : 0, 6239505

    section Automatic
    This PR (3764) (3.968M)   : 0, 3967652
    master (3.987M)   : 0, 3986666
    benchmarks/2.23.0 (4.253M)   : 0, 4253067
    benchmarks/2.9.0 (4.361M)   : 0, 4361379

    section Trace stats
    master (3.974M)   : 0, 3974430
    benchmarks/2.23.0 (4.291M)   : 0, 4290748

    section Manual
    This PR (3764) (5.042M)   : 0, 5042032
    master (5.062M)   : 0, 5062313
    benchmarks/2.23.0 (5.199M)   : 0, 5199331

    section Manual + Automatic
    This PR (3764) (3.822M)   : 0, 3822274
    master (3.801M)   : 0, 3800893
    benchmarks/2.23.0 (3.791M)   : 0, 3791350

    section Version Conflict
    master (3.445M)   : 0, 3444825
    benchmarks/2.23.0 (3.416M)   : 0, 3416043

gantt
    title Throughput Linux arm64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (3764) (5.168M)   : 0, 5167711
    master (5.156M)   : 0, 5156083
    benchmarks/2.23.0 (5.409M)   : 0, 5409431
    benchmarks/2.9.0 (5.469M)   : 0, 5469096

    section Automatic
    This PR (3764) (3.638M)   : 0, 3637785
    master (3.779M)   : 0, 3779136
    benchmarks/2.23.0 (3.553M)   : 0, 3553265

    section Trace stats
    master (3.672M)   : 0, 3672154
    benchmarks/2.23.0 (3.437M)   : 0, 3437009

    section Manual
    This PR (3764) (4.545M)   : 0, 4545027
    master (4.565M)   : 0, 4565272
    benchmarks/2.23.0 (4.743M)   : 0, 4742604

    section Manual + Automatic
    This PR (3764) (3.312M)   : 0, 3312345
    master (3.472M)   : 0, 3471688
    benchmarks/2.23.0 (3.427M)   : 0, 3426668

    section Version Conflict
    master (2.875M)   : 0, 2874755
    benchmarks/2.23.0 (3.050M)   : 0, 3049944

gantt
    title Throughput Windows x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (3764) (6.487M)   : 0, 6487216
    master (6.577M)   : 0, 6576774
    benchmarks/2.23.0 (6.617M)   : 0, 6617268
    benchmarks/2.9.0 (6.529M)   : 0, 6528741

    section Automatic
    This PR (3764) (4.367M)   : 0, 4367492
    master (4.285M)   : 0, 4284743
    benchmarks/2.23.0 (4.507M)   : 0, 4506593
    benchmarks/2.9.0 (4.511M)   : 0, 4511149

    section Trace stats
    master (4.324M)   : 0, 4324046
    benchmarks/2.23.0 (4.432M)   : 0, 4432148

    section Manual
    This PR (3764) (5.796M)   : 0, 5796070
    master (5.560M)   : 0, 5560151
    benchmarks/2.23.0 (5.623M)   : 0, 5623093

    section Manual + Automatic
    This PR (3764) (4.221M)   : 0, 4221463
    master (4.277M)   : 0, 4276803
    benchmarks/2.23.0 (4.266M)   : 0, 4265774

    section Version Conflict
    master (3.773M)   : 0, 3773233
    benchmarks/2.23.0 (3.729M)   : 0, 3729359

gantt
    title Throughput Linux x64 (ASM) (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (3764) (7.529M)   : 0, 7528984
    master (7.584M)   : 0, 7584174
    benchmarks/2.23.0 (7.585M)   : 0, 7585145
    benchmarks/2.9.0 (3.616M)   : 0, 3615516

    section No attack
    This PR (3764) (2.117M)   : 0, 2116919
    master (2.126M)   : 0, 2125513
    benchmarks/2.23.0 (2.127M)   : 0, 2126885
    benchmarks/2.9.0 (1.276M)   : 0, 1275566

    section Attack
    This PR (3764) (1.779M)   : 0, 1779356
    master (1.833M)   : 0, 1832670
    benchmarks/2.23.0 (1.825M)   : 0, 1824663
    benchmarks/2.9.0 (1.093M)   : 0, 1092888

    section Blocking
    This PR (3764) (3.597M)   : 0, 3597405
    master (3.583M)   : 0, 3582846
    benchmarks/2.23.0 (3.650M)   : 0, 3649650

@andrewlock
Copy link
Member

Code Coverage Report 📊

✔️ Merging #3764 into master will not change line coverage
✔️ Merging #3764 into master will not change branch coverage
✔️ Merging #3764 into master will not change complexity

master #3764 Change
Lines 21961 / 31613 21916 / 31613
Lines % 69% 69% 0% ✔️
Branches 13208 / 20749 13201 / 20749
Branches % 64% 64% 0% ✔️
Complexity 22371 22371 0 ✔️

View the full report for further details:

Datadog.Trace Breakdown ✔️

master #3764 Change
Lines % 69% 69% 0% ✔️
Branches % 64% 64% 0% ✔️
Complexity 22371 22371 0 ✔️

The following classes have significant coverage changes.

File Line coverage change Branch coverage change Complexity change
Datadog.Trace.Ci.GitInfo -17% -10% 0 ✔️

View the full reports for further details:

@gleocadie gleocadie merged commit 85fefc8 into master Feb 9, 2023
@gleocadie gleocadie deleted the gleocadie/optimization-linux-profiler branch February 9, 2023 13:58
@github-actions github-actions bot added this to the vNext milestone Feb 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants