Bump the statsd default packet size - #8967
Conversation
|
@codex review |
|
Codex Review: Didn't find any major issues. What shall we delve into next? Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
BenchmarksBenchmark execution time: 2026-07-31 14:15:52 Comparing candidate commit 48acd35 in PR branch Found 0 performance improvements and 2 performance regressions! Performance is the same for 70 metrics, 0 unstable metrics, 65 known flaky benchmarks, 61 flaky benchmarks without significant changes.
|
Execution-Time Benchmarks Report ⏱️Execution-time results for samples comparing This PR (8967) and master.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Metric | Master (Mean ± 95% CI) | Current (Mean ± 95% CI) | Change | Status |
|---|---|---|---|---|
| .NET Framework 4.8 - Baseline | ||||
| duration | 191.33 ± (191.26 - 192.06) ms | 211.51 ± (211.24 - 212.25) ms | +10.5% | ❌⬆️ |
| .NET Framework 4.8 - Bailout | ||||
| duration | 195.07 ± (195.02 - 195.45) ms | 215.73 ± (215.40 - 216.45) ms | +10.6% | ❌⬆️ |
| .NET Framework 4.8 - CallTarget+Inlining+NGEN | ||||
| duration | 1174.32 ± (1175.82 - 1183.25) ms | 1271.64 ± (1272.59 - 1280.91) ms | +8.3% | ❌⬆️ |
Full Metrics Comparison
FakeDbCommand
| Metric | Master (Mean ± 95% CI) | Current (Mean ± 95% CI) | Change | Status |
|---|---|---|---|---|
| .NET Framework 4.8 - Baseline | ||||
| duration | 74.01 ± (73.73 - 74.28) ms | 70.91 ± (71.01 - 71.44) ms | -4.2% | ✅ |
| .NET Framework 4.8 - Bailout | ||||
| duration | 76.13 ± (75.94 - 76.44) ms | 75.21 ± (75.19 - 75.50) ms | -1.2% | ✅ |
| .NET Framework 4.8 - CallTarget+Inlining+NGEN | ||||
| duration | 1083.43 ± (1085.28 - 1092.10) ms | 1088.10 ± (1087.55 - 1094.15) ms | +0.4% | ✅⬆️ |
| .NET Core 3.1 - Baseline | ||||
| process.internal_duration_ms | 22.28 ± (22.24 - 22.33) ms | 22.01 ± (21.98 - 22.04) ms | -1.2% | ✅ |
| process.time_to_main_ms | 83.33 ± (83.07 - 83.58) ms | 81.51 ± (81.34 - 81.69) ms | -2.2% | ✅ |
| runtime.dotnet.exceptions.count | 0 ± (0 - 0) | 0 ± (0 - 0) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 11.00 ± (10.99 - 11.00) MB | 10.99 ± (10.99 - 11.00) MB | -0.0% | ✅ |
| runtime.dotnet.threads.count | 12 ± (12 - 12) | 12 ± (12 - 12) | +0.0% | ✅ |
| .NET Core 3.1 - Bailout | ||||
| process.internal_duration_ms | 22.03 ± (22.00 - 22.06) ms | 22.00 ± (21.97 - 22.03) ms | -0.1% | ✅ |
| process.time_to_main_ms | 83.07 ± (82.91 - 83.23) ms | 82.46 ± (82.29 - 82.64) ms | -0.7% | ✅ |
| runtime.dotnet.exceptions.count | 0 ± (0 - 0) | 0 ± (0 - 0) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 11.03 ± (11.03 - 11.04) MB | 11.03 ± (11.02 - 11.03) MB | -0.1% | ✅ |
| runtime.dotnet.threads.count | 13 ± (13 - 13) | 13 ± (13 - 13) | +0.0% | ✅ |
| .NET Core 3.1 - CallTarget+Inlining+NGEN | ||||
| process.internal_duration_ms | 209.16 ± (208.28 - 210.04) ms | 211.04 ± (210.14 - 211.94) ms | +0.9% | ✅⬆️ |
| process.time_to_main_ms | 533.77 ± (532.47 - 535.06) ms | 539.62 ± (538.42 - 540.82) ms | +1.1% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 0 ± (0 - 0) | 0 ± (0 - 0) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 49.67 ± (49.63 - 49.70) MB | 49.48 ± (49.44 - 49.51) MB | -0.4% | ✅ |
| runtime.dotnet.threads.count | 28 ± (28 - 28) | 28 ± (28 - 28) | -0.0% | ✅ |
| .NET 6 - Baseline | ||||
| process.internal_duration_ms | 21.04 ± (21.00 - 21.08) ms | 21.12 ± (21.07 - 21.16) ms | +0.4% | ✅⬆️ |
| process.time_to_main_ms | 73.86 ± (73.61 - 74.11) ms | 73.97 ± (73.68 - 74.25) ms | +0.1% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 0 ± (0 - 0) | 0 ± (0 - 0) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 10.72 ± (10.72 - 10.72) MB | 10.71 ± (10.71 - 10.71) MB | -0.1% | ✅ |
| runtime.dotnet.threads.count | 10 ± (10 - 10) | 10 ± (10 - 10) | +0.0% | ✅ |
| .NET 6 - Bailout | ||||
| process.internal_duration_ms | 20.82 ± (20.78 - 20.86) ms | 20.90 ± (20.86 - 20.94) ms | +0.4% | ✅⬆️ |
| process.time_to_main_ms | 72.43 ± (72.28 - 72.58) ms | 74.10 ± (73.85 - 74.35) ms | +2.3% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 0 ± (0 - 0) | 0 ± (0 - 0) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 10.85 ± (10.84 - 10.85) MB | 10.82 ± (10.82 - 10.83) MB | -0.2% | ✅ |
| runtime.dotnet.threads.count | 11 ± (11 - 11) | 11 ± (11 - 11) | +0.0% | ✅ |
| .NET 6 - CallTarget+Inlining+NGEN | ||||
| process.internal_duration_ms | 368.25 ± (366.12 - 370.38) ms | 372.10 ± (369.87 - 374.33) ms | +1.0% | ✅⬆️ |
| process.time_to_main_ms | 544.80 ± (543.56 - 546.04) ms | 544.36 ± (543.23 - 545.48) ms | -0.1% | ✅ |
| runtime.dotnet.exceptions.count | 0 ± (0 - 0) | 0 ± (0 - 0) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 50.66 ± (50.64 - 50.67) MB | 50.63 ± (50.61 - 50.66) MB | -0.0% | ✅ |
| runtime.dotnet.threads.count | 28 ± (28 - 28) | 28 ± (28 - 28) | -0.0% | ✅ |
| .NET 8 - Baseline | ||||
| process.internal_duration_ms | 19.18 ± (19.15 - 19.21) ms | 19.16 ± (19.13 - 19.19) ms | -0.1% | ✅ |
| process.time_to_main_ms | 70.19 ± (70.03 - 70.35) ms | 70.24 ± (70.10 - 70.37) ms | +0.1% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 0 ± (0 - 0) | 0 ± (0 - 0) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 7.77 ± (7.76 - 7.77) MB | 7.77 ± (7.77 - 7.78) MB | +0.1% | ✅⬆️ |
| runtime.dotnet.threads.count | 10 ± (10 - 10) | 10 ± (10 - 10) | +0.0% | ✅ |
| .NET 8 - Bailout | ||||
| process.internal_duration_ms | 19.19 ± (19.15 - 19.23) ms | 19.37 ± (19.32 - 19.41) ms | +0.9% | ✅⬆️ |
| process.time_to_main_ms | 73.67 ± (73.43 - 73.91) ms | 73.78 ± (73.49 - 74.07) ms | +0.2% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 0 ± (0 - 0) | 0 ± (0 - 0) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 7.82 ± (7.81 - 7.82) MB | 7.83 ± (7.83 - 7.84) MB | +0.2% | ✅⬆️ |
| runtime.dotnet.threads.count | 11 ± (11 - 11) | 11 ± (11 - 11) | +0.0% | ✅ |
| .NET 8 - CallTarget+Inlining+NGEN | ||||
| process.internal_duration_ms | 297.76 ± (295.42 - 300.10) ms | 297.51 ± (294.92 - 300.10) ms | -0.1% | ✅ |
| process.time_to_main_ms | 490.56 ± (489.75 - 491.38) ms | 496.49 ± (495.33 - 497.65) ms | +1.2% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 0 ± (0 - 0) | 0 ± (0 - 0) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 38.07 ± (38.04 - 38.10) MB | 38.11 ± (38.08 - 38.14) MB | +0.1% | ✅⬆️ |
| runtime.dotnet.threads.count | 27 ± (27 - 27) | 27 ± (27 - 27) | +0.0% | ✅⬆️ |
HttpMessageHandler
| Metric | Master (Mean ± 95% CI) | Current (Mean ± 95% CI) | Change | Status |
|---|---|---|---|---|
| .NET Framework 4.8 - Baseline | ||||
| duration | 191.33 ± (191.26 - 192.06) ms | 211.51 ± (211.24 - 212.25) ms | +10.5% | ❌⬆️ |
| .NET Framework 4.8 - Bailout | ||||
| duration | 195.07 ± (195.02 - 195.45) ms | 215.73 ± (215.40 - 216.45) ms | +10.6% | ❌⬆️ |
| .NET Framework 4.8 - CallTarget+Inlining+NGEN | ||||
| duration | 1174.32 ± (1175.82 - 1183.25) ms | 1271.64 ± (1272.59 - 1280.91) ms | +8.3% | ❌⬆️ |
| .NET Core 3.1 - Baseline | ||||
| process.internal_duration_ms | 188.06 ± (187.65 - 188.47) ms | 203.73 ± (203.24 - 204.21) ms | +8.3% | ✅⬆️ |
| process.time_to_main_ms | 82.51 ± (82.23 - 82.78) ms | 90.01 ± (89.74 - 90.29) ms | +9.1% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 3 ± (3 - 3) | 3 ± (3 - 3) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 16.24 ± (16.22 - 16.27) MB | 16.11 ± (16.09 - 16.13) MB | -0.8% | ✅ |
| runtime.dotnet.threads.count | 19 ± (19 - 20) | 20 ± (20 - 20) | +1.3% | ✅⬆️ |
| .NET Core 3.1 - Bailout | ||||
| process.internal_duration_ms | 190.97 ± (190.58 - 191.36) ms | 204.63 ± (204.11 - 205.14) ms | +7.1% | ✅⬆️ |
| process.time_to_main_ms | 85.10 ± (84.91 - 85.28) ms | 92.12 ± (91.82 - 92.42) ms | +8.3% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 3 ± (3 - 3) | 3 ± (3 - 3) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 16.29 ± (16.26 - 16.31) MB | 16.18 ± (16.16 - 16.20) MB | -0.6% | ✅ |
| runtime.dotnet.threads.count | 21 ± (20 - 21) | 21 ± (21 - 21) | +1.7% | ✅⬆️ |
| .NET Core 3.1 - CallTarget+Inlining+NGEN | ||||
| process.internal_duration_ms | 380.59 ± (379.29 - 381.90) ms | 404.74 ± (403.24 - 406.23) ms | +6.3% | ✅⬆️ |
| process.time_to_main_ms | 535.63 ± (534.55 - 536.70) ms | 572.53 ± (571.04 - 574.02) ms | +6.9% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 3 ± (3 - 3) | 3 ± (3 - 3) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 57.97 ± (57.91 - 58.02) MB | 59.81 ± (59.72 - 59.89) MB | +3.2% | ✅⬆️ |
| runtime.dotnet.threads.count | 30 ± (30 - 30) | 30 ± (30 - 30) | +1.7% | ✅⬆️ |
| .NET 6 - Baseline | ||||
| process.internal_duration_ms | 190.92 ± (190.66 - 191.18) ms | 209.12 ± (208.64 - 209.60) ms | +9.5% | ✅⬆️ |
| process.time_to_main_ms | 71.56 ± (71.38 - 71.75) ms | 79.20 ± (78.93 - 79.46) ms | +10.7% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 4 ± (4 - 4) | 4 ± (4 - 4) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 16.26 ± (16.11 - 16.42) MB | 16.31 ± (16.29 - 16.34) MB | +0.3% | ✅⬆️ |
| runtime.dotnet.threads.count | 18 ± (18 - 18) | 20 ± (19 - 20) | +8.1% | ✅⬆️ |
| .NET 6 - Bailout | ||||
| process.internal_duration_ms | 190.81 ± (190.53 - 191.09) ms | 209.50 ± (208.99 - 210.00) ms | +9.8% | ✅⬆️ |
| process.time_to_main_ms | 72.65 ± (72.54 - 72.76) ms | 80.77 ± (80.50 - 81.04) ms | +11.2% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 4 ± (4 - 4) | 4 ± (4 - 4) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 16.23 ± (16.08 - 16.39) MB | 16.47 ± (16.45 - 16.49) MB | +1.5% | ✅⬆️ |
| runtime.dotnet.threads.count | 20 ± (19 - 20) | 21 ± (20 - 21) | +4.1% | ✅⬆️ |
| .NET 6 - CallTarget+Inlining+NGEN | ||||
| process.internal_duration_ms | 581.60 ± (579.18 - 584.03) ms | 578.20 ± (575.62 - 580.79) ms | -0.6% | ✅ |
| process.time_to_main_ms | 548.75 ± (547.20 - 550.29) ms | 588.15 ± (586.73 - 589.57) ms | +7.2% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 4 ± (4 - 4) | 4 ± (4 - 4) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 61.65 ± (61.58 - 61.71) MB | 61.54 ± (61.45 - 61.63) MB | -0.2% | ✅ |
| runtime.dotnet.threads.count | 31 ± (31 - 31) | 31 ± (31 - 31) | +0.1% | ✅⬆️ |
| .NET 8 - Baseline | ||||
| process.internal_duration_ms | 207.54 ± (207.15 - 207.93) ms | 211.03 ± (210.52 - 211.53) ms | +1.7% | ✅⬆️ |
| process.time_to_main_ms | 78.05 ± (77.77 - 78.32) ms | 79.70 ± (79.39 - 80.02) ms | +2.1% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 4 ± (4 - 4) | 4 ± (4 - 4) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 11.72 ± (11.70 - 11.75) MB | 11.75 ± (11.73 - 11.77) MB | +0.2% | ✅⬆️ |
| runtime.dotnet.threads.count | 19 ± (19 - 19) | 19 ± (19 - 19) | +1.0% | ✅⬆️ |
| .NET 8 - Bailout | ||||
| process.internal_duration_ms | 207.63 ± (207.18 - 208.07) ms | 207.13 ± (206.68 - 207.58) ms | -0.2% | ✅ |
| process.time_to_main_ms | 79.47 ± (79.25 - 79.68) ms | 79.67 ± (79.40 - 79.94) ms | +0.3% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 4 ± (4 - 4) | 4 ± (4 - 4) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 11.79 ± (11.77 - 11.81) MB | 11.83 ± (11.80 - 11.86) MB | +0.4% | ✅⬆️ |
| runtime.dotnet.threads.count | 20 ± (20 - 20) | 20 ± (20 - 20) | -0.1% | ✅ |
| .NET 8 - CallTarget+Inlining+NGEN | ||||
| process.internal_duration_ms | 514.54 ± (509.77 - 519.32) ms | 509.03 ± (505.32 - 512.73) ms | -1.1% | ✅ |
| process.time_to_main_ms | 525.91 ± (525.01 - 526.81) ms | 532.04 ± (531.04 - 533.03) ms | +1.2% | ✅⬆️ |
| runtime.dotnet.exceptions.count | 4 ± (4 - 4) | 4 ± (4 - 4) | +0.0% | ✅ |
| runtime.dotnet.mem.committed | 51.43 ± (51.37 - 51.48) MB | 51.37 ± (51.33 - 51.41) MB | -0.1% | ✅ |
| runtime.dotnet.threads.count | 30 ± (30 - 30) | 30 ± (30 - 30) | +0.1% | ✅⬆️ |
Comparison explanation
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 highlighted 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).
Duration charts
FakeDbCommand (.NET Framework 4.8)
gantt
title Execution time (ms) FakeDbCommand (.NET Framework 4.8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8967) - mean (71ms) : 68, 74
master - mean (74ms) : 70, 78
section Bailout
This PR (8967) - mean (75ms) : 74, 77
master - mean (76ms) : 73, 80
section CallTarget+Inlining+NGEN
This PR (8967) - mean (1,091ms) : 1043, 1138
master - mean (1,089ms) : 1038, 1139
FakeDbCommand (.NET Core 3.1)
gantt
title Execution time (ms) FakeDbCommand (.NET Core 3.1)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8967) - mean (110ms) : 107, 113
master - mean (113ms) : 108, 118
section Bailout
This PR (8967) - mean (111ms) : 108, 114
master - mean (112ms) : 110, 114
section CallTarget+Inlining+NGEN
This PR (8967) - mean (789ms) : 759, 819
master - mean (781ms) : 759, 804
FakeDbCommand (.NET 6)
gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8967) - mean (102ms) : 96, 108
master - mean (102ms) : 96, 108
section Bailout
This PR (8967) - mean (102ms) : 96, 107
master - mean (99ms) : 97, 102
section CallTarget+Inlining+NGEN
This PR (8967) - mean (946ms) : 910, 982
master - mean (942ms) : 908, 975
FakeDbCommand (.NET 8)
gantt
title Execution time (ms) FakeDbCommand (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8967) - mean (97ms) : 94, 100
master - mean (96ms) : 93, 99
section Bailout
This PR (8967) - mean (101ms) : 95, 108
master - mean (101ms) : 96, 105
section CallTarget+Inlining+NGEN
This PR (8967) - mean (825ms) : 781, 869
master - mean (819ms) : 782, 856
HttpMessageHandler (.NET Framework 4.8)
gantt
title Execution time (ms) HttpMessageHandler (.NET Framework 4.8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8967) - mean (212ms) : 206, 217
master - mean (192ms) : 188, 196
section Bailout
This PR (8967) - mean (216ms) : crit, 211, 221
master - mean (195ms) : 193, 197
section CallTarget+Inlining+NGEN
This PR (8967) - mean (1,277ms) : crit, 1215, 1339
master - mean (1,180ms) : 1127, 1233
HttpMessageHandler (.NET Core 3.1)
gantt
title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8967) - mean (303ms) : 297, 310
master - mean (280ms) : 272, 288
section Bailout
This PR (8967) - mean (306ms) : crit, 299, 313
master - mean (285ms) : 280, 291
section CallTarget+Inlining+NGEN
This PR (8967) - mean (1,020ms) : crit, 999, 1042
master - mean (957ms) : 933, 982
HttpMessageHandler (.NET 6)
gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8967) - mean (298ms) : 290, 306
master - mean (272ms) : 267, 276
section Bailout
This PR (8967) - mean (299ms) : crit, 292, 307
master - mean (272ms) : 269, 275
section CallTarget+Inlining+NGEN
This PR (8967) - mean (1,206ms) : 1173, 1238
master - mean (1,164ms) : 1119, 1208
HttpMessageHandler (.NET 8)
gantt
title Execution time (ms) HttpMessageHandler (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8967) - mean (302ms) : 293, 311
master - mean (297ms) : 289, 305
section Bailout
This PR (8967) - mean (298ms) : 292, 303
master - mean (298ms) : 291, 304
section CallTarget+Inlining+NGEN
This PR (8967) - mean (1,079ms) : 1007, 1150
master - mean (1,076ms) : 1007, 1145
Summary of changes
Increases the default packet size used by vendored dogstatsd
Reason for change
Customers can hit the package size limits and payloads are dropped without sending. These were increased upstream in DataDog/dogstatsd-csharp-client#170, but as we're using an older vendored version with older limits.
Implementation details
Test coverage
Meh
Other details
I considered making this setting actually configurable, but given the upstream code still doesn't have this as configurable, and the Go reference implementation recommends these limits, I think this is probably the best approach