Skip to content

Conversation

@morrisonlevi
Copy link
Contributor

@morrisonlevi morrisonlevi commented Dec 10, 2025

What does this PR do?

Adds these FFI functions:

  • ddog_prof_ProfilesDictionary_new
  • ddog_prof_ProfilesDictionary_try_clone
  • ddog_prof_ProfilesDictionary_insert_function
  • ddog_prof_ProfilesDictionary_insert_mapping
  • ddog_prof_ProfilesDictionary_insert_str
  • ddog_prof_ProfilesDictionary_get_str
  • ddog_prof_ProfilesDictionary_drop
  • ddog_prof_Profile_with_dictionary
  • ddog_prof_Profile_add2

And these helper types:

  • ArcHandle
  • ProfileError
  • ProfileStatus

Motivation

These functions allow FFI for long-lived data. Profilers like .NET can cache a FunctionId2 object rather than caching various strings, which they then have to copy into queues. So they go from 2+ string copies, to holding an integer, much better. Python also showed improvement with an experimental version.

Additional Notes

Benchmarking the profiles.c example on macOS, the performance is roughly 50/50 split in the old and new API. This makes sense because the new API internally translates to the old API. The data shows that translating costs about 31% of the time, which gives us an idea of how much it might be improved if we remove the translation and directly work with the profiles dictionary internally too.

How to test the change?

Describe here in detail how the change can be validated.

@codecov-commenter
Copy link

codecov-commenter commented Dec 10, 2025

Codecov Report

❌ Patch coverage is 28.13067% with 396 lines in your changes missing coverage. Please review.
✅ Project coverage is 70.88%. Comparing base (73c675b) to head (7b0e46d).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1393      +/-   ##
==========================================
- Coverage   71.16%   70.88%   -0.29%     
==========================================
  Files         403      410       +7     
  Lines       64368    64919     +551     
==========================================
+ Hits        45810    46018     +208     
- Misses      18558    18901     +343     
Components Coverage Δ
libdd-crashtracker 58.97% <ø> (ø)
libdd-crashtracker-ffi 16.74% <ø> (ø)
libdd-alloc 98.73% <ø> (ø)
libdd-data-pipeline 85.81% <ø> (ø)
libdd-data-pipeline-ffi 76.59% <ø> (ø)
libdd-common 81.13% <ø> (ø)
libdd-common-ffi 74.96% <ø> (ø)
libdd-telemetry 59.95% <ø> (ø)
libdd-telemetry-ffi 21.17% <ø> (ø)
libdd-dogstatsd-client 83.75% <ø> (ø)
datadog-ipc 82.71% <ø> (+0.10%) ⬆️
libdd-profiling 77.76% <28.13%> (-2.68%) ⬇️
libdd-profiling-ffi 55.24% <30.75%> (-8.18%) ⬇️
datadog-sidecar 35.86% <ø> (ø)
datdog-sidecar-ffi 10.79% <ø> (ø)
spawn-worker 55.18% <ø> (ø)
libdd-tinybytes 92.44% <ø> (ø)
libdd-trace-normalization 98.24% <ø> (ø)
libdd-trace-obfuscation 94.17% <ø> (ø)
libdd-trace-protobuf 61.18% <ø> (ø)
libdd-trace-utils 89.97% <ø> (ø)
datadog-tracer-flare 63.49% <ø> (ø)
libdd-log 75.57% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@pr-commenter
Copy link

pr-commenter bot commented Dec 10, 2025

Benchmarks

Comparison

Benchmark execution time: 2025-12-13 00:38:09

Comparing candidate commit 7b0e46d in PR branch levi/add2-ffi with baseline commit 73c675b in branch main.

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

Candidate

Candidate benchmark details

Group 1

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7b0e46d 1765585306 levi/add2-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.175µs 3.180µs ± 1.427µs 2.980µs ± 0.026µs 3.003µs 3.621µs 13.813µs 14.850µs 398.37% 7.409 55.855 44.77% 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 [2.982µs; 3.378µs] or [-6.220%; +6.220%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7b0e46d 1765585306 levi/add2-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.910µs 25.799µs ± 9.877µs 18.293µs ± 0.290µs 35.773µs 44.411µs 45.219µs 57.488µs 214.26% 0.746 -0.888 38.19% 0.698µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [24.430µs; 27.168µs] or [-5.306%; +5.306%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7b0e46d 1765585306 levi/add2-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 10.577ms 10.607ms ± 0.016ms 10.605ms ± 0.008ms 10.613ms 10.633ms 10.661ms 10.685ms 0.76% 1.522 4.707 0.15% 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.604ms; 10.609ms] or [-0.020%; +0.020%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7b0e46d 1765585306 levi/add2-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.895µs 3.912µs ± 0.003µs 3.912µs ± 0.002µs 3.914µs 3.917µs 3.920µs 3.927µs 0.38% -0.028 6.524 0.08% 0.000µs 1 200
credit_card/is_card_number/ throughput 254634558.082op/s 255608745.646op/s ± 205933.841op/s 255606971.844op/s ± 112770.755op/s 255727401.195op/s 255886463.210op/s 255983711.393op/s 256757017.289op/s 0.45% 0.049 6.559 0.08% 14561.722op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 78.940µs 80.605µs ± 0.764µs 80.583µs ± 0.497µs 81.020µs 81.912µs 82.416µs 83.790µs 3.98% 0.522 0.684 0.95% 0.054µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 11934538.009op/s 12407217.572op/s ± 117014.269op/s 12409497.555op/s ± 76929.709op/s 12494380.735op/s 12595465.645op/s 12617687.452op/s 12667828.459op/s 2.08% -0.455 0.506 0.94% 8274.158op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 74.419µs 74.986µs ± 0.180µs 74.974µs ± 0.106µs 75.084µs 75.284µs 75.464µs 75.594µs 0.83% 0.191 0.999 0.24% 0.013µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13228480.840op/s 13335823.850op/s ± 31995.889op/s 13337967.116op/s ± 18872.600op/s 13355297.484op/s 13382289.611op/s 13412533.293op/s 13437367.977op/s 0.75% -0.170 0.994 0.24% 2262.451op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.895µs 3.914µs ± 0.002µs 3.914µs ± 0.001µs 3.915µs 3.917µs 3.919µs 3.921µs 0.17% -4.599 50.227 0.05% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 255065764.756op/s 255474032.951op/s ± 125232.953op/s 255486781.033op/s ± 45444.190op/s 255526868.210op/s 255572426.291op/s 255597786.313op/s 256737759.053op/s 0.49% 4.645 50.757 0.05% 8855.307op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 71.651µs 72.194µs ± 0.239µs 72.184µs ± 0.141µs 72.329µs 72.607µs 72.807µs 72.979µs 1.10% 0.307 0.326 0.33% 0.017µs 1 200
credit_card/is_card_number/378282246310005 throughput 13702592.235op/s 13851707.614op/s ± 45900.368op/s 13853408.915op/s ± 26955.277op/s 13879146.582op/s 13929787.162op/s 13948194.282op/s 13956557.554op/s 0.74% -0.285 0.303 0.33% 3245.646op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 52.126µs 52.199µs ± 0.036µs 52.198µs ± 0.023µs 52.222µs 52.256µs 52.296µs 52.348µs 0.29% 0.643 1.123 0.07% 0.003µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 19103080.521op/s 19157329.134op/s ± 13146.553op/s 19157693.108op/s ± 8497.825op/s 19165964.124op/s 19177952.834op/s 19180817.840op/s 19184224.812op/s 0.14% -0.638 1.107 0.07% 929.602op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 5.692µs 5.865µs ± 0.074µs 5.863µs ± 0.058µs 5.924µs 5.990µs 6.010µs 6.037µs 2.97% -0.017 -0.643 1.26% 0.005µs 1 200
credit_card/is_card_number/x371413321323331 throughput 165643155.563op/s 170524326.503op/s ± 2162062.149op/s 170564105.106op/s ± 1694974.809op/s 172091215.362op/s 174004225.287op/s 174933985.738op/s 175683067.333op/s 3.00% 0.069 -0.638 1.26% 152880.881op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.894µs 3.910µs ± 0.003µs 3.910µs ± 0.001µs 3.911µs 3.914µs 3.916µs 3.921µs 0.28% -0.550 8.614 0.06% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 255039880.278op/s 255735300.617op/s ± 164255.123op/s 255747057.459op/s ± 90257.103op/s 255835388.093op/s 255931370.920op/s 256006574.614op/s 256786231.438op/s 0.41% 0.570 8.710 0.06% 11614.591op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 64.173µs 64.370µs ± 0.144µs 64.336µs ± 0.071µs 64.417µs 64.667µs 64.880µs 64.974µs 0.99% 1.655 3.028 0.22% 0.010µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15390823.320op/s 15535187.591op/s ± 34601.405op/s 15543504.805op/s ± 17286.673op/s 15559156.825op/s 15571429.153op/s 15578176.208op/s 15582970.929op/s 0.25% -1.640 2.963 0.22% 2446.689op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 57.393µs 57.564µs ± 0.111µs 57.537µs ± 0.067µs 57.629µs 57.760µs 57.883µs 58.036µs 0.87% 1.135 1.397 0.19% 0.008µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 17230638.333op/s 17372167.054op/s ± 33556.509op/s 17380238.669op/s ± 20132.981op/s 17396949.013op/s 17411833.087op/s 17419636.653op/s 17423715.419op/s 0.25% -1.123 1.350 0.19% 2372.804op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.893µs 3.911µs ± 0.003µs 3.911µs ± 0.002µs 3.913µs 3.916µs 3.918µs 3.921µs 0.26% -0.633 6.361 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 255042932.892op/s 255680401.906op/s ± 190865.275op/s 255695602.036op/s ± 108164.763op/s 255800068.989op/s 255933448.416op/s 255998595.484op/s 256850794.299op/s 0.45% 0.651 6.459 0.07% 13496.213op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 54.577µs 54.836µs ± 0.182µs 54.786µs ± 0.087µs 54.909µs 55.209µs 55.457µs 55.738µs 1.74% 1.664 3.642 0.33% 0.013µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 17941097.319op/s 18236240.663op/s ± 60174.040op/s 18252708.154op/s ± 28878.632op/s 18276526.087op/s 18301571.282op/s 18311019.982op/s 18322832.081op/s 0.38% -1.636 3.493 0.33% 4254.947op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 52.134µs 52.195µs ± 0.036µs 52.189µs ± 0.021µs 52.213µs 52.254µs 52.309µs 52.376µs 0.36% 1.225 3.273 0.07% 0.003µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 19092556.638op/s 19158995.094op/s ± 13293.422op/s 19160949.029op/s ± 7630.593op/s 19167320.199op/s 19178172.746op/s 19180524.613op/s 19181177.511op/s 0.11% -1.217 3.236 0.07% 939.987op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 5.699µs 5.862µs ± 0.066µs 5.861µs ± 0.039µs 5.900µs 5.968µs 6.004µs 6.023µs 2.77% 0.007 -0.304 1.11% 0.005µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 166032869.055op/s 170612318.457op/s ± 1907504.703op/s 170631130.055op/s ± 1118342.336op/s 171706694.702op/s 173732041.593op/s 174612683.055op/s 175462735.368op/s 2.83% 0.050 -0.295 1.12% 134880.951op/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 [255580205.197op/s; 255637286.096op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [80.500µs; 80.711µs] or [-0.131%; +0.131%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12391000.519op/s; 12423434.624op/s] or [-0.131%; +0.131%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [74.961µs; 75.011µs] or [-0.033%; +0.033%] None None None
credit_card/is_card_number/ 378282246310005 throughput [13331389.527op/s; 13340258.172op/s] or [-0.033%; +0.033%] None None None
credit_card/is_card_number/37828224631 execution_time [3.914µs; 3.915µs] or [-0.007%; +0.007%] None None None
credit_card/is_card_number/37828224631 throughput [255456676.868op/s; 255491389.034op/s] or [-0.007%; +0.007%] None None None
credit_card/is_card_number/378282246310005 execution_time [72.161µs; 72.227µs] or [-0.046%; +0.046%] None None None
credit_card/is_card_number/378282246310005 throughput [13845346.265op/s; 13858068.964op/s] or [-0.046%; +0.046%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [52.194µs; 52.204µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [19155507.148op/s; 19159151.120op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/x371413321323331 execution_time [5.855µs; 5.876µs] or [-0.176%; +0.176%] None None None
credit_card/is_card_number/x371413321323331 throughput [170224685.482op/s; 170823967.523op/s] or [-0.176%; +0.176%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.910µs; 3.911µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ throughput [255712536.437op/s; 255758064.798op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [64.350µs; 64.390µs] or [-0.031%; +0.031%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15530392.169op/s; 15539983.013op/s] or [-0.031%; +0.031%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [57.548µs; 57.579µs] or [-0.027%; +0.027%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [17367516.444op/s; 17376817.663op/s] or [-0.027%; +0.027%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.911µs; 3.912µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255653949.814op/s; 255706853.997op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [54.811µs; 54.862µs] or [-0.046%; +0.046%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [18227901.120op/s; 18244580.207op/s] or [-0.046%; +0.046%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [52.190µs; 52.200µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [19157152.753op/s; 19160837.434op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [5.853µs; 5.871µs] or [-0.155%; +0.155%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [170347956.650op/s; 170876680.263op/s] or [-0.155%; +0.155%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7b0e46d 1765585306 levi/add2-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 34.150µs 34.632µs ± 0.805µs 34.268µs ± 0.047µs 34.360µs 36.248µs 36.292µs 38.915µs 13.56% 2.044 3.837 2.32% 0.057µ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.521µs; 34.744µs] or [-0.322%; +0.322%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7b0e46d 1765585306 levi/add2-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.327µs 2.394µs ± 0.020µs 2.394µs ± 0.008µs 2.403µs 2.435µs 2.447µs 2.461µs 2.83% -0.184 2.418 0.83% 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.391µs; 2.397µs] or [-0.116%; +0.116%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7b0e46d 1765585306 levi/add2-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 85.261µs 85.506µs ± 0.134µs 85.488µs ± 0.061µs 85.570µs 85.686µs 85.817µs 86.746µs 1.47% 4.234 35.190 0.16% 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 [85.488µs; 85.525µs] or [-0.022%; +0.022%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7b0e46d 1765585306 levi/add2-ffi
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 187.659ns 190.520ns ± 2.297ns 190.225ns ± 1.636ns 191.736ns 194.632ns 197.528ns 202.030ns 6.21% 1.431 3.452 1.20% 0.162ns 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
single_flag_killswitch/rules-based execution_time [190.202ns; 190.838ns] or [-0.167%; +0.167%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7b0e46d 1765585306 levi/add2-ffi
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.463µs 146.680µs ± 1.728µs 146.432µs ± 0.648µs 147.125µs 148.657µs 153.913µs 161.381µs 10.21% 4.824 33.069 1.18% 0.122µ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.440µs; 146.919µs] or [-0.163%; +0.163%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7b0e46d 1765585306 levi/add2-ffi
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 532.029µs 532.568µs ± 0.323µs 532.503µs ± 0.174µs 532.729µs 533.091µs 533.839µs 534.120µs 0.30% 1.693 4.776 0.06% 0.023µ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 [532.524µs; 532.613µs] or [-0.008%; +0.008%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7b0e46d 1765585306 levi/add2-ffi
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching serializing traces from their internal representation to msgpack execution_time 14.142ms 14.238ms ± 0.036ms 14.232ms ± 0.020ms 14.255ms 14.307ms 14.342ms 14.393ms 1.13% 1.106 2.722 0.25% 0.003ms 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.233ms; 14.243ms] or [-0.035%; +0.035%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7b0e46d 1765585306 levi/add2-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 61.243ms 61.700ms ± 2.511ms 61.368ms ± 0.047ms 61.427ms 61.624ms 80.852ms 83.394ms 35.89% 7.991 62.177 4.06% 0.178ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching deserializing traces from msgpack to their internal representation execution_time [61.352ms; 62.048ms] or [-0.564%; +0.564%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7b0e46d 1765585306 levi/add2-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 243.939ns 255.170ns ± 15.399ns 247.725ns ± 2.797ns 260.170ns 291.691ns 300.441ns 308.073ns 24.36% 1.707 1.724 6.02% 1.089ns 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 [253.036ns; 257.304ns] or [-0.836%; +0.836%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7b0e46d 1765585306 levi/add2-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.997µs 5.060µs ± 0.045µs 5.045µs ± 0.024µs 5.087µs 5.138µs 5.145µs 5.148µs 2.05% 0.706 -0.972 0.88% 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.054µs; 5.067µs] or [-0.123%; +0.123%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7b0e46d 1765585306 levi/add2-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 161.744µs 162.384µs ± 0.310µs 162.344µs ± 0.129µs 162.492µs 162.873µs 163.126µs 165.388µs 1.88% 4.789 42.454 0.19% 0.022µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching string interning on wordpress profile execution_time [162.341µs; 162.427µs] or [-0.026%; +0.026%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7b0e46d 1765585306 levi/add2-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 533.114µs 533.865µs ± 0.385µs 533.840µs ± 0.244µs 534.069µs 534.460µs 535.107µs 535.471µs 0.31% 0.823 1.719 0.07% 0.027µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1867513.947op/s 1873133.977op/s ± 1349.106op/s 1873221.679op/s ± 857.238op/s 1874113.792op/s 1875179.090op/s 1875608.708op/s 1875770.376op/s 0.14% -0.816 1.699 0.07% 95.396op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 382.223µs 382.824µs ± 0.272µs 382.809µs ± 0.192µs 382.996µs 383.289µs 383.592µs 383.696µs 0.23% 0.548 0.415 0.07% 0.019µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2606228.080op/s 2612167.573op/s ± 1853.641op/s 2612271.263op/s ± 1307.263op/s 2613588.874op/s 2614890.768op/s 2615526.072op/s 2616272.501op/s 0.15% -0.544 0.406 0.07% 131.072op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 189.014µs 189.733µs ± 0.258µs 189.748µs ± 0.148µs 189.880µs 190.067µs 190.279µs 191.307µs 0.82% 0.770 6.476 0.14% 0.018µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5227203.135op/s 5270572.634op/s ± 7171.302op/s 5270151.065op/s ± 4116.909op/s 5274788.182op/s 5282755.162op/s 5288422.499op/s 5290617.077op/s 0.39% -0.738 6.303 0.14% 507.088op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 36.872µs 36.997µs ± 0.054µs 36.991µs ± 0.035µs 37.027µs 37.085µs 37.112µs 37.140µs 0.40% 0.295 -0.412 0.15% 0.004µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 26925464.210op/s 27029530.762op/s ± 39547.190op/s 27033891.701op/s ± 25369.185op/s 27058834.126op/s 27088574.205op/s 27109325.764op/s 27121025.843op/s 0.32% -0.288 -0.414 0.15% 2796.409op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 44.967µs 45.173µs ± 0.090µs 45.197µs ± 0.056µs 45.245µs 45.302µs 45.345µs 45.369µs 0.38% -0.408 -0.527 0.20% 0.006µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 22041654.809op/s 22137054.226op/s ± 44209.168op/s 22125596.237op/s ± 27423.878op/s 22169043.892op/s 22215598.966op/s 22236365.705op/s 22238497.508op/s 0.51% 0.416 -0.523 0.20% 3126.060op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... execution_time [533.812µs; 533.918µs] or [-0.010%; +0.010%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1872947.004op/s; 1873320.950op/s] or [-0.010%; +0.010%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [382.786µs; 382.862µs] or [-0.010%; +0.010%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2611910.676op/s; 2612424.470op/s] or [-0.010%; +0.010%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [189.697µs; 189.769µs] or [-0.019%; +0.019%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5269578.760op/s; 5271566.507op/s] or [-0.019%; +0.019%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [36.989µs; 37.004µs] or [-0.020%; +0.020%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [27024049.902op/s; 27035011.622op/s] or [-0.020%; +0.020%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [45.161µs; 45.186µs] or [-0.028%; +0.028%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [22130927.261op/s; 22143181.192op/s] or [-0.028%; +0.028%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7b0e46d 1765585306 levi/add2-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 204.970µs 207.354µs ± 3.303µs 205.366µs ± 0.207µs 212.310µs 212.960µs 213.249µs 213.812µs 4.11% 1.011 -0.932 1.59% 0.234µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 4677011.436op/s 4823865.650op/s ± 75627.787op/s 4869349.273op/s ± 4910.728op/s 4872802.761op/s 4876561.430op/s 4878064.823op/s 4878766.713op/s 0.19% -1.009 -0.937 1.56% 5347.692op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 18.559µs 18.649µs ± 0.093µs 18.617µs ± 0.033µs 18.660µs 18.861µs 19.012µs 19.054µs 2.34% 2.128 4.596 0.50% 0.007µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 52483783.220op/s 53622167.130op/s ± 263887.081op/s 53713528.335op/s ± 96508.948op/s 53782033.775op/s 53844805.301op/s 53868669.238op/s 53882605.821op/s 0.31% -2.097 4.436 0.49% 18659.634op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.784µs 10.902µs ± 0.066µs 10.888µs ± 0.042µs 10.941µs 11.011µs 11.073µs 11.136µs 2.28% 0.741 0.713 0.60% 0.005µs 1 200
normalization/normalize_name/normalize_name/good throughput 89797660.845op/s 91725608.604op/s ± 551120.493op/s 91844370.490op/s ± 351800.754op/s 92150809.332op/s 92537492.193op/s 92700192.699op/s 92733494.578op/s 0.97% -0.702 0.615 0.60% 38970.104op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... execution_time [206.896µs; 207.812µs] or [-0.221%; +0.221%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [4813384.366op/s; 4834346.934op/s] or [-0.217%; +0.217%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.637µs; 18.662µs] or [-0.069%; +0.069%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [53585594.919op/s; 53658739.342op/s] or [-0.068%; +0.068%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.893µs; 10.912µs] or [-0.084%; +0.084%] None None None
normalization/normalize_name/normalize_name/good throughput [91649228.604op/s; 91801988.604op/s] or [-0.083%; +0.083%] None None None

Group 18

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7b0e46d 1765585306 levi/add2-ffi
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
receiver_entry_point/report/2597 execution_time 9.586ms 9.887ms ± 0.087ms 9.895ms ± 0.029ms 9.925ms 10.010ms 10.071ms 10.123ms 2.30% -0.893 1.926 0.88% 0.006ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
receiver_entry_point/report/2597 execution_time [9.875ms; 9.899ms] or [-0.122%; +0.122%] None None None

Group 19

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7b0e46d 1765585306 levi/add2-ffi
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.020ms 4.024ms ± 0.007ms 4.023ms ± 0.001ms 4.025ms 4.027ms 4.031ms 4.115ms 2.27% 12.115 159.300 0.17% 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.023ms; 4.025ms] or [-0.023%; +0.023%] None None None

Baseline

Omitted due to size.

@dd-octo-sts
Copy link

dd-octo-sts bot commented Dec 12, 2025

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 7.44 MB 7.50 MB +.83% (+64.00 KB) 🔍
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 86.48 MB 87.05 MB +.66% (+584.75 KB) 🔍
aarch64-apple-darwin
Artifact Baseline Commit Change
/aarch64-apple-darwin/lib/libdatadog_profiling.a 58.49 MB 58.94 MB +.77% (+465.92 KB) 🔍
/aarch64-apple-darwin/lib/libdatadog_profiling.dylib 8.45 MB 8.51 MB +.69% (+60.18 KB) 🔍
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 9.61 MB 9.62 MB +.14% (+14.74 KB) 🔍
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 100.27 MB 100.86 MB +.58% (+601.53 KB) 🔍
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 19.72 MB 20.06 MB +1.75% (+354.00 KB) ⚠️
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 69.82 KB 74.31 KB +6.43% (+4.49 KB) 🚨
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 140.14 MB 142.03 MB +1.34% (+1.89 MB) ⚠️
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 744.89 MB 748.12 MB +.43% (+3.23 MB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 6.37 MB 6.42 MB +.71% (+47.00 KB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 69.82 KB 74.31 KB +6.43% (+4.49 KB) 🚨
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 19.75 MB 19.93 MB +.90% (+184.00 KB) 🔍
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 38.79 MB 39.06 MB +.70% (+280.37 KB) 🔍
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 16.83 MB 17.12 MB +1.72% (+296.50 KB) ⚠️
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 70.90 KB 75.46 KB +6.43% (+4.56 KB) 🚨
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 142.76 MB 144.71 MB +1.36% (+1.95 MB) ⚠️
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 733.41 MB 736.56 MB +.43% (+3.15 MB) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 4.89 MB 4.93 MB +.79% (+40.00 KB) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 70.90 KB 75.46 KB +6.43% (+4.56 KB) 🚨
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 20.98 MB 21.19 MB +1.00% (+216.00 KB) ⚠️
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 36.54 MB 36.82 MB +.74% (+279.86 KB) 🔍
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 74.80 MB 75.34 MB +.71% (+550.37 KB) 🔍
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 8.88 MB 8.93 MB +.52% (+48.00 KB) 🔍
x86_64-apple-darwin
Artifact Baseline Commit Change
/x86_64-apple-darwin/lib/libdatadog_profiling.a 59.83 MB 60.29 MB +.76% (+468.95 KB) 🔍
/x86_64-apple-darwin/lib/libdatadog_profiling.dylib 9.50 MB 9.55 MB +.53% (+51.62 KB) 🔍
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 94.46 MB 95.01 MB +.57% (+560.99 KB) 🔍
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 10.32 MB 10.37 MB +.47% (+50.64 KB) 🔍

@morrisonlevi
Copy link
Contributor Author

Closing in favor of #1403, #1404, #1405, #1406.

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants