Skip to content

Make datadog-profiling-ffi exportable in external projects. #1050

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
May 7, 2025

Conversation

hoolioh
Copy link
Contributor

@hoolioh hoolioh commented May 6, 2025

What does this PR do?

This PR adds 'lib' to datadog-profiling-ffi crate type list so it symbols can be reexported in an external project.

Motivation

Some SDKs were already integrating some parts of libdatadog using a language framework and profiling using the released artifacts. As a result there were two libraries, one generated by framework and another one for wrapping libdatadog-ffi functions. This led to symbol duplication across libraries. In order to overcome that issue, hence reducing the overall size, we decided to merge both libraries, for that we needed to compile profiling as a 'lib'.

Additional Notes

As a side effect the builder and build scripts has been modified in order to overcome problems with LTO linkage where cargo build has some issues when adding 'lib' to the crate-type list.

Another side effect is that when crashtracker is imported as a dependency in another project the cargo dependency resolver resolved blazesym to version "0.2.0-rc.3" instead of "rc.2" leading to some compilation errors because the are breaking changes between the two versions.

@github-actions github-actions bot added profiling Relates to the profiling* modules. ci-build crashtracker labels May 6, 2025
@hoolioh hoolioh marked this pull request as ready for review May 6, 2025 11:40
@hoolioh hoolioh requested review from a team as code owners May 6, 2025 11:40
@r1viollet
Copy link
Contributor

r1viollet commented May 6, 2025

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 66.03 MB 66.03 MB -0% (-152 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so.debug 20.31 MB 20.31 MB +0% (+40 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 8.03 MB 8.03 MB -0% (-64 B) 👌
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 72.62 MB 72.61 MB -0% (-2.72 KB) 👌
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so.debug 22.70 MB 22.70 MB -0% (-360 B) 👌
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 8.00 MB 8.00 MB -0% (-552 B) 👌
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 16.71 MB 16.70 MB --.07% (-12.00 KB) 💪
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 61.92 KB 61.92 KB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 112.78 MB 112.65 MB --.11% (-136.00 KB) 💪
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 632.17 MB 632.39 MB +.03% (+232.03 KB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 4.99 MB 4.99 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 61.92 KB 61.92 KB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 15.87 MB 15.88 MB +.04% (+8.00 KB) 🔍
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 26.42 MB 26.42 MB +.01% (+3.02 KB) 🔍
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 14.12 MB 14.15 MB +.20% (+29.00 KB) 🔍
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 62.87 KB 62.87 KB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 114.47 MB 114.53 MB +.05% (+64.00 KB) 🔍
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 625.10 MB 624.99 MB --.01% (-113.17 KB) 💪
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 3.78 MB 3.78 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 62.87 KB 62.87 KB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 16.50 MB 16.49 MB --.04% (-8.00 KB) 💪
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 24.34 MB 24.34 MB -0% (-2.37 KB) 👌
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 57.50 MB 57.51 MB +.01% (+6.19 KB) 🔍
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 8.42 MB 8.43 MB +.05% (+4.39 KB) 🔍
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so.debug 18.71 MB 18.71 MB +.02% (+5.34 KB) 🔍
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 68.59 MB 68.59 MB +0% (+754 B) 👌
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 8.42 MB 8.42 MB +0% (+440 B) 👌
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so.debug 20.89 MB 20.89 MB +0% (+1.07 KB) 👌

@pr-commenter
Copy link

pr-commenter bot commented May 6, 2025

Benchmarks

Comparison

Benchmark execution time: 2025-05-07 09:06:37

Comparing candidate commit f8479b4 in PR branch julio/add-lib-target-to-profiling-ffi with baseline commit 7dfc1e2 in branch main.

Found 6 performance improvements and 3 performance regressions! Performance is the same for 43 metrics, 2 unstable metrics.

scenario:credit_card/is_card_number/378282246310005

  • 🟩 execution_time [-9.869µs; -9.702µs] or [-12.712%; -12.497%]
  • 🟩 throughput [+1841409.673op/s; +1874598.669op/s] or [+14.296%; +14.554%]

scenario:normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo...

  • 🟩 execution_time [-9.118µs; -9.022µs] or [-4.179%; -4.135%]
  • 🟩 throughput [+197758.829op/s; +199810.218op/s] or [+4.315%; +4.360%]

scenario:normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000...

  • 🟥 execution_time [+39.560µs; +40.259µs] or [+8.506%; +8.656%]
  • 🟥 throughput [-171588.220op/s; -168377.003op/s] or [-7.980%; -7.831%]

scenario:normalization/normalize_service/normalize_service/[empty string]

  • 🟩 execution_time [-3.222µs; -3.169µs] or [-7.814%; -7.686%]
  • 🟩 throughput [+2021395.443op/s; +2052490.387op/s] or [+8.335%; +8.464%]

scenario:sql/obfuscate_sql_string

  • 🟥 execution_time [+3.042µs; +3.132µs] or [+4.604%; +4.740%]

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 f8479b4 1746608080 julio/add-lib-target-to-profiling-ffi
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 148.882µs 149.527µs ± 1.029µs 149.364µs ± 0.166µs 149.558µs 150.369µs 151.651µs 162.067µs 8.51% 9.673 110.608 0.69% 0.073µ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 [149.384µs; 149.670µs] or [-0.095%; +0.095%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8479b4 1746608080 julio/add-lib-target-to-profiling-ffi
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 5.933ms 5.945ms ± 0.007ms 5.944ms ± 0.003ms 5.947ms 5.954ms 5.964ms 6.006ms 1.04% 4.012 28.233 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 [5.944ms; 5.946ms] or [-0.017%; +0.017%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8479b4 1746608080 julio/add-lib-target-to-profiling-ffi
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.328µs 2.393µs ± 0.018µs 2.395µs ± 0.008µs 2.403µs 2.412µs 2.418µs 2.428µs 1.34% -1.997 4.571 0.74% 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.390µs; 2.395µs] or [-0.103%; +0.103%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8479b4 1746608080 julio/add-lib-target-to-profiling-ffi
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 503.557µs 504.994µs ± 0.616µs 505.002µs ± 0.311µs 505.302µs 505.822µs 506.320µs 510.046µs 1.00% 2.631 21.238 0.12% 0.044µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1960607.261op/s 1980224.591op/s ± 2409.285op/s 1980189.306op/s ± 1220.679op/s 1981440.398op/s 1983802.058op/s 1984944.842op/s 1985872.284op/s 0.29% -2.572 20.660 0.12% 170.362op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 453.726µs 454.800µs ± 0.538µs 454.734µs ± 0.361µs 455.135µs 455.706µs 456.165µs 456.502µs 0.39% 0.574 0.092 0.12% 0.038µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2190569.227op/s 2198769.592op/s ± 2598.573op/s 2199086.609op/s ± 1745.974op/s 2200740.549op/s 2202384.828op/s 2203212.472op/s 2203972.352op/s 0.22% -0.568 0.080 0.12% 183.747op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 175.668µs 176.527µs ± 0.188µs 176.554µs ± 0.100µs 176.647µs 176.779µs 176.856µs 176.888µs 0.19% -1.308 3.317 0.11% 0.013µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5653300.197op/s 5664864.269op/s ± 6033.964op/s 5663989.488op/s ± 3206.652op/s 5667531.151op/s 5675509.569op/s 5686077.283op/s 5692564.317op/s 0.50% 1.320 3.364 0.11% 426.666op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 37.858µs 38.041µs ± 0.071µs 38.042µs ± 0.052µs 38.091µs 38.146µs 38.195µs 38.273µs 0.61% 0.093 -0.174 0.19% 0.005µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 26128079.847op/s 26287545.309op/s ± 48748.197op/s 26286904.536op/s ± 36023.974op/s 26324476.398op/s 26360998.718op/s 26384367.667op/s 26414512.133op/s 0.49% -0.083 -0.182 0.18% 3447.018op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 46.946µs 47.067µs ± 0.041µs 47.067µs ± 0.028µs 47.092µs 47.133µs 47.157µs 47.169µs 0.22% -0.100 0.062 0.09% 0.003µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 21200192.946op/s 21246432.923op/s ± 18398.950op/s 21246318.600op/s ± 12545.331op/s 21258896.938op/s 21277774.086op/s 21288925.718op/s 21300941.861op/s 0.26% 0.105 0.065 0.09% 1301.002op/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 [504.909µs; 505.079µs] or [-0.017%; +0.017%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1979890.687op/s; 1980558.494op/s] or [-0.017%; +0.017%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [454.726µs; 454.875µs] or [-0.016%; +0.016%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2198409.455op/s; 2199129.730op/s] or [-0.016%; +0.016%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [176.501µs; 176.553µs] or [-0.015%; +0.015%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5664028.020op/s; 5665700.518op/s] or [-0.015%; +0.015%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [38.031µs; 38.051µs] or [-0.026%; +0.026%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [26280789.277op/s; 26294301.340op/s] or [-0.026%; +0.026%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [47.061µs; 47.072µs] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21243883.005op/s; 21248982.840op/s] or [-0.012%; +0.012%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8479b4 1746608080 julio/add-lib-target-to-profiling-ffi
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 246.143ns 255.701ns ± 11.373ns 250.156ns ± 2.904ns 259.752ns 283.451ns 285.261ns 289.028ns 15.54% 1.503 1.069 4.44% 0.804ns 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 [254.125ns; 257.277ns] or [-0.616%; +0.616%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8479b4 1746608080 julio/add-lib-target-to-profiling-ffi
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 71.943ms 72.523ms ± 0.294ms 72.478ms ± 0.154ms 72.652ms 73.054ms 73.274ms 74.128ms 2.28% 1.247 4.202 0.40% 0.021ms 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 [72.482ms; 72.564ms] or [-0.056%; +0.056%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8479b4 1746608080 julio/add-lib-target-to-profiling-ffi
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 208.839µs 209.119µs ± 0.146µs 209.105µs ± 0.110µs 209.225µs 209.345µs 209.423µs 209.690µs 0.28% 0.432 -0.055 0.07% 0.010µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 4768954.109op/s 4781963.170op/s ± 3345.387op/s 4782295.305op/s ± 2509.431op/s 4784700.601op/s 4786678.196op/s 4787580.640op/s 4788375.102op/s 0.13% -0.429 -0.065 0.07% 236.555op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 18.228µs 18.289µs ± 0.068µs 18.280µs ± 0.014µs 18.297µs 18.342µs 18.376µs 19.158µs 4.80% 10.525 131.224 0.37% 0.005µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 52196874.328op/s 54678155.455op/s ± 196012.096op/s 54704431.726op/s ± 43000.892op/s 54734298.328op/s 54815357.602op/s 54851574.774op/s 54861589.741op/s 0.29% -10.275 126.899 0.36% 13860.148op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.651µs 10.706µs ± 0.025µs 10.706µs ± 0.020µs 10.724µs 10.744µs 10.757µs 10.774µs 0.64% 0.067 -0.559 0.23% 0.002µs 1 200
normalization/normalize_name/normalize_name/good throughput 92814448.211op/s 93406858.483op/s ± 216109.016op/s 93404795.201op/s ± 171616.073op/s 93581968.637op/s 93729625.130op/s 93865095.112op/s 93890745.839op/s 0.52% -0.057 -0.562 0.23% 15281.215op/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 [209.099µs; 209.140µs] or [-0.010%; +0.010%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [4781499.531op/s; 4782426.808op/s] or [-0.010%; +0.010%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.280µs; 18.299µs] or [-0.052%; +0.052%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [54650990.064op/s; 54705320.846op/s] or [-0.050%; +0.050%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.702µs; 10.709µs] or [-0.032%; +0.032%] None None None
normalization/normalize_name/normalize_name/good throughput [93376907.852op/s; 93436809.114op/s] or [-0.032%; +0.032%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8479b4 1746608080 julio/add-lib-target-to-profiling-ffi
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 32.714µs 33.508µs ± 1.079µs 32.851µs ± 0.080µs 34.741µs 35.838µs 36.018µs 36.145µs 10.03% 1.075 -0.512 3.21% 0.076µ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 [33.359µs; 33.658µs] or [-0.446%; +0.446%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8479b4 1746608080 julio/add-lib-target-to-profiling-ffi
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 68.926µs 69.154µs ± 0.263µs 69.117µs ± 0.065µs 69.200µs 69.336µs 69.496µs 72.514µs 4.92% 10.598 132.445 0.38% 0.019µ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 [69.118µs; 69.191µs] or [-0.053%; +0.053%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8479b4 1746608080 julio/add-lib-target-to-profiling-ffi
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.487µs 25.345µs ± 10.963µs 17.839µs ± 0.105µs 34.303µs 43.576µs 54.715µs 97.132µs 444.48% 2.154 8.808 43.15% 0.775µ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.825µs; 26.864µs] or [-5.995%; +5.995%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8479b4 1746608080 julio/add-lib-target-to-profiling-ffi
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.936µs 5.036µs ± 0.047µs 5.040µs ± 0.035µs 5.074µs 5.113µs 5.118µs 5.120µs 1.58% -0.025 -0.870 0.93% 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.030µs; 5.043µs] or [-0.129%; +0.129%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8479b4 1746608080 julio/add-lib-target-to-profiling-ffi
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.176µs 3.169µs ± 1.272µs 2.984µs ± 0.024µs 3.005µs 3.631µs 9.714µs 14.986µs 402.14% 7.758 63.891 40.04% 0.090µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
write only interface execution_time [2.992µs; 3.345µs] or [-5.563%; +5.563%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8479b4 1746608080 julio/add-lib-target-to-profiling-ffi
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.910µs ± 0.003µs 3.910µs ± 0.002µs 3.912µs 3.917µs 3.919µs 3.920µs 0.27% -0.166 5.556 0.09% 0.000µs 1 200
credit_card/is_card_number/ throughput 255077213.209op/s 255727445.915op/s ± 218282.619op/s 255760331.573op/s ± 108067.466op/s 255858124.595op/s 255995613.928op/s 256027472.045op/s 257005277.651op/s 0.49% 0.185 5.649 0.09% 15434.912op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 76.893µs 77.575µs ± 0.398µs 77.574µs ± 0.285µs 77.839µs 78.292µs 78.452µs 79.049µs 1.90% 0.598 0.050 0.51% 0.028µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12650337.990op/s 12891109.042op/s ± 65996.118op/s 12890938.344op/s ± 47401.343op/s 12942231.799op/s 12981134.820op/s 13004009.908op/s 13005105.966op/s 0.89% -0.572 -0.011 0.51% 4666.630op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 70.647µs 71.234µs ± 0.221µs 71.211µs ± 0.117µs 71.355µs 71.595µs 71.832µs 72.260µs 1.47% 0.915 3.020 0.31% 0.016µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13838942.194op/s 14038429.276op/s ± 43428.098op/s 14042807.857op/s ± 23123.121op/s 14063815.926op/s 14097795.037op/s 14137378.639op/s 14154823.045op/s 0.80% -0.876 2.894 0.31% 3070.830op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.888µs 3.910µs ± 0.009µs 3.909µs ± 0.002µs 3.911µs 3.917µs 3.926µs 3.996µs 2.24% 7.492 65.856 0.23% 0.001µs 1 200
credit_card/is_card_number/37828224631 throughput 250230690.589op/s 255738364.790op/s ± 585984.013op/s 255844389.002op/s ± 116033.827op/s 255932176.173op/s 256055202.539op/s 256129378.559op/s 257173124.463op/s 0.52% -7.410 64.896 0.23% 41435.327op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 66.970µs 67.853µs ± 0.475µs 67.836µs ± 0.334µs 68.166µs 68.652µs 68.958µs 69.473µs 2.41% 0.307 -0.171 0.70% 0.034µs 1 200
credit_card/is_card_number/378282246310005 throughput 14394170.750op/s 14738401.400op/s ± 103031.105op/s 14741328.272op/s ± 72934.160op/s 14815506.157op/s 14904476.618op/s 14922572.735op/s 14931973.259op/s 1.29% -0.272 -0.229 0.70% 7285.399op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 51.737µs 51.793µs ± 0.033µs 51.787µs ± 0.019µs 51.812µs 51.848µs 51.883µs 52.024µs 0.46% 2.209 11.089 0.06% 0.002µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 19221884.254op/s 19307587.699op/s ± 12266.439op/s 19310051.848op/s ± 6973.200op/s 19316150.041op/s 19321641.373op/s 19324937.960op/s 19328465.350op/s 0.10% -2.194 10.950 0.06% 867.368op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.119µs 6.249µs ± 0.059µs 6.243µs ± 0.037µs 6.286µs 6.350µs 6.397µs 6.436µs 3.10% 0.311 0.029 0.95% 0.004µs 1 200
credit_card/is_card_number/x371413321323331 throughput 155370727.244op/s 160043545.856op/s ± 1515273.207op/s 160188152.410op/s ± 961548.302op/s 161106238.070op/s 162569975.008op/s 163397805.785op/s 163417187.882op/s 2.02% -0.256 -0.025 0.94% 107145.996op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.897µs 3.910µs ± 0.003µs 3.909µs ± 0.001µs 3.911µs 3.915µs 3.919µs 3.932µs 0.59% 1.935 13.507 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 254307007.933op/s 255755406.244op/s ± 203718.525op/s 255797458.835op/s ± 90900.587op/s 255864354.468op/s 255988609.239op/s 256067277.296op/s 256620034.146op/s 0.32% -1.907 13.329 0.08% 14405.075op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 65.939µs 66.446µs ± 0.245µs 66.423µs ± 0.174µs 66.604µs 66.904µs 67.035µs 67.070µs 0.97% 0.431 -0.451 0.37% 0.017µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 14909866.402op/s 15050098.795op/s ± 55374.381op/s 15055042.644op/s ± 39468.361op/s 15092296.516op/s 15127862.497op/s 15145560.752op/s 15165603.367op/s 0.73% -0.416 -0.466 0.37% 3915.560op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 59.418µs 59.621µs ± 0.084µs 59.609µs ± 0.054µs 59.670µs 59.776µs 59.823µs 59.879µs 0.45% 0.383 0.232 0.14% 0.006µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 16700450.286op/s 16772740.541op/s ± 23638.724op/s 16776042.973op/s ± 15320.744op/s 16788832.071op/s 16811245.631op/s 16823907.565op/s 16829985.986op/s 0.32% -0.374 0.224 0.14% 1671.510op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.891µs 3.910µs ± 0.003µs 3.910µs ± 0.002µs 3.911µs 3.915µs 3.917µs 3.919µs 0.24% -0.830 9.844 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 255170825.296op/s 255769216.769op/s ± 183696.982op/s 255784947.056op/s ± 101824.154op/s 255882202.157op/s 255987706.826op/s 256031506.782op/s 257009021.841op/s 0.48% 0.854 9.995 0.07% 12989.338op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 56.158µs 56.285µs ± 0.100µs 56.260µs ± 0.040µs 56.316µs 56.455µs 56.676µs 56.818µs 0.99% 2.250 7.372 0.18% 0.007µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 17599937.985op/s 17766672.553op/s ± 31508.707op/s 17774547.739op/s ± 12710.358op/s 17785213.374op/s 17797727.052op/s 17805886.698op/s 17806946.490op/s 0.18% -2.227 7.222 0.18% 2228.002op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 51.733µs 51.808µs ± 0.043µs 51.800µs ± 0.024µs 51.826µs 51.889µs 51.918µs 52.016µs 0.42% 1.225 2.627 0.08% 0.003µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 19224773.461op/s 19302220.280op/s ± 15940.538op/s 19305129.373op/s ± 8831.724op/s 19312316.430op/s 19322715.205op/s 19327452.346op/s 19330064.049op/s 0.13% -1.217 2.592 0.08% 1127.166op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.040µs 6.246µs ± 0.065µs 6.242µs ± 0.046µs 6.295µs 6.344µs 6.377µs 6.417µs 2.81% -0.200 -0.101 1.05% 0.005µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 155824983.939op/s 160117675.057op/s ± 1682033.686op/s 160207852.792op/s ± 1174074.059op/s 161169356.736op/s 162954401.762op/s 164153725.507op/s 165569268.850op/s 3.35% 0.259 -0.053 1.05% 118937.743op/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.012%; +0.012%] None None None
credit_card/is_card_number/ throughput [255697194.044op/s; 255757697.787op/s] or [-0.012%; +0.012%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [77.520µs; 77.630µs] or [-0.071%; +0.071%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12881962.615op/s; 12900255.469op/s] or [-0.071%; +0.071%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [71.203µs; 71.264µs] or [-0.043%; +0.043%] None None None
credit_card/is_card_number/ 378282246310005 throughput [14032410.560op/s; 14044447.993op/s] or [-0.043%; +0.043%] None None None
credit_card/is_card_number/37828224631 execution_time [3.909µs; 3.912µs] or [-0.032%; +0.032%] None None None
credit_card/is_card_number/37828224631 throughput [255657153.042op/s; 255819576.539op/s] or [-0.032%; +0.032%] None None None
credit_card/is_card_number/378282246310005 execution_time [67.787µs; 67.919µs] or [-0.097%; +0.097%] None None None
credit_card/is_card_number/378282246310005 throughput [14724122.280op/s; 14752680.521op/s] or [-0.097%; +0.097%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [51.789µs; 51.798µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [19305887.689op/s; 19309287.709op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.241µs; 6.257µs] or [-0.132%; +0.132%] None None None
credit_card/is_card_number/x371413321323331 throughput [159833543.563op/s; 160253548.149op/s] or [-0.131%; +0.131%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.910µs; 3.910µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ throughput [255727172.815op/s; 255783639.672op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [66.412µs; 66.480µs] or [-0.051%; +0.051%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15042424.438op/s; 15057773.151op/s] or [-0.051%; +0.051%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [59.609µs; 59.632µs] or [-0.020%; +0.020%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [16769464.442op/s; 16776016.641op/s] or [-0.020%; +0.020%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.909µs; 3.910µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255743758.134op/s; 255794675.404op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [56.271µs; 56.299µs] or [-0.025%; +0.025%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [17762305.749op/s; 17771039.356op/s] or [-0.025%; +0.025%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [51.802µs; 51.813µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [19300011.075op/s; 19304429.486op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.237µs; 6.255µs] or [-0.145%; +0.145%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [159884561.365op/s; 160350788.749op/s] or [-0.146%; +0.146%] None None None

Baseline

Omitted due to size.

@codecov-commenter
Copy link

codecov-commenter commented May 6, 2025

Codecov Report

Attention: Patch coverage is 3.44828% with 28 lines in your changes missing coverage. Please review.

Project coverage is 71.17%. Comparing base (7dfc1e2) to head (f8479b4).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1050      +/-   ##
==========================================
- Coverage   71.24%   71.17%   -0.07%     
==========================================
  Files         329      322       -7     
  Lines       49229    49235       +6     
==========================================
- Hits        35071    35043      -28     
- Misses      14158    14192      +34     
Components Coverage Δ
datadog-crashtracker 42.43% <ø> (-0.35%) ⬇️
datadog-crashtracker-ffi 6.30% <ø> (ø)
datadog-alloc 98.73% <ø> (ø)
data-pipeline 90.63% <ø> (+0.27%) ⬆️
data-pipeline-ffi 89.02% <ø> (ø)
ddcommon 78.28% <ø> (-0.01%) ⬇️
ddcommon-ffi 66.37% <ø> (ø)
ddtelemetry 60.56% <ø> (+0.37%) ⬆️
ddtelemetry-ffi 21.32% <ø> (ø)
dogstatsd-client 83.26% <ø> (+0.69%) ⬆️
datadog-ipc 82.68% <ø> (+0.14%) ⬆️
datadog-profiling 77.49% <ø> (ø)
datadog-profiling-ffi 62.12% <ø> (ø)
datadog-sidecar 42.45% <ø> (+0.54%) ⬆️
datdog-sidecar-ffi 11.38% <ø> (+3.64%) ⬆️
spawn-worker 54.37% <ø> (ø)
tinybytes 88.94% <ø> (ø)
datadog-trace-normalization 98.24% <ø> (ø)
datadog-trace-obfuscation 94.16% <ø> (-0.01%) ⬇️
datadog-trace-protobuf 77.10% <ø> (-1.41%) ⬇️
datadog-trace-utils 89.28% <ø> (+0.01%) ⬆️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@hoolioh hoolioh force-pushed the julio/add-lib-target-to-profiling-ffi branch from 7e7ca59 to b183486 Compare May 6, 2025 12:00
Copy link
Contributor

@ganeshnj ganeshnj left a comment

Choose a reason for hiding this comment

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

Windows static library artifacts seem to have huge bump in size, could you check if we correctly applying the linker optimization flags for all platforms?

let mut cargo_args = vec![
"build",
"rustc",
Copy link
Contributor

Choose a reason for hiding this comment

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

Is rustc using all the configuration defined in the workspace Cargo.toml like opt-level and codegen-units ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, cargo is still parsing the the toml file and applying the configuration. They are almost equivalent, the difference is that rustc allows you to override some configuration like the 'crate-type'

@hoolioh
Copy link
Contributor Author

hoolioh commented May 6, 2025

Windows static library artifacts seem to have huge bump in size, could you check if we correctly applying the linker optimization flags for all platforms?

Yes, didn't upload the latest commit. It should be fixed.

@hoolioh hoolioh force-pushed the julio/add-lib-target-to-profiling-ffi branch 6 times, most recently from 46f4ee9 to 14182f4 Compare May 7, 2025 08:47
@hoolioh hoolioh force-pushed the julio/add-lib-target-to-profiling-ffi branch from 14182f4 to f8479b4 Compare May 7, 2025 08:54
@hoolioh hoolioh merged commit 6c7ce49 into main May 7, 2025
35 checks passed
@hoolioh hoolioh deleted the julio/add-lib-target-to-profiling-ffi branch May 7, 2025 10:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci-build crashtracker profiling Relates to the profiling* modules.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants