Skip to content

chore(profiling): use weaker mem ordering for COUNTER#1750

Open
yannham wants to merge 1 commit intomainfrom
yannham/mem-ordering-counter
Open

chore(profiling): use weaker mem ordering for COUNTER#1750
yannham wants to merge 1 commit intomainfrom
yannham/mem-ordering-counter

Conversation

@yannham
Copy link
Contributor

@yannham yannham commented Mar 17, 2026

What does this PR do?

This PR replaces a bunch of sequentially consistent atomic accesses on id generator by weaker relaxed accesses.

Motivation

The motivation to use the weakest memory ordering applicable is two folds:

  1. Performance: relaxed accesses compile to normal, non-atomic loads and stores on standard platforms (x86_64 and arm64 in particular). Whether this particular change has any performance impact is less obvious.
  2. Readability: I think my main motivation is that I find it easier, at least as a reader, to reason about weaker orderings. For example, a relaxed access indicates that there's no other unsynchronized data that this atomic protect or interact with, which enables local reasoning (you don't have to care about what other threads might be doing). A sequentially consistent access is the converse: they lead to a global order which involves all other seqcst accesses to this atomic, which is a strong and far-reaching assumption.

Additional Notes

This atomic is a counter, which is the poster child for Relaxed ordering (you usually only need the atomicity). This counter doesn't protect or interact with unsynchronized memory, so there's no reason to use a stronger ordering.

How to test the change?

Should see no difference in behavior except maybe for performance.

@yannham yannham requested a review from a team as a code owner March 17, 2026 15:23
@codecov-commenter
Copy link

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (main@e44af12). Learn more about missing BASE report.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1750   +/-   ##
=======================================
  Coverage        ?   71.48%           
=======================================
  Files           ?      430           
  Lines           ?    64042           
  Branches        ?        0           
=======================================
  Hits            ?    45781           
  Misses          ?    18261           
  Partials        ?        0           
Components Coverage Δ
libdd-crashtracker 63.96% <ø> (?)
libdd-crashtracker-ffi 18.19% <ø> (?)
libdd-alloc 98.77% <ø> (?)
libdd-data-pipeline 87.94% <ø> (?)
libdd-data-pipeline-ffi 74.85% <ø> (?)
libdd-common 79.73% <ø> (?)
libdd-common-ffi 73.40% <ø> (?)
libdd-telemetry 62.48% <ø> (?)
libdd-telemetry-ffi 16.75% <ø> (?)
libdd-dogstatsd-client 82.64% <ø> (?)
datadog-ipc 80.35% <ø> (?)
libdd-profiling 81.59% <100.00%> (?)
libdd-profiling-ffi 63.65% <ø> (?)
datadog-sidecar 33.10% <ø> (?)
datdog-sidecar-ffi 10.79% <ø> (?)
spawn-worker 54.69% <ø> (?)
libdd-tinybytes 93.16% <ø> (?)
libdd-trace-normalization 81.71% <ø> (?)
libdd-trace-obfuscation 91.80% <ø> (?)
libdd-trace-protobuf 68.25% <ø> (?)
libdd-trace-utils 88.98% <ø> (?)
datadog-tracer-flare 90.46% <ø> (?)
libdd-log 74.69% <ø> (?)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions
Copy link

Clippy Allow Annotation Report

Comparing clippy allow annotations between branches:

  • Base Branch: origin/main
  • PR Branch: origin/yannham/mem-ordering-counter

Summary by Rule

Rule Base Branch PR Branch Change

Annotation Counts by File

File Base Branch PR Branch Change

Annotation Stats by Crate

Crate Base Branch PR Branch Change
clippy-annotation-reporter 5 5 No change (0%)
datadog-ffe-ffi 1 1 No change (0%)
datadog-ipc 28 28 No change (0%)
datadog-live-debugger 6 6 No change (0%)
datadog-live-debugger-ffi 10 10 No change (0%)
datadog-profiling-replayer 4 4 No change (0%)
datadog-remote-config 3 3 No change (0%)
datadog-sidecar 59 59 No change (0%)
libdd-common 10 10 No change (0%)
libdd-common-ffi 12 12 No change (0%)
libdd-data-pipeline 5 5 No change (0%)
libdd-ddsketch 2 2 No change (0%)
libdd-dogstatsd-client 1 1 No change (0%)
libdd-profiling 13 13 No change (0%)
libdd-telemetry 19 19 No change (0%)
libdd-tinybytes 4 4 No change (0%)
libdd-trace-normalization 2 2 No change (0%)
libdd-trace-obfuscation 9 9 No change (0%)
libdd-trace-utils 15 15 No change (0%)
Total 208 208 No change (0%)

About This Report

This report tracks Clippy allow annotations for specific rules, showing how they've changed in this PR. Decreasing the number of these annotations generally improves code quality.

@pr-commenter
Copy link

pr-commenter bot commented Mar 17, 2026

Benchmarks

Comparison

Benchmark execution time: 2026-03-17 15:41:03

Comparing candidate commit 79bbfd1 in PR branch yannham/mem-ordering-counter with baseline commit e44af12 in branch main.

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

Explanation

This is an A/B test comparing a candidate commit's performance against that of a baseline commit. Performance changes are noted in the tables below as:

  • 🟩 = significantly better candidate vs. baseline
  • 🟥 = significantly worse candidate vs. baseline

We compute a confidence interval (CI) over the relative difference of means between metrics from the candidate and baseline commits, considering the baseline as the reference.

If the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD), the change is considered significant.

Feel free to reach out to #apm-benchmarking-platform on Slack if you have any questions.

More details about the CI and significant changes

You can imagine this CI as a range of values that is likely to contain the true difference of means between the candidate and baseline commits.

CIs of the difference of means are often centered around 0%, because often changes are not that big:

---------------------------------(------|---^--------)-------------------------------->
                              -0.6%    0%  0.3%     +1.2%
                                 |          |        |
         lower bound of the CI --'          |        |
sample mean (center of the CI) -------------'        |
         upper bound of the CI ----------------------'

As described above, a change is considered significant if the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD).

For instance, for an execution time metric, this confidence interval indicates a significantly worse performance:

----------------------------------------|---------|---(---------^---------)---------->
                                       0%        1%  1.3%      2.2%      3.1%
                                                  |   |         |         |
       significant impact threshold --------------'   |         |         |
                      lower bound of CI --------------'         |         |
       sample mean (center of the CI) --------------------------'         |
                      upper bound of CI ----------------------------------'

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 79bbfd1 1773760949 yannham/mem-ordering-counter
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.893µs 3.913µs ± 0.003µs 3.912µs ± 0.002µs 3.915µs 3.919µs 3.921µs 3.922µs 0.25% -0.411 6.420 0.08% 0.000µs 1 200
credit_card/is_card_number/ throughput 254962975.007op/s 255569969.144op/s ± 208891.983op/s 255606569.089op/s ± 108342.287op/s 255694127.412op/s 255808386.631op/s 255888132.599op/s 256851818.709op/s 0.49% 0.432 6.533 0.08% 14770.894op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 80.312µs 80.784µs ± 0.257µs 80.742µs ± 0.156µs 80.937µs 81.233µs 81.425µs 81.823µs 1.34% 0.857 1.130 0.32% 0.018µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12221519.375op/s 12378816.989op/s ± 39295.002op/s 12385097.013op/s ± 23966.936op/s 12405621.918op/s 12435356.081op/s 12450342.362op/s 12451364.368op/s 0.54% -0.835 1.059 0.32% 2778.576op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 73.002µs 73.513µs ± 0.285µs 73.530µs ± 0.180µs 73.671µs 74.018µs 74.368µs 74.476µs 1.29% 0.560 0.422 0.39% 0.020µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13427097.917op/s 13603191.222op/s ± 52632.940op/s 13599893.244op/s ± 33308.874op/s 13646225.224op/s 13677124.780op/s 13689842.644op/s 13698165.161op/s 0.72% -0.536 0.364 0.39% 3721.711op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.894µs 3.913µs ± 0.003µs 3.913µs ± 0.002µs 3.915µs 3.918µs 3.919µs 3.924µs 0.29% -0.921 7.669 0.08% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 254809771.103op/s 255532100.423op/s ± 195999.157op/s 255538959.471op/s ± 116490.627op/s 255642966.054op/s 255800019.095op/s 255876531.275op/s 256785535.171op/s 0.49% 0.941 7.787 0.08% 13859.233op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 70.151µs 70.613µs ± 0.257µs 70.568µs ± 0.157µs 70.751µs 71.121µs 71.385µs 71.490µs 1.31% 0.854 0.883 0.36% 0.018µs 1 200
credit_card/is_card_number/378282246310005 throughput 13988011.683op/s 14161888.883op/s ± 51466.849op/s 14170777.024op/s ± 31385.508op/s 14196667.042op/s 14232310.142op/s 14253059.666op/s 14255027.256op/s 0.59% -0.830 0.828 0.36% 3639.256op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 53.046µs 53.128µs ± 0.028µs 53.127µs ± 0.018µs 53.144µs 53.170µs 53.211µs 53.245µs 0.22% 0.606 1.373 0.05% 0.002µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 18781177.127op/s 18822321.200op/s ± 10084.115op/s 18822661.449op/s ± 6287.061op/s 18829218.614op/s 18837649.828op/s 18841739.626op/s 18851559.034op/s 0.15% -0.601 1.362 0.05% 713.055op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.430µs 6.439µs ± 0.005µs 6.438µs ± 0.003µs 6.442µs 6.448µs 6.453µs 6.461µs 0.35% 0.912 1.192 0.08% 0.000µs 1 200
credit_card/is_card_number/x371413321323331 throughput 154784160.262op/s 155304267.778op/s ± 122738.696op/s 155328090.867op/s ± 69415.005op/s 155387471.885op/s 155474039.078op/s 155498804.103op/s 155528622.171op/s 0.13% -0.906 1.173 0.08% 8678.936op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.892µs 3.913µs ± 0.003µs 3.912µs ± 0.001µs 3.914µs 3.917µs 3.921µs 3.935µs 0.57% 0.494 19.427 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 254156467.511op/s 255580523.153op/s ± 207903.428op/s 255602952.215op/s ± 91729.589op/s 255678103.269op/s 255809820.331op/s 255863590.440op/s 256970009.911op/s 0.53% -0.443 19.421 0.08% 14700.992op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 64.883µs 65.153µs ± 0.127µs 65.135µs ± 0.075µs 65.212µs 65.406µs 65.541µs 65.567µs 0.66% 0.950 0.883 0.19% 0.009µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15251549.047op/s 15348527.364op/s ± 29759.782op/s 15352752.671op/s ± 17762.071op/s 15370012.722op/s 15385675.551op/s 15397463.778op/s 15412291.302op/s 0.39% -0.939 0.855 0.19% 2104.334op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 58.203µs 58.396µs ± 0.115µs 58.374µs ± 0.077µs 58.462µs 58.611µs 58.720µs 58.887µs 0.88% 1.008 1.233 0.20% 0.008µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 16981763.955op/s 17124425.683op/s ± 33659.197op/s 17131044.974op/s ± 22518.614op/s 17150803.350op/s 17166323.715op/s 17173287.278op/s 17181265.548op/s 0.29% -0.995 1.184 0.20% 2380.065op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.893µs 3.912µs ± 0.003µs 3.912µs ± 0.002µs 3.914µs 3.917µs 3.919µs 3.927µs 0.37% -0.545 10.640 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 254673218.690op/s 255595606.664op/s ± 193473.699op/s 255618302.270op/s ± 102986.337op/s 255704679.106op/s 255823370.897op/s 255865307.261op/s 256879852.489op/s 0.49% 0.573 10.767 0.08% 13680.656op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 55.179µs 55.502µs ± 0.167µs 55.467µs ± 0.100µs 55.587µs 55.823µs 56.078µs 56.249µs 1.41% 1.195 2.455 0.30% 0.012µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 17777969.854op/s 18017397.006op/s ± 53999.531op/s 18028687.540op/s ± 32525.739op/s 18053658.967op/s 18083845.627op/s 18111630.475op/s 18122800.295op/s 0.52% -1.168 2.348 0.30% 3818.343op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 53.061µs 53.132µs ± 0.041µs 53.127µs ± 0.021µs 53.151µs 53.217µs 53.258µs 53.301µs 0.33% 1.245 2.101 0.08% 0.003µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 18761413.193op/s 18820965.722op/s ± 14596.622op/s 18822802.979op/s ± 7567.020op/s 18830048.723op/s 18840198.103op/s 18845625.414op/s 18846329.423op/s 0.12% -1.239 2.082 0.08% 1032.137op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.430µs 6.440µs ± 0.006µs 6.440µs ± 0.004µs 6.443µs 6.449µs 6.452µs 6.473µs 0.52% 1.264 4.557 0.09% 0.000µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 154480270.812op/s 155286031.791op/s ± 139292.760op/s 155289992.573op/s ± 96853.931op/s 155393718.209op/s 155476804.768op/s 155498280.829op/s 155511657.370op/s 0.14% -1.251 4.469 0.09% 9849.486op/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.912µs; 3.913µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/ throughput [255541018.724op/s; 255598919.563op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [80.748µs; 80.820µs] or [-0.044%; +0.044%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12373371.080op/s; 12384262.899op/s] or [-0.044%; +0.044%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [73.474µs; 73.553µs] or [-0.054%; +0.054%] None None None
credit_card/is_card_number/ 378282246310005 throughput [13595896.802op/s; 13610485.641op/s] or [-0.054%; +0.054%] None None None
credit_card/is_card_number/37828224631 execution_time [3.913µs; 3.914µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/37828224631 throughput [255504936.825op/s; 255559264.021op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/378282246310005 execution_time [70.577µs; 70.649µs] or [-0.051%; +0.051%] None None None
credit_card/is_card_number/378282246310005 throughput [14154756.073op/s; 14169021.693op/s] or [-0.050%; +0.050%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [53.124µs; 53.132µs] or [-0.007%; +0.007%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [18820923.639op/s; 18823718.762op/s] or [-0.007%; +0.007%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.438µs; 6.440µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/x371413321323331 throughput [155287257.375op/s; 155321278.181op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.912µs; 3.913µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ throughput [255551709.738op/s; 255609336.569op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [65.136µs; 65.171µs] or [-0.027%; +0.027%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15344402.945op/s; 15352651.784op/s] or [-0.027%; +0.027%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [58.380µs; 58.412µs] or [-0.027%; +0.027%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [17119760.842op/s; 17129090.524op/s] or [-0.027%; +0.027%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.912µs; 3.913µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255568793.070op/s; 255622420.258op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [55.479µs; 55.526µs] or [-0.042%; +0.042%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [18009913.190op/s; 18024880.822op/s] or [-0.042%; +0.042%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [53.127µs; 53.138µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [18818942.771op/s; 18822988.673op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.439µs; 6.441µs] or [-0.012%; +0.012%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [155266727.154op/s; 155305336.427op/s] or [-0.012%; +0.012%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 79bbfd1 1773760949 yannham/mem-ordering-counter
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 4.191ms 4.194ms ± 0.002ms 4.194ms ± 0.001ms 4.195ms 4.199ms 4.201ms 4.204ms 0.23% 1.435 2.770 0.05% 0.000ms 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 [4.194ms; 4.194ms] or [-0.007%; +0.007%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 79bbfd1 1773760949 yannham/mem-ordering-counter
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 86.982µs 87.225µs ± 0.133µs 87.210µs ± 0.046µs 87.254µs 87.387µs 87.595µs 88.371µs 1.33% 4.876 36.074 0.15% 0.009µ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 [87.206µs; 87.243µs] or [-0.021%; +0.021%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 79bbfd1 1773760949 yannham/mem-ordering-counter
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 741.307µs 744.052µs ± 2.014µs 743.524µs ± 1.423µs 745.557µs 747.499µs 748.796µs 749.166µs 0.76% 0.593 -0.857 0.27% 0.142µ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 [743.773µs; 744.331µs] or [-0.038%; +0.038%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 79bbfd1 1773760949 yannham/mem-ordering-counter
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 495.293µs 496.428µs ± 0.720µs 496.367µs ± 0.387µs 496.755µs 497.328µs 497.919µs 502.385µs 1.21% 3.688 25.717 0.14% 0.051µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1990503.749op/s 2014396.177op/s ± 2907.988op/s 2014637.348op/s ± 1568.505op/s 2016167.140op/s 2017625.902op/s 2018268.625op/s 2019007.837op/s 0.22% -3.628 25.084 0.14% 205.626op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 369.941µs 370.564µs ± 0.273µs 370.554µs ± 0.175µs 370.733µs 371.058µs 371.251µs 371.447µs 0.24% 0.340 0.130 0.07% 0.019µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2692176.640op/s 2698590.143op/s ± 1988.899op/s 2698662.795op/s ± 1275.941op/s 2699790.910op/s 2701467.315op/s 2703012.171op/s 2703135.014op/s 0.17% -0.335 0.125 0.07% 140.636op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 168.745µs 169.067µs ± 0.120µs 169.071µs ± 0.081µs 169.154µs 169.265µs 169.325µs 169.434µs 0.21% 0.023 -0.227 0.07% 0.008µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5902010.431op/s 5914804.901op/s ± 4197.168op/s 5914681.002op/s ± 2821.581op/s 5917465.530op/s 5921501.030op/s 5924467.346op/s 5926094.980op/s 0.19% -0.019 -0.228 0.07% 296.785op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 36.801µs 36.991µs ± 0.117µs 37.010µs ± 0.106µs 37.088µs 37.158µs 37.192µs 37.269µs 0.70% -0.037 -1.291 0.32% 0.008µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 26832076.510op/s 27033961.837op/s ± 85490.579op/s 27019741.887op/s ± 77402.929op/s 27118584.618op/s 27155917.653op/s 27172011.189op/s 27172971.257op/s 0.57% 0.043 -1.295 0.32% 6045.097op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 46.184µs 46.312µs ± 0.247µs 46.279µs ± 0.037µs 46.317µs 46.372µs 47.745µs 48.492µs 4.78% 7.845 63.450 0.53% 0.017µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 20622168.507op/s 21593483.561op/s ± 110692.170op/s 21608140.980op/s ± 17124.039op/s 21624046.037op/s 21638851.747op/s 21647467.899op/s 21652351.786op/s 0.20% -7.783 62.597 0.51% 7827.118op/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 [496.328µs; 496.528µs] or [-0.020%; +0.020%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [2013993.158op/s; 2014799.196op/s] or [-0.020%; +0.020%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [370.526µs; 370.602µs] or [-0.010%; +0.010%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2698314.500op/s; 2698865.785op/s] or [-0.010%; +0.010%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [169.051µs; 169.084µs] or [-0.010%; +0.010%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5914223.213op/s; 5915386.588op/s] or [-0.010%; +0.010%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [36.975µs; 37.007µs] or [-0.044%; +0.044%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [27022113.665op/s; 27045810.009op/s] or [-0.044%; +0.044%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [46.277µs; 46.346µs] or [-0.074%; +0.074%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21578142.691op/s; 21608824.431op/s] or [-0.071%; +0.071%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 79bbfd1 1773760949 yannham/mem-ordering-counter
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 49.561ms 50.094ms ± 1.117ms 49.847ms ± 0.141ms 50.191ms 50.568ms 58.493ms 58.910ms 18.18% 7.056 51.852 2.22% 0.079ms 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 [49.939ms; 50.249ms] or [-0.309%; +0.309%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 79bbfd1 1773760949 yannham/mem-ordering-counter
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 13.248ms 13.279ms ± 0.016ms 13.278ms ± 0.010ms 13.290ms 13.306ms 13.322ms 13.336ms 0.44% 0.625 0.463 0.12% 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 [13.277ms; 13.282ms] or [-0.017%; +0.017%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 79bbfd1 1773760949 yannham/mem-ordering-counter
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 190.389ns 192.929ns ± 2.045ns 192.696ns ± 1.373ns 194.012ns 196.389ns 200.108ns 202.389ns 5.03% 1.283 2.760 1.06% 0.145ns 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 [192.646ns; 193.213ns] or [-0.147%; +0.147%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 79bbfd1 1773760949 yannham/mem-ordering-counter
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/2598 execution_time 3.448ms 3.484ms ± 0.030ms 3.476ms ± 0.013ms 3.496ms 3.533ms 3.570ms 3.721ms 7.05% 3.214 18.888 0.86% 0.002ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
receiver_entry_point/report/2598 execution_time [3.480ms; 3.488ms] or [-0.120%; +0.120%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 79bbfd1 1773760949 yannham/mem-ordering-counter
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.233µs 3.199µs ± 1.426µs 2.991µs ± 0.026µs 3.013µs 3.677µs 13.906µs 14.882µs 397.58% 7.381 55.531 44.46% 0.101µ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.001µs; 3.396µs] or [-6.178%; +6.178%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 79bbfd1 1773760949 yannham/mem-ordering-counter
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 236.618ns 247.395ns ± 13.298ns 242.286ns ± 3.720ns 247.872ns 282.201ns 294.371ns 295.850ns 22.11% 2.155 3.937 5.36% 0.940ns 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 [245.552ns; 249.238ns] or [-0.745%; +0.745%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 79bbfd1 1773760949 yannham/mem-ordering-counter
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 144.552µs 146.273µs ± 1.676µs 145.962µs ± 0.528µs 146.552µs 147.979µs 152.879µs 161.062µs 10.35% 5.200 37.308 1.14% 0.119µ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 [146.041µs; 146.505µs] or [-0.159%; +0.159%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 79bbfd1 1773760949 yannham/mem-ordering-counter
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.212ms 14.255ms ± 0.035ms 14.248ms ± 0.010ms 14.261ms 14.288ms 14.374ms 14.569ms 2.26% 4.830 35.173 0.24% 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.250ms; 14.259ms] or [-0.034%; +0.034%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 79bbfd1 1773760949 yannham/mem-ordering-counter
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 5.071µs 5.132µs ± 0.038µs 5.125µs ± 0.030µs 5.165µs 5.194µs 5.205µs 5.226µs 1.97% 0.433 -1.201 0.74% 0.003µ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.127µs; 5.137µs] or [-0.104%; +0.104%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 79bbfd1 1773760949 yannham/mem-ordering-counter
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.006µs 34.653µs ± 1.116µs 34.138µs ± 0.068µs 34.264µs 37.009µs 37.033µs 39.062µs 14.42% 1.782 1.532 3.21% 0.079µ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 [34.499µs; 34.808µs] or [-0.446%; +0.446%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 79bbfd1 1773760949 yannham/mem-ordering-counter
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_timestamped_x1000 execution_time 4.227ms 4.232ms ± 0.008ms 4.232ms ± 0.001ms 4.233ms 4.235ms 4.243ms 4.338ms 2.51% 11.742 151.379 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_timestamped_x1000 execution_time [4.231ms; 4.233ms] or [-0.026%; +0.026%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 79bbfd1 1773760949 yannham/mem-ordering-counter
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 185.894µs 186.285µs ± 0.204µs 186.274µs ± 0.158µs 186.434µs 186.636µs 186.702µs 186.895µs 0.33% 0.286 -0.709 0.11% 0.014µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 5350591.488op/s 5368117.541op/s ± 5866.459op/s 5368445.112op/s ± 4536.067op/s 5372745.466op/s 5376244.293op/s 5378201.779op/s 5379414.835op/s 0.20% -0.282 -0.714 0.11% 414.821op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 17.923µs 18.017µs ± 0.059µs 18.001µs ± 0.028µs 18.041µs 18.149µs 18.187µs 18.240µs 1.33% 1.262 1.492 0.33% 0.004µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 54824359.338op/s 55505135.224op/s ± 180147.551op/s 55552845.344op/s ± 86074.670op/s 55618879.852op/s 55723099.468op/s 55754693.793op/s 55793472.258op/s 0.43% -1.243 1.432 0.32% 12738.356op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.230µs 10.323µs ± 0.034µs 10.323µs ± 0.023µs 10.345µs 10.381µs 10.404µs 10.411µs 0.85% -0.007 0.039 0.33% 0.002µs 1 200
normalization/normalize_name/normalize_name/good throughput 96056236.560op/s 96876182.635op/s ± 322070.160op/s 96868647.584op/s ± 213445.127op/s 97079096.339op/s 97404627.864op/s 97697423.471op/s 97755475.047op/s 0.92% 0.027 0.042 0.33% 22773.799op/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 [186.257µs; 186.313µs] or [-0.015%; +0.015%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [5367304.507op/s; 5368930.576op/s] or [-0.015%; +0.015%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.008µs; 18.025µs] or [-0.045%; +0.045%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [55480168.506op/s; 55530101.942op/s] or [-0.045%; +0.045%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.318µs; 10.327µs] or [-0.046%; +0.046%] None None None
normalization/normalize_name/normalize_name/good throughput [96831546.808op/s; 96920818.462op/s] or [-0.046%; +0.046%] None None None

Group 18

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 79bbfd1 1773760949 yannham/mem-ordering-counter
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.419µs 2.479µs ± 0.015µs 2.481µs ± 0.006µs 2.488µs 2.494µs 2.499µs 2.511µs 1.21% -2.131 5.573 0.61% 0.001µ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.477µs; 2.481µs] or [-0.084%; +0.084%] None None None

Group 19

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 79bbfd1 1773760949 yannham/mem-ordering-counter
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 160.382µs 161.159µs ± 0.596µs 161.110µs ± 0.145µs 161.234µs 161.583µs 162.241µs 168.650µs 4.68% 10.115 123.737 0.37% 0.042µ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 [161.076µs; 161.241µs] or [-0.051%; +0.051%] None None None

Group 20

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 79bbfd1 1773760949 yannham/mem-ordering-counter
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.721µs 24.934µs ± 9.218µs 17.947µs ± 0.118µs 33.248µs 42.552µs 43.595µs 66.546µs 270.79% 1.085 0.903 36.88% 0.652µ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.656µs; 26.211µs] or [-5.124%; +5.124%] None None None

Baseline

Omitted due to size.

@github-actions
Copy link

📚 Documentation Check Results

⚠️ 645 documentation warning(s) found

📦 libdd-profiling - 645 warning(s)


Updated: 2026-03-17 15:55:36 UTC | Commit: f5df291 | missing-docs job results

@github-actions
Copy link

🔒 Cargo Deny Results

No issues found!

📦 libdd-profiling - ✅ No issues


Updated: 2026-03-17 15:58:57 UTC | Commit: f5df291 | dependency-check job results

@dd-octo-sts
Copy link
Contributor

dd-octo-sts bot commented Mar 17, 2026

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 8.70 MB 8.70 MB 0% (0 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 100.42 MB 100.42 MB 0% (0 B) 👌
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 117.12 MB 117.12 MB 0% (0 B) 👌
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.28 MB 11.28 MB 0% (0 B) 👌
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 27.19 MB 27.19 MB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 76.61 KB 76.61 KB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 186.19 MB 186.20 MB +0% (+8.00 KB) 👌
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 917.13 MB 917.13 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 9.94 MB 9.94 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 76.61 KB 76.61 KB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 24.80 MB 24.80 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 51.48 MB 51.48 MB 0% (0 B) 👌
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 22.99 MB 22.99 MB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 77.80 KB 77.80 KB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 190.40 MB 190.42 MB +.01% (+24.00 KB) 🔍
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 900.81 MB 900.81 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 7.54 MB 7.54 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 77.80 KB 77.80 KB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 26.54 MB 26.54 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 47.10 MB 47.10 MB 0% (0 B) 👌
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 87.62 MB 87.62 MB 0% (0 B) 👌
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 10.22 MB 10.22 MB 0% (0 B) 👌
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 109.99 MB 109.99 MB 0% (0 B) 👌
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.97 MB 11.97 MB 0% (0 B) 👌

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants