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
Conversation
Datadog ReportBranch report: ✅ |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
2d679b1
to
45fb62f
Compare
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as resolved.
This comment was marked as resolved.
d0c611e
to
bb28791
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
846a4e5
to
04421ce
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
This comment has been minimized.
This comment has been minimized.
5bc3954
to
31ba7ef
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
31ba7ef
to
914307b
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Benchmarks Report 🐌Benchmarks for #3764 compared to master:
The following thresholds were used for comparing the benchmark speeds:
Allocation changes below 0.5% are ignored. Benchmark detailsBenchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.AppSecBodyBenchmark - Slower
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Benchmarks.Trace.AppSecBodyBenchmark.ObjectExtractorSimpleBody‑netcoreapp3.1 | 1.117 | 228.18 | 254.78 |
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 |
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:
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,
|
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
|
Code Coverage Report 📊✔️ Merging #3764 into master will not change line coverage
View the full report for further details: Datadog.Trace Breakdown ✔️
The following classes have significant coverage changes.
View the full reports for further details: |
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, usingstd::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 parsestat
file.Test coverage
Other details