Skip to content

[build] Add SONAME at link time instead of using patchelf#1258

Merged
dd-mergequeue[bot] merged 2 commits intomainfrom
gleocadie/clean-libdatadog_profiling-build
Oct 3, 2025
Merged

[build] Add SONAME at link time instead of using patchelf#1258
dd-mergequeue[bot] merged 2 commits intomainfrom
gleocadie/clean-libdatadog_profiling-build

Conversation

@gleocadie
Copy link
Copy Markdown
Contributor

@gleocadie gleocadie commented Oct 3, 2025

What does this PR do?

Set SONAME at link time instead of using patchelf.

Motivation

Setting the SONAME at link time is better and stronger that doing it with patchelf (which can fail depending on patchelf version)

How to test the change?

Downloaded all linux artifacts from https://gitlab.ddbuild.io/DataDog/apm-reliability/libddprof-build/-/jobs/1162074341
And run readelf -d on each of them to make sure that libdatadog_profiling.so is the SONAME:

find . -name "libdatadog_profiling.so" | xargs -I{} readelf -d {} | grep SONAME
 0x000000000000000e (SONAME)             Library soname: [libdatadog_profiling.so]
 0x000000000000000e (SONAME)             Library soname: [libdatadog_profiling.so]
 0x000000000000000e (SONAME)             Library soname: [libdatadog_profiling.so]
 0x000000000000000e (SONAME)             Library soname: [libdatadog_profiling.so]

Sanity check, there are 4 libdatadog_profiling.so:

find . -name "libdatadog_profiling.so"
./libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so
./libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so
./libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so
./libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so

@gleocadie gleocadie requested a review from a team as a code owner October 3, 2025 13:01
@pr-commenter
Copy link
Copy Markdown

pr-commenter bot commented Oct 3, 2025

Benchmarks

Comparison

Benchmark execution time: 2025-10-03 13:28:47

Comparing candidate commit 674ab20 in PR branch gleocadie/clean-libdatadog_profiling-build with baseline commit 842707b in branch main.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 53 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 674ab20 1759496537 gleocadie/clean-libdatadog_profiling-build
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.953µs 5.029µs ± 0.047µs 5.022µs ± 0.045µs 5.071µs 5.103µs 5.107µs 5.111µs 1.77% 0.158 -1.315 0.94% 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.022µs; 5.035µs] or [-0.130%; +0.130%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 674ab20 1759496537 gleocadie/clean-libdatadog_profiling-build
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.481µs 24.841µs ± 9.612µs 17.684µs ± 0.130µs 34.052µs 43.622µs 46.346µs 66.841µs 277.98% 1.096 0.805 38.60% 0.680µ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.509µs; 26.173µs] or [-5.362%; +5.362%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 674ab20 1759496537 gleocadie/clean-libdatadog_profiling-build
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.313µs 2.390µs ± 0.021µs 2.390µs ± 0.007µs 2.401µs 2.416µs 2.426µs 2.432µs 1.74% -1.878 4.800 0.86% 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.387µs; 2.393µs] or [-0.120%; +0.120%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 674ab20 1759496537 gleocadie/clean-libdatadog_profiling-build
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 6.232ms 6.281ms ± 0.026ms 6.278ms ± 0.014ms 6.291ms 6.322ms 6.352ms 6.469ms 3.05% 2.305 12.237 0.42% 0.002ms 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 [6.277ms; 6.284ms] or [-0.058%; +0.058%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 674ab20 1759496537 gleocadie/clean-libdatadog_profiling-build
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.155µs 3.238µs ± 1.458µs 3.032µs ± 0.025µs 3.054µs 3.670µs 14.038µs 15.073µs 397.06% 7.391 55.640 44.93% 0.103µ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.036µs; 3.440µs] or [-6.242%; +6.242%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 674ab20 1759496537 gleocadie/clean-libdatadog_profiling-build
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.679ms 10.704ms ± 0.013ms 10.702ms ± 0.008ms 10.711ms 10.724ms 10.737ms 10.788ms 0.81% 1.741 7.877 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 [10.702ms; 10.706ms] or [-0.017%; +0.017%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 674ab20 1759496537 gleocadie/clean-libdatadog_profiling-build
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 534.279µs 535.258µs ± 0.605µs 535.162µs ± 0.269µs 535.487µs 536.106µs 536.289µs 541.349µs 1.16% 5.231 49.512 0.11% 0.043µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1847235.574op/s 1868260.325op/s ± 2099.754op/s 1868594.808op/s ± 938.741op/s 1869475.271op/s 1870449.931op/s 1871052.775op/s 1871682.512op/s 0.17% -5.150 48.425 0.11% 148.475op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 383.236µs 384.187µs ± 0.383µs 384.163µs ± 0.246µs 384.443µs 384.749µs 385.051µs 386.249µs 0.54% 0.793 3.383 0.10% 0.027µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2589001.029op/s 2602900.886op/s ± 2595.575op/s 2603061.567op/s ± 1668.888op/s 2604624.896op/s 2606936.398op/s 2608216.633op/s 2609355.107op/s 0.24% -0.779 3.314 0.10% 183.535op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 194.715µs 195.231µs ± 0.185µs 195.225µs ± 0.118µs 195.349µs 195.542µs 195.641µs 195.768µs 0.28% 0.031 0.048 0.09% 0.013µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5108093.990op/s 5122144.758op/s ± 4851.525op/s 5122303.074op/s ± 3085.030op/s 5125250.501op/s 5130062.024op/s 5133638.389op/s 5135720.885op/s 0.26% -0.025 0.048 0.09% 343.055op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 36.712µs 36.878µs ± 0.068µs 36.869µs ± 0.043µs 36.915µs 36.992µs 37.061µs 37.103µs 0.64% 0.543 0.333 0.19% 0.005µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 26951764.852op/s 27116311.996op/s ± 50251.254op/s 27123356.312op/s ± 31941.820op/s 27149923.666op/s 27188249.003op/s 27209194.692op/s 27238724.482op/s 0.43% -0.531 0.316 0.18% 3553.300op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 45.771µs 45.899µs ± 0.102µs 45.892µs ± 0.028µs 45.921µs 45.967µs 46.002µs 47.204µs 2.86% 10.401 130.447 0.22% 0.007µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 21184435.936op/s 21787214.330op/s ± 47533.402op/s 21790284.971op/s ± 13083.773op/s 21802256.927op/s 21823716.316op/s 21841057.904op/s 21848117.712op/s 0.27% -10.239 127.731 0.22% 3361.119op/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 [535.174µs; 535.342µs] or [-0.016%; +0.016%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1867969.319op/s; 1868551.331op/s] or [-0.016%; +0.016%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [384.134µs; 384.240µs] or [-0.014%; +0.014%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2602541.164op/s; 2603260.607op/s] or [-0.014%; +0.014%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [195.205µs; 195.257µs] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5121472.383op/s; 5122817.133op/s] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [36.869µs; 36.888µs] or [-0.026%; +0.026%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [27109347.655op/s; 27123276.336op/s] or [-0.026%; +0.026%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [45.885µs; 45.913µs] or [-0.031%; +0.031%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21780626.657op/s; 21793802.002op/s] or [-0.030%; +0.030%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 674ab20 1759496537 gleocadie/clean-libdatadog_profiling-build
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.458ms 14.494ms ± 0.031ms 14.487ms ± 0.008ms 14.496ms 14.546ms 14.608ms 14.701ms 1.48% 3.873 18.929 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.490ms; 14.498ms] or [-0.030%; +0.030%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 674ab20 1759496537 gleocadie/clean-libdatadog_profiling-build
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.627µs 161.251µs ± 0.407µs 161.202µs ± 0.146µs 161.369µs 161.683µs 162.125µs 165.221µs 2.49% 5.612 48.492 0.25% 0.029µ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.194µs; 161.307µs] or [-0.035%; +0.035%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 674ab20 1759496537 gleocadie/clean-libdatadog_profiling-build
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 59.800ms 60.387ms ± 1.969ms 60.083ms ± 0.094ms 60.328ms 60.532ms 68.917ms 79.971ms 33.10% 8.752 78.055 3.25% 0.139ms 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 [60.114ms; 60.660ms] or [-0.452%; +0.452%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 674ab20 1759496537 gleocadie/clean-libdatadog_profiling-build
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 33.601µs 34.203µs ± 1.028µs 33.747µs ± 0.081µs 33.862µs 36.367µs 36.503µs 37.924µs 12.38% 1.744 1.271 3.00% 0.073µ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.060µs; 34.345µs] or [-0.417%; +0.417%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 674ab20 1759496537 gleocadie/clean-libdatadog_profiling-build
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 87.687µs 87.869µs ± 0.161µs 87.845µs ± 0.057µs 87.911µs 88.049µs 88.268µs 89.505µs 1.89% 6.055 54.619 0.18% 0.011µ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.847µs; 87.892µs] or [-0.025%; +0.025%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 674ab20 1759496537 gleocadie/clean-libdatadog_profiling-build
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.386µs 185.954µs ± 0.364µs 185.922µs ± 0.198µs 186.109µs 186.359µs 187.112µs 188.806µs 1.55% 3.081 19.069 0.20% 0.026µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 5296437.643op/s 5377698.307op/s ± 10475.331op/s 5378602.526op/s ± 5726.380op/s 5384627.112op/s 5389615.835op/s 5392137.461op/s 5394165.132op/s 0.29% -3.014 18.405 0.19% 740.718op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 17.610µs 17.758µs ± 0.071µs 17.753µs ± 0.038µs 17.791µs 17.862µs 17.913µs 18.274µs 2.94% 2.054 13.047 0.40% 0.005µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 54723261.249op/s 56314612.871op/s ± 222496.395op/s 56329814.380op/s ± 119296.069op/s 56441799.902op/s 56626079.250op/s 56717088.716op/s 56784887.394op/s 0.81% -1.929 11.973 0.39% 15732.871op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 9.846µs 9.941µs ± 0.071µs 9.918µs ± 0.034µs 9.964µs 10.088µs 10.151µs 10.231µs 3.16% 1.400 1.756 0.71% 0.005µs 1 200
normalization/normalize_name/normalize_name/good throughput 97740274.472op/s 100594560.302op/s ± 710748.936op/s 100824392.269op/s ± 340821.973op/s 101071860.000op/s 101357880.783op/s 101491240.007op/s 101564477.670op/s 0.73% -1.362 1.609 0.70% 50257.539op/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 [185.903µs; 186.004µs] or [-0.027%; +0.027%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [5376246.527op/s; 5379150.088op/s] or [-0.027%; +0.027%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [17.748µs; 17.767µs] or [-0.055%; +0.055%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [56283777.011op/s; 56345448.732op/s] or [-0.055%; +0.055%] None None None
normalization/normalize_name/normalize_name/good execution_time [9.932µs; 9.951µs] or [-0.099%; +0.099%] None None None
normalization/normalize_name/normalize_name/good throughput [100496057.335op/s; 100693063.269op/s] or [-0.098%; +0.098%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 674ab20 1759496537 gleocadie/clean-libdatadog_profiling-build
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.896µs 3.912µs ± 0.003µs 3.912µs ± 0.002µs 3.914µs 3.918µs 3.920µs 3.920µs 0.21% -0.429 6.370 0.07% 0.000µs 1 200
credit_card/is_card_number/ throughput 255086790.885op/s 255603186.688op/s ± 177249.507op/s 255622009.055op/s ± 104608.923op/s 255716037.545op/s 255805308.066op/s 255918182.345op/s 256679388.163op/s 0.41% 0.446 6.458 0.07% 12533.433op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 80.316µs 81.415µs ± 0.502µs 81.367µs ± 0.359µs 81.746µs 82.350µs 82.629µs 82.712µs 1.65% 0.434 -0.256 0.62% 0.036µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12090129.854op/s 12283283.143op/s ± 75592.590op/s 12290060.415op/s ± 54476.205op/s 12340192.625op/s 12393810.918op/s 12418601.121op/s 12450796.578op/s 1.31% -0.406 -0.287 0.61% 5345.203op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 75.661µs 76.884µs ± 0.408µs 76.913µs ± 0.253µs 77.111µs 77.460µs 78.254µs 78.415µs 1.95% 0.179 1.408 0.53% 0.029µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 12752731.640op/s 13006980.642op/s ± 68923.372op/s 13001735.501op/s ± 42956.316op/s 13051166.782op/s 13125806.232op/s 13162336.254op/s 13216830.170op/s 1.65% -0.126 1.318 0.53% 4873.618op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.896µs 3.912µs ± 0.003µs 3.912µs ± 0.001µs 3.913µs 3.916µs 3.919µs 3.919µs 0.18% -0.791 8.254 0.06% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 255170981.030op/s 255629785.406op/s ± 165391.341op/s 255639751.983op/s ± 93886.750op/s 255722938.805op/s 255830011.728op/s 255894455.712op/s 256705502.245op/s 0.42% 0.810 8.369 0.06% 11694.934op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 72.490µs 73.731µs ± 0.450µs 73.770µs ± 0.322µs 74.070µs 74.402µs 74.576µs 74.628µs 1.16% -0.332 -0.186 0.61% 0.032µs 1 200
credit_card/is_card_number/378282246310005 throughput 13399785.761op/s 13563307.273op/s ± 82915.344op/s 13555675.655op/s ± 58915.076op/s 13618829.055op/s 13704115.721op/s 13782907.716op/s 13794957.233op/s 1.77% 0.363 -0.147 0.61% 5863.000op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 53.056µs 53.131µs ± 0.035µs 53.127µs ± 0.021µs 53.149µs 53.193µs 53.232µs 53.255µs 0.24% 0.773 0.841 0.07% 0.002µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 18777501.215op/s 18821238.550op/s ± 12510.293op/s 18822839.534op/s ± 7510.450op/s 18829998.539op/s 18839478.834op/s 18842245.074op/s 18847911.911op/s 0.13% -0.769 0.831 0.07% 884.611op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.432µs 6.447µs ± 0.007µs 6.446µs ± 0.004µs 6.450µs 6.459µs 6.464µs 6.464µs 0.29% 0.444 -0.230 0.11% 0.000µs 1 200
credit_card/is_card_number/x371413321323331 throughput 154691189.739op/s 155122982.133op/s ± 166794.206op/s 155146970.765op/s ± 100965.988op/s 155232921.028op/s 155372856.194op/s 155415173.397op/s 155470160.498op/s 0.21% -0.439 -0.235 0.11% 11794.131op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.894µs 3.913µs ± 0.003µs 3.912µs ± 0.002µs 3.914µs 3.919µs 3.922µs 3.924µs 0.31% 0.007 6.078 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 254820935.953op/s 255577016.215op/s ± 211817.256op/s 255599501.581op/s ± 106393.550op/s 255704365.737op/s 255835264.843op/s 255901801.163op/s 256807457.303op/s 0.47% 0.014 6.161 0.08% 14977.742op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 64.980µs 65.144µs ± 0.111µs 65.118µs ± 0.066µs 65.199µs 65.358µs 65.469µs 65.564µs 0.68% 1.166 1.436 0.17% 0.008µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15252381.352op/s 15350645.861op/s ± 25992.018op/s 15356652.782op/s ± 15543.052op/s 15370361.333op/s 15382256.875op/s 15387187.597op/s 15389309.047op/s 0.21% -1.156 1.399 0.17% 1837.913op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 58.194µs 58.374µs ± 0.117µs 58.353µs ± 0.074µs 58.437µs 58.590µs 58.751µs 58.871µs 0.89% 1.201 2.071 0.20% 0.008µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 16986238.382op/s 17130889.541op/s ± 34219.544op/s 17137126.454op/s ± 21673.326op/s 17156178.835op/s 17173513.205op/s 17179030.213op/s 17183917.572op/s 0.27% -1.185 2.007 0.20% 2419.687op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.890µs 3.912µs ± 0.003µs 3.912µs ± 0.002µs 3.914µs 3.917µs 3.921µs 3.922µs 0.25% -1.274 13.416 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 254961046.399op/s 255601793.698op/s ± 198627.246op/s 255606690.793op/s ± 110049.990op/s 255725732.402op/s 255821638.110op/s 255903648.380op/s 257046693.331op/s 0.56% 1.306 13.644 0.08% 14045.067op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 55.143µs 55.476µs ± 0.155µs 55.470µs ± 0.105µs 55.574µs 55.750µs 55.804µs 55.875µs 0.73% 0.317 -0.502 0.28% 0.011µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 17897173.127op/s 18025830.061op/s ± 50321.397op/s 18027886.654op/s ± 34050.264op/s 18061912.935op/s 18102777.510op/s 18115638.960op/s 18134747.991op/s 0.59% -0.305 -0.511 0.28% 3558.260op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 53.056µs 53.127µs ± 0.034µs 53.128µs ± 0.022µs 53.145µs 53.189µs 53.212µs 53.248µs 0.23% 0.342 0.382 0.06% 0.002µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 18779967.836op/s 18822828.624op/s ± 11946.450op/s 18822376.520op/s ± 7886.119op/s 18831208.653op/s 18842620.077op/s 18847169.894op/s 18847928.827op/s 0.14% -0.337 0.375 0.06% 844.742op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.434µs 6.449µs ± 0.006µs 6.448µs ± 0.004µs 6.453µs 6.459µs 6.464µs 6.466µs 0.28% 0.344 -0.293 0.10% 0.000µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 154644571.736op/s 155071287.915op/s ± 153141.581op/s 155082080.268op/s ± 104822.253op/s 155184001.100op/s 155293455.269op/s 155382879.816op/s 155424401.811op/s 0.22% -0.339 -0.297 0.10% 10828.745op/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.010%; +0.010%] None None None
credit_card/is_card_number/ throughput [255578621.611op/s; 255627751.765op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [81.345µs; 81.484µs] or [-0.086%; +0.086%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12272806.737op/s; 12293759.549op/s] or [-0.085%; +0.085%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [76.827µs; 76.940µs] or [-0.073%; +0.073%] None None None
credit_card/is_card_number/ 378282246310005 throughput [12997428.526op/s; 13016532.759op/s] or [-0.073%; +0.073%] None None None
credit_card/is_card_number/37828224631 execution_time [3.912µs; 3.912µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/37828224631 throughput [255606863.757op/s; 255652707.056op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/378282246310005 execution_time [73.669µs; 73.793µs] or [-0.085%; +0.085%] None None None
credit_card/is_card_number/378282246310005 throughput [13551816.004op/s; 13574798.542op/s] or [-0.085%; +0.085%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [53.127µs; 53.136µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [18819504.744op/s; 18822972.356op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.446µs; 6.447µs] or [-0.015%; +0.015%] None None None
credit_card/is_card_number/x371413321323331 throughput [155099866.061op/s; 155146098.206op/s] or [-0.015%; +0.015%] 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 [255547660.380op/s; 255606372.049op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [65.129µs; 65.159µs] or [-0.024%; +0.024%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15347043.618op/s; 15354248.105op/s] or [-0.023%; +0.023%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [58.358µs; 58.391µs] or [-0.028%; +0.028%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [17126147.041op/s; 17135632.041op/s] or [-0.028%; +0.028%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.912µs; 3.913µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255574265.872op/s; 255629321.524op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [55.455µs; 55.498µs] or [-0.039%; +0.039%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [18018856.000op/s; 18032804.123op/s] or [-0.039%; +0.039%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [53.122µs; 53.132µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [18821172.961op/s; 18824484.287op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.448µs; 6.450µs] or [-0.014%; +0.014%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [155050063.964op/s; 155092511.865op/s] or [-0.014%; +0.014%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 674ab20 1759496537 gleocadie/clean-libdatadog_profiling-build
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 238.706ns 248.600ns ± 12.890ns 242.436ns ± 2.016ns 250.125ns 280.113ns 289.224ns 294.096ns 21.31% 1.926 2.739 5.17% 0.911ns 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 [246.814ns; 250.386ns] or [-0.719%; +0.719%] None None None

Baseline

Omitted due to size.

@gleocadie gleocadie requested review from hoolioh and removed request for a team October 3, 2025 13:15
@dd-octo-sts
Copy link
Copy Markdown
Contributor

dd-octo-sts bot commented Oct 3, 2025

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 71.32 MB 71.32 MB -0% (-8 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 7.32 MB 7.25 MB --.94% (-70.96 KB) 💪
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 83.64 MB 83.64 MB 0% (0 B) 👌
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 9.27 MB 9.20 MB --.77% (-73.32 KB) 💪
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 18.50 MB 18.50 MB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 65.77 KB 65.77 KB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 125.66 MB 125.65 MB -0% (-8.00 KB) 👌
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 656.83 MB 656.83 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 5.92 MB 5.92 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 65.77 KB 65.77 KB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 17.44 MB 17.44 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 32.39 MB 32.39 MB 0% (0 B) 👌
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 15.77 MB 15.77 MB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 66.79 KB 66.79 KB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 127.98 MB 127.98 MB +0% (+8.00 KB) 👌
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 645.77 MB 645.77 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 4.53 MB 4.53 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 66.79 KB 66.79 KB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 18.57 MB 18.57 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 30.42 MB 30.42 MB 0% (0 B) 👌
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 63.92 MB 63.92 MB +0% (+48 B) 👌
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 8.57 MB 8.55 MB --.16% (-14.91 KB) 💪
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 78.36 MB 78.36 MB 0% (0 B) 👌
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 9.91 MB 9.90 MB --.17% (-17.45 KB) 💪

@codecov-commenter
Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 71.87%. Comparing base (842707b) to head (674ab20).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1258      +/-   ##
==========================================
+ Coverage   71.81%   71.87%   +0.05%     
==========================================
  Files         356      356              
  Lines       56677    56665      -12     
==========================================
+ Hits        40702    40726      +24     
+ Misses      15975    15939      -36     
Components Coverage Δ
datadog-crashtracker 49.33% <ø> (+0.04%) ⬆️
datadog-crashtracker-ffi 5.93% <ø> (ø)
datadog-alloc 98.73% <ø> (ø)
data-pipeline 88.14% <ø> (ø)
data-pipeline-ffi 88.19% <ø> (ø)
ddcommon 84.54% <ø> (ø)
ddcommon-ffi 73.84% <ø> (ø)
ddtelemetry 59.49% <ø> (+0.03%) ⬆️
ddtelemetry-ffi 21.24% <ø> (ø)
dogstatsd-client 83.26% <ø> (ø)
datadog-ipc 82.39% <ø> (ø)
datadog-profiling 76.90% <ø> (ø)
datadog-profiling-ffi 62.12% <ø> (ø)
datadog-sidecar 37.08% <ø> (ø)
datdog-sidecar-ffi 11.37% <ø> (ø)
spawn-worker 55.35% <ø> (ø)
tinybytes 92.22% <ø> (ø)
datadog-trace-normalization 98.24% <ø> (ø)
datadog-trace-obfuscation 94.17% <ø> (ø)
datadog-trace-protobuf 59.65% <ø> (ø)
datadog-trace-utils 89.99% <ø> (ø)
datadog-tracer-flare 54.62% <ø> (ø)
datadog-log 76.31% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@gleocadie
Copy link
Copy Markdown
Contributor Author

/merge

@dd-devflow-routing-codex
Copy link
Copy Markdown

dd-devflow-routing-codex bot commented Oct 3, 2025

View all feedbacks in Devflow UI.

2025-10-03 14:57:05 UTC ℹ️ Start processing command /merge


2025-10-03 14:57:10 UTC ℹ️ MergeQueue: pull request added to the queue

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


2025-10-03 15:31:50 UTC ℹ️ MergeQueue: This merge request was merged

@dd-mergequeue dd-mergequeue bot merged commit cbbd077 into main Oct 3, 2025
37 checks passed
@dd-mergequeue dd-mergequeue bot deleted the gleocadie/clean-libdatadog_profiling-build branch October 3, 2025 15:31
gh-worker-dd-mergequeue-cf854d bot pushed a commit that referenced this pull request Mar 5, 2026
…e for linking (#1646)

# What does this PR do?

for macOS builds we were not setting `LC_ID_DYLIB`, so the absolute path at build time was being used, which causes problems when you link against the dylib on another machine. 

This PR should correctly set `LC_ID_DYLIB` for macOS. Something similar was done for linux in #1258 

The post-build fix logic has been removed since it doesn't seem to be used anywhere else anymore.   
# Motivation

What inspired you to submit this pull request?

# Additional Notes

Anything else we should know when reviewing?

# How to test the change?

`cargo run --bin release --release -- --out /tmp/libdatadog-output`

Prior to this change the output would have looked like:
```
cmd LC_ID_DYLIB
cmdsize 184
name /Users/ec2-user/builds/.../libdatadog_profiling_ffi.dylib (offset 24)
```

With this change it now looks like:
```
cmd LC_ID_DYLIB
cmdsize 64
name @rpath/libdatadog_profiling.dylib (offset 24)
```


Co-authored-by: hoolioh <[email protected]>
Co-authored-by: julio.gonzalez <[email protected]>
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.

3 participants