Skip to content

Conversation

@paullegranddc
Copy link
Contributor

@paullegranddc paullegranddc commented Oct 15, 2025

Motivation

Cloning is very cheap as long as we have a ByteString or a str slice, but if we want to use python strings we need to hold the GIL to clone them.
This is not possible in general... But there are no operations requiring us to actual clone the data.

Changes

  • use an indexmap for the shared dictionary. This datastructure is exactly what we want (O(1) access and insertion order iteration) and keep only one of each value
  • Use indices into the span slice while computing top level rather than copying the service string

# Motivation

Cloning is very cheap as long as we have a ByteString or a str slice, but if we want to use python strings we need to hold the GIL to clone them.
This is not possible in general... But there are no operations requiring us to actual clone the data.

# Changes

* use an indexmap for the shared dictionary. This datastructure is exactly what we want (O(1) access and insertion order iteration) and keep only one of each value
*  Use indices into the span slice while computing top level rather than copying the service string
@paullegranddc paullegranddc requested review from a team as code owners October 15, 2025 17:35
@datadog-datadog-prod-us1
Copy link

datadog-datadog-prod-us1 bot commented Oct 15, 2025

⚠️ Tests

⚠️ Warnings

❄️ 1 New flaky test detected

test_ddog_sidecar_register_app from datadog-sidecar-ffi::sidecar (Datadog)
thread 'test_ddog_sidecar_register_app' panicked at datadog-sidecar-ffi\tests\sidecar.rs:112:10

thread 'test_ddog_sidecar_register_app' panicked at datadog-sidecar-ffi\tests\sidecar.rs:112:10:
Called ffi::Option::unwrap_none but option was Some(Error("Os { code: 232, kind: BrokenPipe, message: "The pipe is being closed." }"))
stack backtrace:
   0:     0x7ff60e9a1922 - std::backtrace_rs::backtrace::win64::trace
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library\std\src\..\..\backtrace\src\backtrace\win64.rs:85
   1:     0x7ff60e9a1922 - std::backtrace_rs::backtrace::trace_unsynchronized
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library\std\src\..\..\backtrace\src\backtrace\mod.rs:66
   2:     0x7ff60e9a1922 - std::sys::backtrace::_print_fmt
...

ℹ️ Info

🧪 All tests passed

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 5873b54 | Docs | Datadog PR Page | Was this helpful? Give us feedback!

@paullegranddc paullegranddc changed the title feat(span): Remove clone bound on spantext feat(span): remove clone bound on spantext Oct 15, 2025
# Motivation

When we serialize we store the uppper 64 bits  of the trace id in a meta tag. But at runtime, we don't want to split it as the trace id still needs to be readable.
@paullegranddc paullegranddc force-pushed the paullgdc/trace-utils/remove_clone_on_spantext branch from e990211 to 2445a48 Compare October 15, 2025 17:37
@pr-commenter
Copy link

pr-commenter bot commented Oct 15, 2025

Benchmarks

Comparison

Benchmark execution time: 2025-10-29 19:49:24

Comparing candidate commit 5873b54 in PR branch paullgdc/trace-utils/remove_clone_on_spantext with baseline commit c365938 in branch main.

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

scenario:benching serializing traces from their internal representation to msgpack

  • 🟩 execution_time [-699.876µs; -689.327µs] or [-4.786%; -4.714%]

scenario:credit_card/is_card_number/37828224631000521389798

  • 🟥 execution_time [+6.554µs; +6.605µs] or [+14.366%; +14.479%]
  • 🟥 throughput [-2775664.850op/s; -2751206.098op/s] or [-12.662%; -12.550%]

scenario:credit_card/is_card_number/x371413321323331

  • 🟩 execution_time [-390.946ns; -387.974ns] or [-6.075%; -6.029%]
  • 🟩 throughput [+9971049.402op/s; +10051168.058op/s] or [+6.416%; +6.468%]

scenario:credit_card/is_card_number_no_luhn/ 378282246310005

  • 🟥 execution_time [+3.449µs; +3.497µs] or [+6.378%; +6.468%]
  • 🟥 throughput [-1124175.755op/s; -1108128.449op/s] or [-6.079%; -5.992%]

scenario:credit_card/is_card_number_no_luhn/378282246310005

  • 🟥 execution_time [+4.123µs; +4.176µs] or [+8.145%; +8.251%]
  • 🟥 throughput [-1506412.861op/s; -1487424.054op/s] or [-7.625%; -7.528%]

scenario:credit_card/is_card_number_no_luhn/37828224631000521389798

  • 🟥 execution_time [+6.496µs; +6.551µs] or [+14.223%; +14.342%]
  • 🟥 throughput [-2749474.892op/s; -2723681.764op/s] or [-12.558%; -12.440%]

scenario:credit_card/is_card_number_no_luhn/x371413321323331

  • 🟩 execution_time [-384.894ns; -381.950ns] or [-5.982%; -5.936%]
  • 🟩 throughput [+9808015.210op/s; +9887198.446op/s] or [+6.311%; +6.362%]

scenario:normalization/normalize_trace/test_trace

  • 🟩 execution_time [-51.097ns; -46.194ns] or [-16.992%; -15.362%]

scenario:sql/obfuscate_sql_string

  • 🟥 execution_time [+4.388µs; +4.471µs] or [+5.140%; +5.238%]

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 5873b54 1761766543 paullgdc/trace-utils/remove_clone_on_spantext
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.902µs 161.744µs ± 0.249µs 161.717µs ± 0.133µs 161.871µs 162.067µs 162.452µs 163.044µs 0.82% 1.040 5.760 0.15% 0.018µ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.709µs; 161.778µs] or [-0.021%; +0.021%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 5873b54 1761766543 paullgdc/trace-utils/remove_clone_on_spantext
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.894µs 3.912µs ± 0.003µs 3.911µs ± 0.002µs 3.913µs 3.916µs 3.917µs 3.919µs 0.20% -1.049 9.221 0.07% 0.000µs 1 200
credit_card/is_card_number/ throughput 255187753.542op/s 255655742.462op/s ± 169864.207op/s 255688238.671op/s ± 101589.624op/s 255764359.237op/s 255868522.870op/s 255912681.690op/s 256803175.926op/s 0.44% 1.070 9.363 0.07% 12011.213op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 79.055µs 80.746µs ± 0.803µs 80.725µs ± 0.575µs 81.305µs 82.028µs 82.456µs 82.986µs 2.80% 0.151 -0.502 0.99% 0.057µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12050214.800op/s 12385692.158op/s ± 122970.647op/s 12387793.134op/s ± 88145.949op/s 12474996.600op/s 12588942.556op/s 12636824.144op/s 12649382.578op/s 2.11% -0.107 -0.522 0.99% 8695.338op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 74.216µs 74.944µs ± 0.172µs 74.935µs ± 0.077µs 75.023µs 75.243µs 75.332µs 75.722µs 1.05% 0.083 3.332 0.23% 0.012µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13206128.748op/s 13343382.035op/s ± 30574.451op/s 13344817.844op/s ± 13723.604op/s 13357865.953op/s 13387890.354op/s 13424916.022op/s 13474256.628op/s 0.97% -0.046 3.326 0.23% 2161.940op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.892µs 3.911µs ± 0.003µs 3.911µs ± 0.002µs 3.913µs 3.916µs 3.918µs 3.920µs 0.21% -1.384 12.836 0.07% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 255129428.546op/s 255664674.531op/s ± 179380.485op/s 255668782.851op/s ± 99954.265op/s 255774129.769op/s 255871578.526op/s 255965410.591op/s 256965787.774op/s 0.51% 1.412 13.041 0.07% 12684.116op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 71.682µs 72.117µs ± 0.188µs 72.103µs ± 0.097µs 72.213µs 72.414µs 72.627µs 72.772µs 0.93% 0.319 0.924 0.26% 0.013µs 1 200
credit_card/is_card_number/378282246310005 throughput 13741506.834op/s 13866428.689op/s ± 36114.349op/s 13869071.972op/s ± 18645.418op/s 13885228.549op/s 13929077.425op/s 13945779.016op/s 13950584.821op/s 0.59% -0.297 0.893 0.26% 2553.670op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 52.128µs 52.197µs ± 0.034µs 52.194µs ± 0.024µs 52.219µs 52.252µs 52.281µs 52.299µs 0.20% 0.224 -0.339 0.06% 0.002µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 19120797.831op/s 19158260.169op/s ± 12367.806op/s 19159417.489op/s ± 8826.250op/s 19167288.628op/s 19178124.856op/s 19182220.748op/s 19183584.607op/s 0.13% -0.221 -0.342 0.06% 874.536op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.022µs 6.046µs ± 0.010µs 6.045µs ± 0.007µs 6.052µs 6.063µs 6.068µs 6.072µs 0.44% 0.207 -0.245 0.17% 0.001µs 1 200
credit_card/is_card_number/x371413321323331 throughput 164700322.435op/s 165408840.637op/s ± 273962.702op/s 165429102.915op/s ± 187005.543op/s 165592894.186op/s 165812218.116op/s 166002008.548op/s 166066304.414op/s 0.39% -0.199 -0.248 0.17% 19372.088op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.893µs 3.911µs ± 0.003µs 3.911µs ± 0.001µs 3.913µs 3.915µs 3.917µs 3.919µs 0.19% -1.399 11.242 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 255199477.265op/s 255673449.176op/s ± 167926.319op/s 255676580.025op/s ± 89822.016op/s 255767196.559op/s 255893885.689op/s 255937866.336op/s 256861940.675op/s 0.46% 1.421 11.414 0.07% 11874.184op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 64.140µs 64.303µs ± 0.096µs 64.281µs ± 0.043µs 64.333µs 64.513µs 64.645µs 64.788µs 0.79% 2.047 5.768 0.15% 0.007µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15434866.989op/s 15551442.291op/s ± 23052.892op/s 15556726.631op/s ± 10397.273op/s 15566249.647op/s 15576293.038op/s 15582619.926op/s 15590907.383op/s 0.22% -2.031 5.682 0.15% 1630.086op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 57.372µs 57.547µs ± 0.103µs 57.528µs ± 0.065µs 57.602µs 57.744µs 57.863µs 57.994µs 0.81% 1.301 2.465 0.18% 0.007µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 17243045.181op/s 17377090.676op/s ± 31084.148op/s 17382838.794op/s ± 19593.607op/s 17399611.554op/s 17416217.285op/s 17422608.572op/s 17430180.357op/s 0.27% -1.286 2.406 0.18% 2197.981op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.893µs 3.913µs ± 0.003µs 3.913µs ± 0.002µs 3.914µs 3.916µs 3.919µs 3.926µs 0.33% -1.276 14.006 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 254736595.782op/s 255587172.614op/s ± 180457.697op/s 255584601.039op/s ± 102332.519op/s 255681524.054op/s 255819522.673op/s 255907151.289op/s 256885248.274op/s 0.51% 1.307 14.177 0.07% 12760.286op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 54.566µs 54.764µs ± 0.150µs 54.725µs ± 0.065µs 54.800µs 55.046µs 55.335µs 55.429µs 1.29% 1.800 3.910 0.27% 0.011µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 18041012.249op/s 18260342.811op/s ± 49830.868op/s 18273227.905op/s ± 21645.876op/s 18292834.697op/s 18314360.845op/s 18325244.839op/s 18326580.873op/s 0.29% -1.778 3.808 0.27% 3523.574op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 52.136µs 52.198µs ± 0.046µs 52.189µs ± 0.020µs 52.213µs 52.247µs 52.353µs 52.602µs 0.79% 4.421 31.237 0.09% 0.003µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 19010766.827op/s 19157995.266op/s ± 16972.642op/s 19161257.853op/s ± 7191.837op/s 19167282.408op/s 19174104.988op/s 19179371.608op/s 19180510.683op/s 0.10% -4.384 30.814 0.09% 1200.147op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.028µs 6.051µs ± 0.010µs 6.052µs ± 0.007µs 6.057µs 6.067µs 6.077µs 6.081µs 0.48% 0.165 0.055 0.16% 0.001µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 164449402.117op/s 165257165.822op/s ± 269728.311op/s 165244815.763op/s ± 184221.076op/s 165454446.394op/s 165715867.003op/s 165839905.079op/s 165897169.835op/s 0.39% -0.155 0.046 0.16% 19072.672op/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.911µs; 3.912µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/ throughput [255632200.916op/s; 255679284.007op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [80.635µs; 80.857µs] or [-0.138%; +0.138%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12368649.609op/s; 12402734.707op/s] or [-0.138%; +0.138%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [74.920µs; 74.968µs] or [-0.032%; +0.032%] None None None
credit_card/is_card_number/ 378282246310005 throughput [13339144.710op/s; 13347619.360op/s] or [-0.032%; +0.032%] None None None
credit_card/is_card_number/37828224631 execution_time [3.911µs; 3.912µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/37828224631 throughput [255639814.121op/s; 255689534.941op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/378282246310005 execution_time [72.091µs; 72.143µs] or [-0.036%; +0.036%] None None None
credit_card/is_card_number/378282246310005 throughput [13861423.588op/s; 13871433.791op/s] or [-0.036%; +0.036%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [52.192µs; 52.201µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [19156546.110op/s; 19159974.228op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.044µs; 6.047µs] or [-0.023%; +0.023%] None None None
credit_card/is_card_number/x371413321323331 throughput [165370872.041op/s; 165446809.232op/s] or [-0.023%; +0.023%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.911µs; 3.912µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ throughput [255650176.203op/s; 255696722.148op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [64.290µs; 64.316µs] or [-0.021%; +0.021%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15548247.382op/s; 15554637.200op/s] or [-0.021%; +0.021%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [57.533µs; 57.562µs] or [-0.025%; +0.025%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [17372782.712op/s; 17381398.640op/s] or [-0.025%; +0.025%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.912µs; 3.913µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255562162.912op/s; 255612182.315op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [54.743µs; 54.785µs] or [-0.038%; +0.038%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [18253436.732op/s; 18267248.890op/s] or [-0.038%; +0.038%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [52.191µs; 52.204µs] or [-0.012%; +0.012%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [19155643.021op/s; 19160347.511op/s] or [-0.012%; +0.012%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.050µs; 6.053µs] or [-0.023%; +0.023%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [165219784.072op/s; 165294547.572op/s] or [-0.023%; +0.023%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 5873b54 1761766543 paullgdc/trace-utils/remove_clone_on_spantext
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 496.023µs 496.861µs ± 0.389µs 496.823µs ± 0.240µs 497.112µs 497.540µs 497.920µs 497.952µs 0.23% 0.543 0.124 0.08% 0.028µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 2008226.365op/s 2012634.657op/s ± 1575.473op/s 2012789.150op/s ± 973.897op/s 2013663.434op/s 2014954.027op/s 2015581.272op/s 2016035.773op/s 0.16% -0.539 0.118 0.08% 111.403op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 372.601µs 373.409µs ± 0.280µs 373.407µs ± 0.180µs 373.578µs 373.831µs 374.150µs 374.413µs 0.27% 0.330 0.724 0.07% 0.020µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2670845.262op/s 2678030.254op/s ± 2005.735op/s 2678046.267op/s ± 1289.079op/s 2679466.517op/s 2681168.368op/s 2682263.321op/s 2683834.182op/s 0.22% -0.324 0.717 0.07% 141.827op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 168.497µs 168.852µs ± 0.282µs 168.813µs ± 0.106µs 168.926µs 169.164µs 169.467µs 171.178µs 1.40% 5.512 41.562 0.17% 0.020µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5841865.854op/s 5922376.093op/s ± 9790.401op/s 5923711.958op/s ± 3727.282op/s 5927104.608op/s 5930501.760op/s 5933503.205op/s 5934836.052op/s 0.19% -5.446 40.840 0.16% 692.286op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 36.176µs 36.369µs ± 0.082µs 36.363µs ± 0.050µs 36.413µs 36.495µs 36.595µs 36.736µs 1.03% 0.615 1.630 0.23% 0.006µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 27221014.623op/s 27496255.798op/s ± 62021.371op/s 27500465.694op/s ± 37480.351op/s 27537206.318op/s 27587310.894op/s 27625226.582op/s 27642478.685op/s 0.52% -0.594 1.566 0.22% 4385.573op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 46.191µs 46.293µs ± 0.109µs 46.279µs ± 0.034µs 46.319µs 46.372µs 46.430µs 47.668µs 3.00% 9.990 122.705 0.24% 0.008µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 20978375.491op/s 21601494.159op/s ± 49918.455op/s 21608010.524op/s ± 16092.830op/s 21622451.457op/s 21634942.250op/s 21645823.446op/s 21649400.468op/s 0.19% -9.814 119.741 0.23% 3529.768op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... execution_time [496.808µs; 496.915µs] or [-0.011%; +0.011%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [2012416.312op/s; 2012853.003op/s] or [-0.011%; +0.011%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [373.370µs; 373.448µs] or [-0.010%; +0.010%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2677752.278op/s; 2678308.229op/s] or [-0.010%; +0.010%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [168.813µs; 168.891µs] or [-0.023%; +0.023%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5921019.238op/s; 5923732.949op/s] or [-0.023%; +0.023%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [36.357µs; 36.380µs] or [-0.031%; +0.031%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [27487660.233op/s; 27504851.364op/s] or [-0.031%; +0.031%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [46.278µs; 46.309µs] or [-0.033%; +0.033%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21594575.942op/s; 21608412.377op/s] or [-0.032%; +0.032%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 5873b54 1761766543 paullgdc/trace-utils/remove_clone_on_spantext
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.108µs 34.688µs ± 0.977µs 34.251µs ± 0.092µs 34.392µs 36.748µs 36.809µs 38.228µs 11.61% 1.724 1.229 2.81% 0.069µ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.553µs; 34.824µs] or [-0.390%; +0.390%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 5873b54 1761766543 paullgdc/trace-utils/remove_clone_on_spantext
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.306µs 2.364µs ± 0.015µs 2.366µs ± 0.005µs 2.370µs 2.382µs 2.385µs 2.391µs 1.05% -1.983 4.816 0.63% 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.362µs; 2.366µs] or [-0.087%; +0.087%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 5873b54 1761766543 paullgdc/trace-utils/remove_clone_on_spantext
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 122.039µs 123.211µs ± 1.230µs 122.957µs ± 0.339µs 123.329µs 124.949µs 127.794µs 134.227µs 9.17% 5.242 37.613 1.00% 0.087µ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 [123.040µs; 123.381µs] or [-0.138%; +0.138%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 5873b54 1761766543 paullgdc/trace-utils/remove_clone_on_spantext
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.626ms 10.651ms ± 0.011ms 10.650ms ± 0.007ms 10.659ms 10.669ms 10.679ms 10.685ms 0.33% 0.482 0.039 0.10% 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.650ms; 10.653ms] or [-0.014%; +0.014%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 5873b54 1761766543 paullgdc/trace-utils/remove_clone_on_spantext
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 89.470µs 89.797µs ± 0.247µs 89.769µs ± 0.045µs 89.824µs 89.917µs 90.152µs 93.041µs 3.64% 11.420 146.663 0.27% 0.017µ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 [89.763µs; 89.831µs] or [-0.038%; +0.038%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 5873b54 1761766543 paullgdc/trace-utils/remove_clone_on_spantext
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.145ms 6.394ms ± 0.060ms 6.406ms ± 0.021ms 6.426ms 6.453ms 6.479ms 6.571ms 2.58% -1.995 5.289 0.94% 0.004ms 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.385ms; 6.402ms] or [-0.130%; +0.130%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 5873b54 1761766543 paullgdc/trace-utils/remove_clone_on_spantext
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
ip_address/quantize_peer_ip_address_benchmark execution_time 5.011µs 5.067µs ± 0.028µs 5.066µs ± 0.027µs 5.092µs 5.108µs 5.114µs 5.118µs 1.03% 0.022 -1.223 0.56% 0.002µ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.063µs; 5.071µs] or [-0.078%; +0.078%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 5873b54 1761766543 paullgdc/trace-utils/remove_clone_on_spantext
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 171.347ns 175.423ns ± 3.016ns 175.188ns ± 2.195ns 177.188ns 179.709ns 184.559ns 192.639ns 9.96% 1.450 4.921 1.71% 0.213ns 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 [175.005ns; 175.841ns] or [-0.238%; +0.238%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 5873b54 1761766543 paullgdc/trace-utils/remove_clone_on_spantext
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.845ms 62.561ms ± 2.466ms 62.250ms ± 0.072ms 62.320ms 62.502ms 81.122ms 84.174ms 35.22% 7.982 62.272 3.93% 0.174ms 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 [62.220ms; 62.903ms] or [-0.546%; +0.546%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 5873b54 1761766543 paullgdc/trace-utils/remove_clone_on_spantext
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 13.889ms 13.929ms ± 0.024ms 13.926ms ± 0.010ms 13.936ms 13.955ms 14.030ms 14.104ms 1.28% 3.235 16.374 0.17% 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 [13.926ms; 13.933ms] or [-0.024%; +0.024%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 5873b54 1761766543 paullgdc/trace-utils/remove_clone_on_spantext
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.564µs 186.024µs ± 0.302µs 185.975µs ± 0.172µs 186.164µs 186.457µs 186.992µs 188.022µs 1.10% 2.422 11.547 0.16% 0.021µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 5318513.826op/s 5375666.170op/s ± 8700.393op/s 5377055.968op/s ± 4988.818op/s 5381951.371op/s 5385828.284op/s 5387155.231op/s 5388975.584op/s 0.22% -2.385 11.251 0.16% 615.211op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 17.766µs 17.846µs ± 0.052µs 17.836µs ± 0.015µs 17.857µs 17.909µs 17.959µs 18.399µs 3.16% 6.406 64.450 0.29% 0.004µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 54349861.476op/s 56036550.231op/s ± 159305.525op/s 56066673.169op/s ± 47813.588op/s 56100856.150op/s 56192925.522op/s 56278913.528op/s 56288355.311op/s 0.40% -6.190 61.307 0.28% 11264.602op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.532µs 10.573µs ± 0.020µs 10.569µs ± 0.013µs 10.586µs 10.610µs 10.624µs 10.668µs 0.93% 0.963 1.663 0.19% 0.001µs 1 200
normalization/normalize_name/normalize_name/good throughput 93742077.197op/s 94583313.633op/s ± 181728.788op/s 94612160.029op/s ± 112775.886op/s 94716029.506op/s 94817917.096op/s 94859223.118op/s 94952347.589op/s 0.36% -0.948 1.597 0.19% 12850.166op/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.982µs; 186.066µs] or [-0.023%; +0.023%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [5374460.379op/s; 5376871.961op/s] or [-0.022%; +0.022%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [17.838µs; 17.853µs] or [-0.040%; +0.040%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [56014472.018op/s; 56058628.445op/s] or [-0.039%; +0.039%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.570µs; 10.576µs] or [-0.027%; +0.027%] None None None
normalization/normalize_name/normalize_name/good throughput [94558127.771op/s; 94608499.495op/s] or [-0.027%; +0.027%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 5873b54 1761766543 paullgdc/trace-utils/remove_clone_on_spantext
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 239.310ns 252.063ns ± 13.837ns 246.426ns ± 4.761ns 259.272ns 283.075ns 290.142ns 290.491ns 17.88% 1.405 0.840 5.48% 0.978ns 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 [250.145ns; 253.981ns] or [-0.761%; +0.761%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 5873b54 1761766543 paullgdc/trace-utils/remove_clone_on_spantext
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.775µs 25.866µs ± 10.039µs 18.069µs ± 0.173µs 35.381µs 43.804µs 48.316µs 70.140µs 288.18% 0.963 0.528 38.71% 0.710µ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.475µs; 27.257µs] or [-5.379%; +5.379%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 5873b54 1761766543 paullgdc/trace-utils/remove_clone_on_spantext
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.171µs 3.228µs ± 1.460µs 2.992µs ± 0.031µs 3.028µs 3.654µs 13.925µs 15.359µs 413.38% 7.359 55.482 45.11% 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.025µs; 3.430µs] or [-6.267%; +6.267%] None None None

Baseline

Omitted due to size.

@codecov-commenter
Copy link

codecov-commenter commented Oct 16, 2025

Codecov Report

❌ Patch coverage is 95.60440% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.94%. Comparing base (c365938) to head (5873b54).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1266      +/-   ##
==========================================
+ Coverage   71.91%   71.94%   +0.02%     
==========================================
  Files         368      368              
  Lines       58146    58111      -35     
==========================================
- Hits        41814    41806       -8     
+ Misses      16332    16305      -27     
Components Coverage Δ
datadog-crashtracker 50.65% <ø> (-0.03%) ⬇️
datadog-crashtracker-ffi 5.86% <ø> (ø)
datadog-alloc 98.73% <ø> (ø)
data-pipeline 88.16% <ø> (+0.29%) ⬆️
data-pipeline-ffi 88.19% <ø> (ø)
ddcommon 84.30% <80.00%> (-0.02%) ⬇️
ddcommon-ffi 73.90% <80.00%> (+0.05%) ⬆️
ddtelemetry 60.02% <ø> (+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 36.51% <0.00%> (-0.74%) ⬇️
datdog-sidecar-ffi 10.11% <0.00%> (-3.60%) ⬇️
spawn-worker 55.18% <ø> (ø)
tinybytes 92.44% <ø> (ø)
datadog-trace-normalization 98.24% <ø> (ø)
datadog-trace-obfuscation 94.17% <ø> (ø)
datadog-trace-protobuf 59.65% <ø> (ø)
datadog-trace-utils 90.19% <100.00%> (+0.19%) ⬆️
datadog-tracer-flare 62.42% <ø> (+1.38%) ⬆️
datadog-log 75.57% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@dd-octo-sts
Copy link

dd-octo-sts bot commented Oct 16, 2025

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 71.36 MB 71.38 MB +.03% (+22.58 KB) 🔍
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 7.25 MB 7.25 MB 0% (0 B) 👌
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 9.20 MB 9.20 MB +0% (+72 B) 👌
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 83.70 MB 83.73 MB +.03% (+33.15 KB) 🔍
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 18.55 MB 18.58 MB +.16% (+31.00 KB) 🔍
/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 129.26 MB 129.36 MB +.07% (+96.00 KB) 🔍
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 678.14 MB 679.19 MB +.15% (+1.04 MB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 5.93 MB 5.94 MB +.09% (+6.00 KB) 🔍
/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.51 MB 17.52 MB +.04% (+8.00 KB) 🔍
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 32.46 MB 32.48 MB +.06% (+22.28 KB) 🔍
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 15.81 MB 15.84 MB +.16% (+26.00 KB) 🔍
/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 131.44 MB 131.57 MB +.09% (+128.00 KB) 🔍
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 666.67 MB 667.47 MB +.11% (+817.58 KB) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 4.55 MB 4.55 MB +.06% (+3.00 KB) 🔍
/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.66 MB 18.67 MB +.08% (+16.00 KB) 🔍
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 30.52 MB 30.53 MB +.03% (+12.03 KB) 🔍
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 63.96 MB 63.98 MB +.03% (+25.93 KB) 🔍
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 8.56 MB 8.56 MB --.04% (-4.00 KB) 💪
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 78.42 MB 78.47 MB +.06% (+48.53 KB) 🔍
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 9.91 MB 9.91 MB +.03% (+4.03 KB) 🔍

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.

4 participants