-
Notifications
You must be signed in to change notification settings - Fork 142
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] Fix LinuxDlIteratePhdrDeadlock
test
#5963
Conversation
Datadog ReportBranch report: ✅ 0 Failed, 364230 Passed, 2340 Skipped, 15h 37m 11.21s Total Time ⌛ Performance Regressions vs Default Branch (1)
|
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). |
Benchmarks Report for tracer 🐌Benchmarks for #5963 compared to master:
The following thresholds were used for comparing the benchmark speeds:
Allocation changes below 0.5% are ignored. Benchmark detailsBenchmarks.Trace.ActivityBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.AspNetCoreBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.DbCommandBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.ElasticsearchBenchmark - Faster 🎉 Same allocations ✔️
|
Benchmark | base/diff | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync‑net6.0 | 1.133 | 1,361.76 | 1,202.19 |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | CallElasticsearch |
net6.0 | 1.21μs | 0.821ns | 3.18ns | 0.0139 | 0 | 0 | 976 B |
master | CallElasticsearch |
netcoreapp3.1 | 1.49μs | 1.44ns | 5.56ns | 0.0134 | 0 | 0 | 976 B |
master | CallElasticsearch |
net472 | 2.5μs | 1.25ns | 4.86ns | 0.158 | 0 | 0 | 995 B |
master | CallElasticsearchAsync |
net6.0 | 1.36μs | 0.94ns | 3.64ns | 0.0136 | 0 | 0 | 952 B |
master | CallElasticsearchAsync |
netcoreapp3.1 | 1.6μs | 0.256ns | 0.924ns | 0.0137 | 0 | 0 | 1.02 KB |
master | CallElasticsearchAsync |
net472 | 2.5μs | 1.95ns | 7.56ns | 0.166 | 0.00125 | 0 | 1.05 KB |
#5963 | CallElasticsearch |
net6.0 | 1.14μs | 0.666ns | 2.58ns | 0.0138 | 0 | 0 | 976 B |
#5963 | CallElasticsearch |
netcoreapp3.1 | 1.56μs | 0.835ns | 3.23ns | 0.0132 | 0 | 0 | 976 B |
#5963 | CallElasticsearch |
net472 | 2.52μs | 2.47ns | 9.55ns | 0.157 | 0 | 0 | 995 B |
#5963 | CallElasticsearchAsync |
net6.0 | 1.2μs | 0.434ns | 1.62ns | 0.0133 | 0 | 0 | 952 B |
#5963 | CallElasticsearchAsync |
netcoreapp3.1 | 1.59μs | 0.88ns | 3.29ns | 0.0134 | 0 | 0 | 1.02 KB |
#5963 | CallElasticsearchAsync |
net472 | 2.61μs | 1.97ns | 7.63ns | 0.166 | 0 | 0 | 1.05 KB |
Benchmarks.Trace.GraphQLBenchmark - Slower ⚠️ Same allocations ✔️
Slower ⚠️ in #5963
Benchmark
diff/base
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.GraphQLBenchmark.ExecuteAsync‑net6.0
1.168
1,177.64
1,375.20
Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.GraphQLBenchmark.ExecuteAsync‑net6.0 | 1.168 | 1,177.64 | 1,375.20 |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | ExecuteAsync |
net6.0 | 1.18μs | 1.12ns | 4.33ns | 0.0129 | 0 | 0 | 952 B |
master | ExecuteAsync |
netcoreapp3.1 | 1.56μs | 1.35ns | 4.87ns | 0.0124 | 0 | 0 | 952 B |
master | ExecuteAsync |
net472 | 1.75μs | 1.41ns | 5.47ns | 0.145 | 0 | 0 | 915 B |
#5963 | ExecuteAsync |
net6.0 | 1.38μs | 1.2ns | 4.47ns | 0.0131 | 0 | 0 | 952 B |
#5963 | ExecuteAsync |
netcoreapp3.1 | 1.59μs | 2.84ns | 11ns | 0.0127 | 0 | 0 | 952 B |
#5963 | ExecuteAsync |
net472 | 1.79μs | 1.64ns | 6.34ns | 0.145 | 0 | 0 | 915 B |
Benchmarks.Trace.HttpClientBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | SendAsync |
net6.0 | 4.2μs | 18ns | 67.5ns | 0.0304 | 0 | 0 | 2.22 KB |
master | SendAsync |
netcoreapp3.1 | 5.12μs | 3.12ns | 12.1ns | 0.036 | 0 | 0 | 2.76 KB |
master | SendAsync |
net472 | 7.94μs | 6.26ns | 24.2ns | 0.5 | 0 | 0 | 3.15 KB |
#5963 | SendAsync |
net6.0 | 4.42μs | 2.03ns | 7.6ns | 0.0307 | 0 | 0 | 2.22 KB |
#5963 | SendAsync |
netcoreapp3.1 | 5.04μs | 1.85ns | 7.18ns | 0.038 | 0 | 0 | 2.76 KB |
#5963 | SendAsync |
net472 | 7.81μs | 19.5ns | 75.6ns | 0.498 | 0 | 0 | 3.15 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 |
net6.0 | 1.52μs | 0.61ns | 2.36ns | 0.0236 | 0 | 0 | 1.64 KB |
master | EnrichedLog |
netcoreapp3.1 | 2.23μs | 1.4ns | 5.06ns | 0.0222 | 0 | 0 | 1.64 KB |
master | EnrichedLog |
net472 | 2.69μs | 2.15ns | 8.06ns | 0.249 | 0 | 0 | 1.57 KB |
#5963 | EnrichedLog |
net6.0 | 1.58μs | 0.827ns | 3.09ns | 0.0229 | 0 | 0 | 1.64 KB |
#5963 | EnrichedLog |
netcoreapp3.1 | 2.15μs | 0.787ns | 2.95ns | 0.0218 | 0 | 0 | 1.64 KB |
#5963 | EnrichedLog |
net472 | 2.76μs | 1.55ns | 5.81ns | 0.248 | 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 | 118μs | 163ns | 630ns | 0.059 | 0 | 0 | 4.28 KB |
master | EnrichedLog |
netcoreapp3.1 | 120μs | 162ns | 629ns | 0.0598 | 0 | 0 | 4.28 KB |
master | EnrichedLog |
net472 | 150μs | 150ns | 583ns | 0.674 | 0.225 | 0 | 4.46 KB |
#5963 | EnrichedLog |
net6.0 | 118μs | 229ns | 887ns | 0.0584 | 0 | 0 | 4.28 KB |
#5963 | EnrichedLog |
netcoreapp3.1 | 120μs | 195ns | 755ns | 0.059 | 0 | 0 | 4.28 KB |
#5963 | EnrichedLog |
net472 | 148μs | 348ns | 1.35μs | 0.658 | 0.219 | 0 | 4.46 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.18μs | 0.988ns | 3.7ns | 0.0303 | 0 | 0 | 2.2 KB |
master | EnrichedLog |
netcoreapp3.1 | 4.24μs | 1.35ns | 5.23ns | 0.0298 | 0 | 0 | 2.2 KB |
master | EnrichedLog |
net472 | 4.89μs | 1.76ns | 6.59ns | 0.319 | 0 | 0 | 2.02 KB |
#5963 | EnrichedLog |
net6.0 | 3μs | 1.39ns | 5.37ns | 0.0315 | 0 | 0 | 2.2 KB |
#5963 | EnrichedLog |
netcoreapp3.1 | 4.24μs | 2.32ns | 8.69ns | 0.0296 | 0 | 0 | 2.2 KB |
#5963 | EnrichedLog |
net472 | 4.89μs | 1.31ns | 4.89ns | 0.319 | 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.26μs | 0.93ns | 3.6ns | 0.0158 | 0 | 0 | 1.14 KB |
master | SendReceive |
netcoreapp3.1 | 1.75μs | 1.23ns | 4.75ns | 0.0149 | 0 | 0 | 1.14 KB |
master | SendReceive |
net472 | 2.23μs | 0.856ns | 3.32ns | 0.184 | 0.00113 | 0 | 1.16 KB |
#5963 | SendReceive |
net6.0 | 1.29μs | 0.979ns | 3.66ns | 0.0162 | 0 | 0 | 1.14 KB |
#5963 | SendReceive |
netcoreapp3.1 | 1.84μs | 0.741ns | 2.67ns | 0.0147 | 0 | 0 | 1.14 KB |
#5963 | SendReceive |
net472 | 2.15μs | 1.97ns | 7.64ns | 0.184 | 0 | 0 | 1.16 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 |
net6.0 | 2.82μs | 1.12ns | 4.04ns | 0.0225 | 0 | 0 | 1.6 KB |
master | EnrichedLog |
netcoreapp3.1 | 3.72μs | 1.25ns | 4.66ns | 0.0224 | 0 | 0 | 1.65 KB |
master | EnrichedLog |
net472 | 4.2μs | 3.55ns | 13.8ns | 0.324 | 0 | 0 | 2.04 KB |
#5963 | EnrichedLog |
net6.0 | 2.65μs | 0.96ns | 3.72ns | 0.0226 | 0 | 0 | 1.6 KB |
#5963 | EnrichedLog |
netcoreapp3.1 | 3.96μs | 0.833ns | 3.12ns | 0.0218 | 0 | 0 | 1.65 KB |
#5963 | EnrichedLog |
net472 | 4.25μs | 1.63ns | 6.12ns | 0.323 | 0 | 0 | 2.04 KB |
Benchmarks.Trace.SpanBenchmark - Faster 🎉 Same allocations ✔️
Faster 🎉 in #5963
Benchmark
base/diff
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net6.0
1.232
509.46
413.60
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net472
1.170
697.28
595.90
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑netcoreapp3.1
1.145
749.58
654.87
Benchmark | base/diff | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net6.0 | 1.232 | 509.46 | 413.60 | |
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net472 | 1.170 | 697.28 | 595.90 | |
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑netcoreapp3.1 | 1.145 | 749.58 | 654.87 |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | StartFinishSpan |
net6.0 | 509ns | 0.43ns | 1.67ns | 0.00812 | 0 | 0 | 576 B |
master | StartFinishSpan |
netcoreapp3.1 | 588ns | 0.641ns | 2.4ns | 0.00765 | 0 | 0 | 576 B |
master | StartFinishSpan |
net472 | 698ns | 0.529ns | 2.05ns | 0.0917 | 0 | 0 | 578 B |
master | StartFinishScope |
net6.0 | 470ns | 0.343ns | 1.33ns | 0.00971 | 0 | 0 | 696 B |
master | StartFinishScope |
netcoreapp3.1 | 750ns | 0.404ns | 1.57ns | 0.00927 | 0 | 0 | 696 B |
master | StartFinishScope |
net472 | 819ns | 1.51ns | 5.84ns | 0.104 | 0 | 0 | 658 B |
#5963 | StartFinishSpan |
net6.0 | 414ns | 0.366ns | 1.42ns | 0.00807 | 0 | 0 | 576 B |
#5963 | StartFinishSpan |
netcoreapp3.1 | 586ns | 0.33ns | 1.23ns | 0.00791 | 0 | 0 | 576 B |
#5963 | StartFinishSpan |
net472 | 596ns | 1.2ns | 4.63ns | 0.0917 | 0 | 0 | 578 B |
#5963 | StartFinishScope |
net6.0 | 477ns | 0.432ns | 1.67ns | 0.00976 | 0 | 0 | 696 B |
#5963 | StartFinishScope |
netcoreapp3.1 | 654ns | 0.548ns | 2.05ns | 0.00947 | 0 | 0 | 696 B |
#5963 | StartFinishScope |
net472 | 812ns | 0.539ns | 2.09ns | 0.104 | 0 | 0 | 658 B |
Benchmarks.Trace.TraceAnnotationsBenchmark - Slower ⚠️ Same allocations ✔️
Slower ⚠️ in #5963
Benchmark
diff/base
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑net6.0
1.131
637.70
721.14
Faster 🎉 in #5963
Benchmark
base/diff
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑netcoreapp3.1
1.124
1,007.94
896.52
Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑net6.0 | 1.131 | 637.70 | 721.14 |
Benchmark | base/diff | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑netcoreapp3.1 | 1.124 | 1,007.94 | 896.52 |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | RunOnMethodBegin |
net6.0 | 638ns | 0.46ns | 1.78ns | 0.00997 | 0 | 0 | 696 B |
master | RunOnMethodBegin |
netcoreapp3.1 | 1.01μs | 1.65ns | 6.39ns | 0.00964 | 0 | 0 | 696 B |
master | RunOnMethodBegin |
net472 | 1.01μs | 1.12ns | 4.34ns | 0.104 | 0 | 0 | 658 B |
#5963 | RunOnMethodBegin |
net6.0 | 721ns | 0.489ns | 1.89ns | 0.00979 | 0 | 0 | 696 B |
#5963 | RunOnMethodBegin |
netcoreapp3.1 | 894ns | 2.39ns | 8.96ns | 0.00967 | 0 | 0 | 696 B |
#5963 | RunOnMethodBegin |
net472 | 1.01μs | 0.87ns | 3.37ns | 0.104 | 0 | 0 | 658 B |
dce2c3f
to
b165d41
Compare
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
Summary of changes
Fix
LinuxDlIteratePhdrDeadlock
test.Reason for change
The test is randomly failing and not because there is a deadlock, but only because it's not correct. It uses the
dlopen
anddlclose
fromlibdl.so
library, instead of the ones we wrapped in theDatadog.Linux.ApiWrapper.x64.so
file.Implementation details
NativeLibrary.SetDllImportResolver
to make sure we control how we want to resolve for ourApiWrapper
library.Test coverage
Other details