Skip to content

Conversation

@morrisonlevi
Copy link
Contributor

What does this PR do?

Adds FallibleStringWriter which allows you to write!() and actually handle OOM conditions. The std implementation for String's fmt::Write will panic on OOM, despite the trait having Result as a return type.

Motivation

This will be used in an upcoming PR for libdd-profiling-ffi. That PR was too large, so I split this out.

Additional Notes

This is purely additions, no changes to existing functionality.

Expect more PRs :)

How to test the change?

Run test suites as normal, it adds nothing special.

@morrisonlevi morrisonlevi requested a review from a team as a code owner December 13, 2025 19:58
@codecov-commenter
Copy link

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 71.20%. Comparing base (73c675b) to head (bc57423).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1403      +/-   ##
==========================================
+ Coverage   71.16%   71.20%   +0.03%     
==========================================
  Files         403      404       +1     
  Lines       64368    64480     +112     
==========================================
+ Hits        45810    45913     +103     
- Misses      18558    18567       +9     
Components Coverage Δ
libdd-crashtracker 58.97% <ø> (ø)
libdd-crashtracker-ffi 16.74% <ø> (ø)
libdd-alloc 98.73% <ø> (ø)
libdd-data-pipeline 85.81% <ø> (ø)
libdd-data-pipeline-ffi 76.59% <ø> (ø)
libdd-common 81.13% <ø> (ø)
libdd-common-ffi 74.96% <ø> (ø)
libdd-telemetry 59.95% <ø> (ø)
libdd-telemetry-ffi 21.17% <ø> (ø)
libdd-dogstatsd-client 83.75% <ø> (ø)
datadog-ipc 82.61% <ø> (ø)
libdd-profiling 80.66% <100.00%> (+0.21%) ⬆️
libdd-profiling-ffi 63.41% <ø> (ø)
datadog-sidecar 35.86% <ø> (ø)
datdog-sidecar-ffi 10.79% <ø> (ø)
spawn-worker 55.18% <ø> (ø)
libdd-tinybytes 92.44% <ø> (ø)
libdd-trace-normalization 98.24% <ø> (ø)
libdd-trace-obfuscation 94.17% <ø> (ø)
libdd-trace-protobuf 61.18% <ø> (ø)
libdd-trace-utils 89.97% <ø> (ø)
datadog-tracer-flare 63.49% <ø> (ø)
libdd-log 75.57% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@pr-commenter
Copy link

pr-commenter bot commented Dec 13, 2025

Benchmarks

Comparison

Benchmark execution time: 2025-12-15 14:03:45

Comparing candidate commit 73c675b in PR branch levi/fallible-string-writer with baseline commit 73c675b in branch main.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 57 metrics, 2 unstable metrics.

Candidate

Candidate benchmark details

Group 1

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 73c675b 1765549099 levi/fallible-string-writer
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
tags/replace_trace_tags execution_time 2.406µs 2.456µs ± 0.073µs 2.430µs ± 0.017µs 2.483µs 2.526µs 2.784µs 2.787µs 14.69% 3.176 11.347 2.95% 0.005µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
tags/replace_trace_tags execution_time [2.446µs; 2.466µs] or [-0.410%; +0.410%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 73c675b 1765549099 levi/fallible-string-writer
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
sdk_test_data/rules-based execution_time 145.464µs 147.697µs ± 1.881µs 147.423µs ± 0.634µs 148.056µs 150.068µs 152.390µs 166.346µs 12.84% 5.871 50.337 1.27% 0.133µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
sdk_test_data/rules-based execution_time [147.436µs; 147.958µs] or [-0.177%; +0.177%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 73c675b 1765549099 levi/fallible-string-writer
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
ip_address/quantize_peer_ip_address_benchmark execution_time 4.990µs 5.064µs ± 0.050µs 5.039µs ± 0.025µs 5.098µs 5.146µs 5.164µs 5.165µs 2.52% 0.641 -1.077 0.98% 0.004µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
ip_address/quantize_peer_ip_address_benchmark execution_time [5.057µs; 5.071µs] or [-0.136%; +0.136%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 73c675b 1765549099 levi/fallible-string-writer
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
credit_card/is_card_number/ execution_time 3.891µs 3.911µs ± 0.002µs 3.911µs ± 0.001µs 3.912µs 3.914µs 3.916µs 3.920µs 0.23% -2.063 20.841 0.06% 0.000µs 1 200
credit_card/is_card_number/ throughput 255127315.714op/s 255708924.785op/s ± 157006.590op/s 255719600.912op/s ± 74492.947op/s 255784357.689op/s 255889239.050op/s 255952793.568op/s 256981670.383op/s 0.49% 2.097 21.130 0.06% 11102.042op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 80.014µs 82.022µs ± 0.671µs 82.065µs ± 0.441µs 82.490µs 83.017µs 83.284µs 83.650µs 1.93% -0.317 -0.255 0.82% 0.047µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 11954551.539op/s 12192594.274op/s ± 99996.546op/s 12185414.804op/s ± 65545.931op/s 12259780.558op/s 12362321.040op/s 12412811.686op/s 12497812.883op/s 2.56% 0.358 -0.219 0.82% 7070.824op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 74.464µs 75.045µs ± 0.176µs 75.041µs ± 0.107µs 75.154µs 75.316µs 75.444µs 75.585µs 0.73% -0.121 0.863 0.23% 0.012µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13230136.949op/s 13325405.036op/s ± 31227.024op/s 13326098.125op/s ± 18986.106op/s 13344012.532op/s 13371095.636op/s 13414800.254op/s 13429395.604op/s 0.78% 0.141 0.872 0.23% 2208.084op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.893µs 3.912µs ± 0.003µs 3.911µs ± 0.002µs 3.914µs 3.915µs 3.917µs 3.918µs 0.17% -1.492 10.792 0.07% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 255228465.410op/s 255647293.002op/s ± 169437.654op/s 255662839.433op/s ± 108149.805op/s 255745963.974op/s 255860917.328op/s 255934719.784op/s 256841222.604op/s 0.46% 1.514 10.960 0.07% 11981.051op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 71.588µs 72.205µs ± 0.247µs 72.202µs ± 0.176µs 72.368µs 72.620µs 72.822µs 72.848µs 0.89% 0.181 -0.241 0.34% 0.017µs 1 200
credit_card/is_card_number/378282246310005 throughput 13727237.229op/s 13849662.177op/s ± 47340.276op/s 13850005.635op/s ± 33777.084op/s 13884299.643op/s 13928040.560op/s 13944466.345op/s 13968724.729op/s 0.86% -0.163 -0.250 0.34% 3347.463op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 52.149µs 52.212µs ± 0.034µs 52.209µs ± 0.019µs 52.228µs 52.280µs 52.303µs 52.335µs 0.24% 0.728 0.807 0.06% 0.002µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 19107782.022op/s 19152715.137op/s ± 12322.813op/s 19153768.549op/s ± 7007.725op/s 19160682.758op/s 19171561.195op/s 19174941.994op/s 19175736.940op/s 0.11% -0.724 0.798 0.06% 871.354op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 5.696µs 5.865µs ± 0.073µs 5.861µs ± 0.054µs 5.923µs 5.980µs 6.002µs 6.030µs 2.87% -0.010 -0.610 1.23% 0.005µs 1 200
credit_card/is_card_number/x371413321323331 throughput 165840013.244op/s 170539280.752op/s ± 2110748.964op/s 170606297.141op/s ± 1580891.489op/s 171876435.557op/s 173941011.408op/s 175436309.449op/s 175566591.203op/s 2.91% 0.061 -0.588 1.23% 149252.491op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.890µs 3.911µs ± 0.003µs 3.911µs ± 0.002µs 3.913µs 3.916µs 3.918µs 3.919µs 0.20% -1.660 14.748 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 255168203.946op/s 255663093.287op/s ± 188826.562op/s 255676541.724op/s ± 98414.154op/s 255768398.868op/s 255893126.381op/s 255939762.582op/s 257087061.825op/s 0.55% 1.691 15.008 0.07% 13352.054op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 64.152µs 64.457µs ± 0.211µs 64.395µs ± 0.118µs 64.605µs 64.782µs 65.094µs 65.514µs 1.74% 1.423 3.013 0.33% 0.015µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15264023.577op/s 15514316.650op/s ± 50451.161op/s 15529169.942op/s ± 28439.151op/s 15551912.711op/s 15568827.005op/s 15576382.972op/s 15588086.026op/s 0.38% -1.394 2.855 0.32% 3567.436op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 57.387µs 57.559µs ± 0.120µs 57.529µs ± 0.062µs 57.607µs 57.850µs 57.956µs 58.077µs 0.95% 1.582 3.053 0.21% 0.008µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 17218598.620op/s 17373629.850op/s ± 36080.371op/s 17382609.569op/s ± 18878.261op/s 17397887.462op/s 17414511.252op/s 17425011.112op/s 17425496.987op/s 0.25% -1.567 2.990 0.21% 2551.267op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.902µs 3.912µs ± 0.003µs 3.911µs ± 0.002µs 3.913µs 3.916µs 3.920µs 3.920µs 0.23% 0.713 1.552 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 255095016.658op/s 255641271.262op/s ± 174125.082op/s 255671952.787op/s ± 99062.307op/s 255753548.402op/s 255852520.085op/s 255948490.921op/s 256267658.490op/s 0.23% -0.707 1.549 0.07% 12312.503op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 54.592µs 54.933µs ± 0.253µs 54.854µs ± 0.111µs 55.025µs 55.364µs 55.787µs 56.348µs 2.72% 1.975 5.836 0.46% 0.018µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 17746789.965op/s 18204217.977op/s ± 83166.257op/s 18230158.472op/s ± 36963.442op/s 18259153.361op/s 18289765.056op/s 18302907.876op/s 18317779.237op/s 0.48% -1.922 5.487 0.46% 5880.742op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 52.122µs 52.186µs ± 0.032µs 52.183µs ± 0.016µs 52.199µs 52.233µs 52.273µs 52.386µs 0.39% 2.291 11.398 0.06% 0.002µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 19089213.839op/s 19162337.782op/s ± 11725.235op/s 19163388.347op/s ± 5776.479op/s 19168692.254op/s 19176735.552op/s 19179646.678op/s 19185683.643op/s 0.12% -2.277 11.288 0.06% 829.099op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 5.697µs 5.871µs ± 0.062µs 5.867µs ± 0.042µs 5.924µs 5.969µs 6.000µs 6.003µs 2.33% -0.030 -0.574 1.05% 0.004µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 166573811.043op/s 170355951.790op/s ± 1801845.247op/s 170458894.210op/s ± 1223624.200op/s 171599675.998op/s 173413387.049op/s 174048950.999op/s 175539975.782op/s 2.98% 0.075 -0.551 1.06% 127409.699op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
credit_card/is_card_number/ execution_time [3.910µs; 3.911µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number/ throughput [255687165.182op/s; 255730684.388op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [81.930µs; 82.115µs] or [-0.113%; +0.113%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12178735.714op/s; 12206452.834op/s] or [-0.114%; +0.114%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [75.021µs; 75.069µs] or [-0.032%; +0.032%] None None None
credit_card/is_card_number/ 378282246310005 throughput [13321077.271op/s; 13329732.801op/s] or [-0.032%; +0.032%] None None None
credit_card/is_card_number/37828224631 execution_time [3.911µs; 3.912µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/37828224631 throughput [255623810.573op/s; 255670775.431op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/378282246310005 execution_time [72.171µs; 72.239µs] or [-0.047%; +0.047%] None None None
credit_card/is_card_number/378282246310005 throughput [13843101.270op/s; 13856223.084op/s] or [-0.047%; +0.047%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [52.207µs; 52.217µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [19151007.314op/s; 19154422.960op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/x371413321323331 execution_time [5.855µs; 5.875µs] or [-0.171%; +0.171%] None None None
credit_card/is_card_number/x371413321323331 throughput [170246751.246op/s; 170831810.258op/s] or [-0.172%; +0.172%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.911µs; 3.912µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/ throughput [255636923.742op/s; 255689262.833op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [64.428µs; 64.486µs] or [-0.045%; +0.045%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15507324.604op/s; 15521308.696op/s] or [-0.045%; +0.045%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [57.542µs; 57.575µs] or [-0.029%; +0.029%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [17368629.457op/s; 17378630.242op/s] or [-0.029%; +0.029%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.911µs; 3.912µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255617139.200op/s; 255665403.324op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [54.898µs; 54.969µs] or [-0.064%; +0.064%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [18192691.934op/s; 18215744.020op/s] or [-0.063%; +0.063%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [52.181µs; 52.190µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [19160712.777op/s; 19163962.786op/s] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [5.862µs; 5.879µs] or [-0.147%; +0.147%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [170106233.368op/s; 170605670.212op/s] or [-0.147%; +0.147%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 73c675b 1765549099 levi/fallible-string-writer
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
two way interface execution_time 17.595µs 24.849µs ± 9.383µs 17.882µs ± 0.215µs 33.775µs 42.641µs 44.145µs 68.848µs 285.01% 1.124 1.157 37.66% 0.663µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [23.549µs; 26.150µs] or [-5.233%; +5.233%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 73c675b 1765549099 levi/fallible-string-writer
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
write only interface execution_time 1.212µs 3.227µs ± 1.448µs 3.020µs ± 0.028µs 3.045µs 3.672µs 14.040µs 15.112µs 400.36% 7.404 55.750 44.76% 0.102µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
write only interface execution_time [3.026µs; 3.428µs] or [-6.218%; +6.218%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 73c675b 1765549099 levi/fallible-string-writer
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
profile_add_sample_frames_x1000 execution_time 3.900ms 3.905ms ± 0.008ms 3.903ms ± 0.001ms 3.905ms 3.910ms 3.925ms 3.996ms 2.38% 9.426 107.762 0.19% 0.001ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
profile_add_sample_frames_x1000 execution_time [3.904ms; 3.906ms] or [-0.027%; +0.027%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 73c675b 1765549099 levi/fallible-string-writer
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
redis/obfuscate_redis_string execution_time 34.565µs 35.160µs ± 0.966µs 34.715µs ± 0.082µs 34.920µs 37.167µs 37.237µs 39.524µs 13.85% 1.837 2.154 2.74% 0.068µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
redis/obfuscate_redis_string execution_time [35.026µs; 35.294µs] or [-0.381%; +0.381%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 73c675b 1765549099 levi/fallible-string-writer
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
single_flag_killswitch/rules-based execution_time 188.357ns 191.413ns ± 3.063ns 190.950ns ± 1.652ns 192.612ns 195.553ns 200.328ns 216.381ns 13.32% 3.509 22.293 1.60% 0.217ns 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
single_flag_killswitch/rules-based execution_time [190.989ns; 191.838ns] or [-0.222%; +0.222%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 73c675b 1765549099 levi/fallible-string-writer
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... execution_time 206.287µs 206.635µs ± 0.237µs 206.582µs ± 0.116µs 206.717µs 207.104µs 207.355µs 207.965µs 0.67% 1.777 5.190 0.11% 0.017µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 4808498.306op/s 4839462.755op/s ± 5534.635op/s 4840694.067op/s ± 2715.872op/s 4842906.106op/s 4845873.142op/s 4847354.723op/s 4847605.689op/s 0.14% -1.763 5.104 0.11% 391.358op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 18.612µs 18.706µs ± 0.072µs 18.688µs ± 0.031µs 18.725µs 18.856µs 18.938µs 19.078µs 2.09% 1.935 4.839 0.38% 0.005µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 52415860.329op/s 53460668.978op/s ± 204689.561op/s 53509109.246op/s ± 89961.933op/s 53591785.031op/s 53675063.357op/s 53708649.402op/s 53728556.956op/s 0.41% -1.900 4.640 0.38% 14473.738op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.712µs 10.811µs ± 0.034µs 10.811µs ± 0.019µs 10.830µs 10.871µs 10.888µs 10.940µs 1.19% 0.198 0.663 0.32% 0.002µs 1 200
normalization/normalize_name/normalize_name/good throughput 91411505.289op/s 92501761.020op/s ± 294026.347op/s 92495507.621op/s ± 162974.864op/s 92677766.681op/s 92965116.957op/s 93124737.819op/s 93355044.914op/s 0.93% -0.173 0.635 0.32% 20790.802op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... execution_time [206.602µs; 206.668µs] or [-0.016%; +0.016%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [4838695.708op/s; 4840229.802op/s] or [-0.016%; +0.016%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.696µs; 18.716µs] or [-0.053%; +0.053%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [53432300.974op/s; 53489036.983op/s] or [-0.053%; +0.053%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.806µs; 10.815µs] or [-0.044%; +0.044%] None None None
normalization/normalize_name/normalize_name/good throughput [92461011.796op/s; 92542510.244op/s] or [-0.044%; +0.044%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 73c675b 1765549099 levi/fallible-string-writer
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
receiver_entry_point/report/2597 execution_time 9.577ms 9.903ms ± 0.078ms 9.914ms ± 0.032ms 9.938ms 10.016ms 10.061ms 10.124ms 2.12% -0.976 2.818 0.79% 0.006ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
receiver_entry_point/report/2597 execution_time [9.893ms; 9.914ms] or [-0.109%; +0.109%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 73c675b 1765549099 levi/fallible-string-writer
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
sql/obfuscate_sql_string execution_time 84.461µs 84.961µs ± 0.181µs 84.956µs ± 0.052µs 85.007µs 85.118µs 85.366µs 86.966µs 2.37% 6.724 74.325 0.21% 0.013µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
sql/obfuscate_sql_string execution_time [84.936µs; 84.986µs] or [-0.030%; +0.030%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 73c675b 1765549099 levi/fallible-string-writer
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
profile_add_sample2_frames_x1000 execution_time 521.848µs 522.403µs ± 0.464µs 522.309µs ± 0.174µs 522.531µs 523.010µs 523.640µs 527.089µs 0.92% 5.613 51.003 0.09% 0.033µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
profile_add_sample2_frames_x1000 execution_time [522.338µs; 522.467µs] or [-0.012%; +0.012%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 73c675b 1765549099 levi/fallible-string-writer
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
concentrator/add_spans_to_concentrator execution_time 10.574ms 10.601ms ± 0.014ms 10.601ms ± 0.008ms 10.608ms 10.623ms 10.632ms 10.717ms 1.10% 2.760 19.888 0.13% 0.001ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
concentrator/add_spans_to_concentrator execution_time [10.599ms; 10.603ms] or [-0.019%; +0.019%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 73c675b 1765549099 levi/fallible-string-writer
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching string interning on wordpress profile execution_time 161.292µs 162.157µs ± 0.262µs 162.131µs ± 0.155µs 162.300µs 162.557µs 162.924µs 163.202µs 0.66% 0.414 1.628 0.16% 0.019µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching string interning on wordpress profile execution_time [162.121µs; 162.193µs] or [-0.022%; +0.022%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 73c675b 1765549099 levi/fallible-string-writer
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching deserializing traces from msgpack to their internal representation execution_time 61.053ms 61.555ms ± 2.318ms 61.233ms ± 0.076ms 61.352ms 61.582ms 79.550ms 80.869ms 32.07% 7.922 61.170 3.76% 0.164ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching deserializing traces from msgpack to their internal representation execution_time [61.234ms; 61.876ms] or [-0.522%; +0.522%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 73c675b 1765549099 levi/fallible-string-writer
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... execution_time 533.041µs 533.809µs ± 0.519µs 533.740µs ± 0.210µs 533.981µs 534.381µs 534.855µs 539.378µs 1.06% 6.392 64.762 0.10% 0.037µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1853986.157op/s 1873329.928op/s ± 1809.584op/s 1873569.750op/s ± 736.531op/s 1874260.752op/s 1875021.594op/s 1875398.529op/s 1876028.505op/s 0.13% -6.317 63.674 0.10% 127.957op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 379.253µs 380.060µs ± 0.324µs 380.040µs ± 0.210µs 380.257µs 380.614µs 380.946µs 381.032µs 0.26% 0.363 0.248 0.09% 0.023µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2624454.185op/s 2631162.391op/s ± 2242.081op/s 2631300.012op/s ± 1454.686op/s 2632686.167op/s 2634831.200op/s 2635430.140op/s 2636759.244op/s 0.21% -0.357 0.242 0.08% 158.539op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 189.092µs 189.697µs ± 0.592µs 189.635µs ± 0.132µs 189.777µs 189.987µs 190.349µs 195.389µs 3.03% 8.199 74.247 0.31% 0.042µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5117994.040op/s 5271608.692op/s ± 16051.500op/s 5273295.289op/s ± 3674.108op/s 5276781.748op/s 5282956.612op/s 5284389.690op/s 5288431.028op/s 0.29% -8.114 73.201 0.30% 1135.012op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 36.830µs 36.928µs ± 0.040µs 36.927µs ± 0.026µs 36.955µs 36.993µs 37.020µs 37.035µs 0.29% 0.122 -0.178 0.11% 0.003µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 27001239.231op/s 27079830.426op/s ± 29244.466op/s 27080308.939op/s ± 18725.981op/s 27098335.806op/s 27125293.145op/s 27138081.061op/s 27152065.617op/s 0.26% -0.116 -0.180 0.11% 2067.896op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 44.889µs 45.177µs ± 0.170µs 45.179µs ± 0.108µs 45.282µs 45.377µs 45.468µs 46.646µs 3.25% 3.114 25.844 0.38% 0.012µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 21437866.275op/s 22135352.895op/s ± 82540.154op/s 22134158.332op/s ± 52961.354op/s 22188360.348op/s 22254067.521op/s 22273554.352op/s 22277023.701op/s 0.65% -2.915 23.709 0.37% 5836.470op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... execution_time [533.737µs; 533.881µs] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1873079.137op/s; 1873580.719op/s] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [380.016µs; 380.105µs] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2630851.660op/s; 2631473.121op/s] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [189.615µs; 189.779µs] or [-0.043%; +0.043%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5269384.108op/s; 5273833.275op/s] or [-0.042%; +0.042%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [36.922µs; 36.933µs] or [-0.015%; +0.015%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [27075777.425op/s; 27083883.428op/s] or [-0.015%; +0.015%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [45.154µs; 45.201µs] or [-0.052%; +0.052%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [22123913.623op/s; 22146792.166op/s] or [-0.052%; +0.052%] None None None

Group 18

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 73c675b 1765549099 levi/fallible-string-writer
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
normalization/normalize_trace/test_trace execution_time 245.510ns 257.345ns ± 14.047ns 250.204ns ± 3.254ns 263.452ns 288.204ns 290.471ns 292.612ns 16.95% 1.262 0.105 5.44% 0.993ns 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_trace/test_trace execution_time [255.398ns; 259.292ns] or [-0.756%; +0.756%] None None None

Group 19

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 73c675b 1765549099 levi/fallible-string-writer
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching serializing traces from their internal representation to msgpack execution_time 14.142ms 14.225ms ± 0.029ms 14.222ms ± 0.016ms 14.236ms 14.272ms 14.320ms 14.406ms 1.30% 1.777 7.884 0.21% 0.002ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching serializing traces from their internal representation to msgpack execution_time [14.221ms; 14.229ms] or [-0.029%; +0.029%] None None None

Baseline

Omitted due to size.

@dd-octo-sts
Copy link

dd-octo-sts bot commented Dec 13, 2025

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 7.44 MB 7.44 MB 0% (0 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 86.48 MB 86.48 MB 0% (0 B) 👌
aarch64-apple-darwin
Artifact Baseline Commit Change
/aarch64-apple-darwin/lib/libdatadog_profiling.a 58.49 MB 58.49 MB 0% (0 B) 👌
/aarch64-apple-darwin/lib/libdatadog_profiling.dylib 8.45 MB 8.45 MB 0% (0 B) 👌
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 9.61 MB 9.61 MB 0% (0 B) 👌
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 100.27 MB 100.27 MB 0% (0 B) 👌
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 19.72 MB 19.72 MB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 69.82 KB 69.82 KB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 140.15 MB 140.16 MB +0% (+8.00 KB) 👌
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 744.89 MB 745.03 MB +.01% (+141.25 KB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 6.37 MB 6.37 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 69.82 KB 69.82 KB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 19.75 MB 19.75 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 38.79 MB 38.79 MB 0% (0 B) 👌
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 16.83 MB 16.83 MB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 70.90 KB 70.90 KB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 142.76 MB 142.77 MB +0% (+8.00 KB) 👌
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 733.41 MB 733.36 MB -0% (-45.07 KB) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 4.89 MB 4.89 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 70.90 KB 70.90 KB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 20.98 MB 20.98 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 36.54 MB 36.54 MB 0% (0 B) 👌
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 74.80 MB 74.80 MB 0% (0 B) 👌
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 8.88 MB 8.88 MB 0% (0 B) 👌
x86_64-apple-darwin
Artifact Baseline Commit Change
/x86_64-apple-darwin/lib/libdatadog_profiling.a 59.83 MB 59.83 MB 0% (0 B) 👌
/x86_64-apple-darwin/lib/libdatadog_profiling.dylib 9.50 MB 9.50 MB 0% (0 B) 👌
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 94.46 MB 94.46 MB 0% (0 B) 👌
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 10.32 MB 10.32 MB 0% (0 B) 👌

Copy link
Contributor

@r1viollet r1viollet left a comment

Choose a reason for hiding this comment

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

LGTM

@morrisonlevi
Copy link
Contributor Author

/merge

@dd-devflow-routing-codex
Copy link

dd-devflow-routing-codex bot commented Dec 15, 2025

View all feedbacks in Devflow UI.

2025-12-15 16:12:53 UTC ℹ️ Start processing command /merge


2025-12-15 16:12:59 UTC ℹ️ MergeQueue: pull request added to the queue

The expected merge time in main is approximately 34m (p90).


2025-12-15 16:37:40 UTC ℹ️ MergeQueue: This merge request was merged

@dd-mergequeue dd-mergequeue bot merged commit 13970ff into main Dec 15, 2025
39 checks passed
@dd-mergequeue dd-mergequeue bot deleted the levi/fallible-string-writer branch December 15, 2025 16:37
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.

5 participants