Skip to content

Conversation

@anais-raison
Copy link
Contributor

What does this PR do?

Use &[u8] in the msgpack decoder instead of Bytes and produce a SpanSlice which contains &str instead of BytesString. This allows to parse non-owned buffer containing traces. It also provides a from_bytes wrapper which uses the same parsing logic but convert the &str to BytesString based on the given Bytes buffer.

Motivation

The trace exporter needs to support reading traces from borrowed buffer.

Additional Notes

This PR also refactors the string, map and number decoding logic to be moved to separate modules.

How to test the change?

Describe here in detail how the change can be validated.

@pr-commenter
Copy link

pr-commenter bot commented Apr 4, 2025

Benchmarks

Comparison

Benchmark execution time: 2025-04-10 13:55:57

Comparing candidate commit 27e9dd0 in PR branch anais/decode-with-ref with baseline commit 23f7c4e in branch main.

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

scenario:benching deserializing traces from msgpack to their internal representation

  • 🟥 execution_time [+20.006ms; +20.092ms] or [+36.951%; +37.111%]

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 27e9dd0 1744292659 anais/decode-with-ref
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 245.010ns 253.141ns ± 11.276ns 247.914ns ± 2.048ns 253.260ns 280.180ns 287.816ns 292.538ns 18.00% 1.764 1.922 4.44% 0.797ns 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 [251.578ns; 254.704ns] or [-0.617%; +0.617%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 27e9dd0 1744292659 anais/decode-with-ref
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.187µs 3.180µs ± 1.421µs 2.988µs ± 0.029µs 3.013µs 3.611µs 13.922µs 14.925µs 399.51% 7.397 55.670 44.56% 0.100µ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.983µs; 3.377µs] or [-6.192%; +6.192%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 27e9dd0 1744292659 anais/decode-with-ref
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.927µs 209.242µs ± 0.131µs 209.234µs ± 0.095µs 209.338µs 209.447µs 209.568µs 209.628µs 0.19% 0.194 -0.204 0.06% 0.009µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 4770362.059op/s 4779156.234op/s ± 2996.465op/s 4779346.532op/s ± 2177.976op/s 4781381.778op/s 4783854.873op/s 4785486.425op/s 4786355.695op/s 0.15% -0.191 -0.207 0.06% 211.882op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 18.638µs 18.729µs ± 0.062µs 18.723µs ± 0.022µs 18.745µs 18.793µs 18.814µs 19.448µs 3.87% 7.964 89.976 0.33% 0.004µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 51417981.565op/s 53393450.943op/s ± 171779.153op/s 53409337.554op/s ± 63290.465op/s 53475833.180op/s 53544596.716op/s 53580294.502op/s 53655020.950op/s 0.46% -7.685 85.669 0.32% 12146.620op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.932µs 10.983µs ± 0.023µs 10.979µs ± 0.016µs 11.000µs 11.020µs 11.036µs 11.052µs 0.66% 0.159 -0.096 0.21% 0.002µs 1 200
normalization/normalize_name/normalize_name/good throughput 90485422.728op/s 91053555.027op/s ± 189034.812op/s 91078925.186op/s ± 134075.304op/s 91188069.208op/s 91393619.064op/s 91457043.639op/s 91472559.296op/s 0.43% -0.148 -0.104 0.21% 13366.780op/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.224µs; 209.260µs] or [-0.009%; +0.009%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [4778740.952op/s; 4779571.515op/s] or [-0.009%; +0.009%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.721µs; 18.738µs] or [-0.046%; +0.046%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [53369644.004op/s; 53417257.881op/s] or [-0.045%; +0.045%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.979µs; 10.986µs] or [-0.029%; +0.029%] None None None
normalization/normalize_name/normalize_name/good throughput [91027356.620op/s; 91079753.434op/s] or [-0.029%; +0.029%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 27e9dd0 1744292659 anais/decode-with-ref
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 147.280µs 147.964µs ± 0.380µs 147.911µs ± 0.150µs 148.105µs 148.438µs 149.124µs 151.084µs 2.15% 3.838 26.156 0.26% 0.027µ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 [147.912µs; 148.017µs] or [-0.036%; +0.036%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 27e9dd0 1744292659 anais/decode-with-ref
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 504.209µs 505.189µs ± 0.597µs 505.154µs ± 0.270µs 505.407µs 505.970µs 506.551µs 510.893µs 1.14% 4.482 40.089 0.12% 0.042µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1957357.020op/s 1979458.931op/s ± 2327.767op/s 1979592.600op/s ± 1059.401op/s 1980676.356op/s 1982404.104op/s 1983139.788op/s 1983304.105op/s 0.19% -4.405 39.131 0.12% 164.598op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 454.197µs 455.188µs ± 0.443µs 455.153µs ± 0.309µs 455.492µs 455.964µs 456.177µs 456.438µs 0.28% 0.179 -0.349 0.10% 0.031µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2190879.980op/s 2196898.675op/s ± 2139.976op/s 2197065.215op/s ± 1490.773op/s 2198365.620op/s 2200415.203op/s 2200882.633op/s 2201687.329op/s 0.21% -0.175 -0.352 0.10% 151.319op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 176.875µs 177.446µs ± 0.163µs 177.459µs ± 0.089µs 177.530µs 177.700µs 177.875µs 178.041µs 0.33% -0.024 1.299 0.09% 0.012µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5616682.259op/s 5635526.782op/s ± 5184.408op/s 5635120.324op/s ± 2815.710op/s 5638353.788op/s 5645025.422op/s 5647365.366op/s 5653696.214op/s 0.33% 0.033 1.295 0.09% 366.593op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 37.644µs 37.716µs ± 0.039µs 37.715µs ± 0.024µs 37.738µs 37.777µs 37.843µs 37.895µs 0.48% 0.959 2.542 0.10% 0.003µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 26388831.531op/s 26513624.336op/s ± 27629.338op/s 26514931.352op/s ± 16715.490op/s 26532004.006op/s 26553925.600op/s 26562680.665op/s 26564861.712op/s 0.19% -0.948 2.496 0.10% 1953.689op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 48.229µs 48.335µs ± 0.120µs 48.326µs ± 0.027µs 48.351µs 48.396µs 48.469µs 49.921µs 3.30% 11.540 149.529 0.25% 0.009µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 20031754.884op/s 20689268.190op/s ± 50083.038op/s 20692896.952op/s ± 11443.537op/s 20704468.360op/s 20720995.272op/s 20732001.211op/s 20734290.771op/s 0.20% -11.402 147.106 0.24% 3541.406op/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 [505.106µs; 505.272µs] or [-0.016%; +0.016%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1979136.325op/s; 1979781.537op/s] or [-0.016%; +0.016%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [455.126µs; 455.249µs] or [-0.014%; +0.014%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2196602.095op/s; 2197195.255op/s] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [177.423µs; 177.468µs] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5634808.273op/s; 5636245.291op/s] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [37.711µs; 37.722µs] or [-0.014%; +0.014%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [26509795.176op/s; 26517453.497op/s] or [-0.014%; +0.014%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [48.318µs; 48.351µs] or [-0.035%; +0.035%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [20682327.163op/s; 20696209.218op/s] or [-0.034%; +0.034%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 27e9dd0 1744292659 anais/decode-with-ref
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.189µs 68.443µs ± 0.227µs 68.401µs ± 0.068µs 68.495µs 68.661µs 69.011µs 70.713µs 3.38% 6.347 55.456 0.33% 0.016µ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 [68.412µs; 68.475µs] or [-0.046%; +0.046%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 27e9dd0 1744292659 anais/decode-with-ref
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.914µs ± 0.003µs 3.914µs ± 0.001µs 3.915µs 3.919µs 3.922µs 3.922µs 0.22% -1.518 11.860 0.08% 0.000µs 1 200
credit_card/is_card_number/ throughput 254941447.218op/s 255499525.661op/s ± 209735.490op/s 255500135.022op/s ± 91920.489op/s 255593698.639op/s 255833772.922op/s 255928954.043op/s 256989780.309op/s 0.58% 1.546 12.072 0.08% 14830.539op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 76.814µs 77.528µs ± 0.398µs 77.510µs ± 0.270µs 77.748µs 78.305µs 78.553µs 78.775µs 1.63% 0.618 0.210 0.51% 0.028µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12694392.729op/s 12898948.607op/s ± 65962.903op/s 12901563.036op/s ± 45016.830op/s 12947133.392op/s 12991880.463op/s 13001370.845op/s 13018483.825op/s 0.91% -0.590 0.152 0.51% 4664.282op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 70.784µs 71.366µs ± 0.287µs 71.319µs ± 0.202µs 71.566µs 71.882µs 72.114µs 72.339µs 1.43% 0.569 0.025 0.40% 0.020µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13823741.763op/s 14012574.061op/s ± 56209.807op/s 14021533.619op/s ± 39795.628op/s 14056951.395op/s 14088700.983op/s 14120433.505op/s 14127569.124op/s 0.76% -0.548 -0.013 0.40% 3974.634op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.897µs 3.914µs ± 0.003µs 3.913µs ± 0.001µs 3.915µs 3.918µs 3.921µs 3.923µs 0.23% -0.702 11.401 0.06% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 254939375.596op/s 255515826.096op/s ± 163959.525op/s 255527583.484op/s ± 80199.773op/s 255609355.318op/s 255684278.654op/s 255767568.791op/s 256634313.273op/s 0.43% 0.727 11.542 0.06% 11593.689op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 67.139µs 67.860µs ± 0.385µs 67.838µs ± 0.278µs 68.115µs 68.541µs 68.815µs 69.083µs 1.84% 0.453 -0.135 0.57% 0.027µs 1 200
credit_card/is_card_number/378282246310005 throughput 14475270.467op/s 14736639.047op/s ± 83384.545op/s 14740988.252op/s ± 60228.297op/s 14800210.977op/s 14857867.761op/s 14888979.750op/s 14894405.209op/s 1.04% -0.425 -0.177 0.56% 5896.178op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 51.749µs 51.840µs ± 0.028µs 51.837µs ± 0.017µs 51.859µs 51.887µs 51.910µs 51.913µs 0.15% 0.004 0.596 0.05% 0.002µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 19262959.256op/s 19290194.561op/s ± 10508.546op/s 19291093.302op/s ± 6167.437op/s 19296735.477op/s 19306949.537op/s 19314996.811op/s 19324029.431op/s 0.17% 0.001 0.599 0.05% 743.066op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.029µs 6.045µs ± 0.016µs 6.038µs ± 0.003µs 6.043µs 6.077µs 6.103µs 6.110µs 1.18% 1.994 3.585 0.26% 0.001µs 1 200
credit_card/is_card_number/x371413321323331 throughput 163676749.095op/s 165439869.166op/s ± 428978.955op/s 165611634.219op/s ± 86765.776op/s 165664489.056op/s 165791021.941op/s 165870019.806op/s 165877230.616op/s 0.16% -1.982 3.514 0.26% 30333.393op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.896µs 3.913µs ± 0.003µs 3.913µs ± 0.001µs 3.914µs 3.917µs 3.918µs 3.919µs 0.17% -1.260 9.270 0.06% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 255148692.992op/s 255580456.683op/s ± 164242.702op/s 255571133.250op/s ± 71801.981op/s 255662388.015op/s 255834729.645op/s 255962795.026op/s 256675908.405op/s 0.43% 1.279 9.392 0.06% 11613.713op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 65.955µs 66.256µs ± 0.187µs 66.223µs ± 0.083µs 66.310µs 66.608µs 67.058µs 67.219µs 1.50% 2.256 7.142 0.28% 0.013µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 14876784.266op/s 15093011.695op/s ± 42391.940op/s 15100419.039op/s ± 19032.141op/s 15118118.310op/s 15141068.412op/s 15153310.787op/s 15161797.972op/s 0.41% -2.222 6.961 0.28% 2997.563op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 59.514µs 59.645µs ± 0.058µs 59.643µs ± 0.038µs 59.681µs 59.742µs 59.784µs 59.849µs 0.34% 0.288 0.118 0.10% 0.004µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 16708800.028op/s 16765986.282op/s ± 16333.229op/s 16766396.788op/s ± 10804.346op/s 16777476.256op/s 16791343.811op/s 16800036.624op/s 16802858.166op/s 0.22% -0.282 0.109 0.10% 1154.934op/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.001µs 3.915µs 3.917µs 3.918µs 3.919µs 0.14% -2.407 16.084 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 255176509.066op/s 255543668.819op/s ± 170416.487op/s 255538057.575op/s ± 74173.473op/s 255599578.273op/s 255791159.741op/s 255968547.623op/s 256848308.464op/s 0.51% 2.432 16.308 0.07% 12050.265op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 56.196µs 56.400µs ± 0.081µs 56.393µs ± 0.055µs 56.450µs 56.541µs 56.594µs 56.653µs 0.46% 0.292 -0.012 0.14% 0.006µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 17651401.675op/s 17730600.254op/s ± 25581.642op/s 17732563.069op/s ± 17351.169op/s 17748190.371op/s 17770487.219op/s 17780574.752op/s 17794716.749op/s 0.35% -0.284 -0.019 0.14% 1808.895op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 51.735µs 51.834µs ± 0.037µs 51.832µs ± 0.021µs 51.853µs 51.898µs 51.935µs 51.964µs 0.25% 0.320 0.486 0.07% 0.003µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 19244226.383op/s 19292541.400op/s ± 13937.690op/s 19293282.079op/s ± 7815.606op/s 19300610.382op/s 19315092.524op/s 19321059.085op/s 19329309.031op/s 0.19% -0.315 0.480 0.07% 985.544op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.027µs 6.046µs ± 0.017µs 6.039µs ± 0.003µs 6.044µs 6.079µs 6.110µs 6.113µs 1.23% 1.935 3.200 0.28% 0.001µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 163573884.792op/s 165407167.309op/s ± 461226.640op/s 165593527.224op/s ± 76317.526op/s 165649498.673op/s 165802855.497op/s 165890847.140op/s 165926148.126op/s 0.20% -1.923 3.134 0.28% 32613.649op/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.913µs; 3.914µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/ throughput [255470458.339op/s; 255528592.983op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [77.473µs; 77.583µs] or [-0.071%; +0.071%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12889806.783op/s; 12908090.431op/s] or [-0.071%; +0.071%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [71.326µs; 71.405µs] or [-0.056%; +0.056%] None None None
credit_card/is_card_number/ 378282246310005 throughput [14004783.922op/s; 14020364.199op/s] or [-0.056%; +0.056%] None None None
credit_card/is_card_number/37828224631 execution_time [3.913µs; 3.914µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/37828224631 throughput [255493102.883op/s; 255538549.310op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/378282246310005 execution_time [67.807µs; 67.914µs] or [-0.079%; +0.079%] None None None
credit_card/is_card_number/378282246310005 throughput [14725082.751op/s; 14748195.343op/s] or [-0.078%; +0.078%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [51.836µs; 51.844µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [19288738.178op/s; 19291650.945op/s] or [-0.008%; +0.008%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.042µs; 6.047µs] or [-0.036%; +0.036%] None None None
credit_card/is_card_number/x371413321323331 throughput [165380416.808op/s; 165499321.523op/s] or [-0.036%; +0.036%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.912µs; 3.913µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ throughput [255557694.224op/s; 255603219.141op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [66.230µs; 66.282µs] or [-0.039%; +0.039%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15087136.580op/s; 15098886.810op/s] or [-0.039%; +0.039%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [59.637µs; 59.653µs] or [-0.014%; +0.014%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [16763722.653op/s; 16768249.910op/s] or [-0.014%; +0.014%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.913µs; 3.914µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255520050.733op/s; 255567286.906op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [56.389µs; 56.411µs] or [-0.020%; +0.020%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [17727054.884op/s; 17734145.623op/s] or [-0.020%; +0.020%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [51.828µs; 51.839µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [19290609.770op/s; 19294473.030op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.043µs; 6.048µs] or [-0.039%; +0.039%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [165343245.733op/s; 165471088.886op/s] or [-0.039%; +0.039%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 27e9dd0 1744292659 anais/decode-with-ref
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 73.842ms 74.190ms ± 0.221ms 74.134ms ± 0.113ms 74.278ms 74.617ms 75.034ms 75.091ms 1.29% 1.453 2.493 0.30% 0.016ms 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 [74.159ms; 74.221ms] or [-0.041%; +0.041%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 27e9dd0 1744292659 anais/decode-with-ref
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.350µs 2.416µs ± 0.018µs 2.418µs ± 0.008µs 2.425µs 2.439µs 2.444µs 2.447µs 1.17% -1.647 3.561 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.413µs; 2.418µs] or [-0.103%; +0.103%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 27e9dd0 1744292659 anais/decode-with-ref
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.639µs 25.184µs ± 10.123µs 17.843µs ± 0.128µs 33.810µs 42.252µs 43.702µs 83.862µs 370.00% 1.632 4.945 40.10% 0.716µ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.781µs; 26.587µs] or [-5.571%; +5.571%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 27e9dd0 1744292659 anais/decode-with-ref
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 30.810µs 31.946µs ± 1.560µs 30.995µs ± 0.092µs 33.602µs 34.866µs 34.999µs 35.392µs 14.19% 1.008 -0.834 4.87% 0.110µ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 [31.729µs; 32.162µs] or [-0.677%; +0.677%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 27e9dd0 1744292659 anais/decode-with-ref
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.921µs 5.013µs ± 0.047µs 5.039µs ± 0.022µs 5.052µs 5.063µs 5.065µs 5.067µs 0.55% -0.545 -1.431 0.94% 0.003µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
ip_address/quantize_peer_ip_address_benchmark execution_time [5.007µs; 5.020µs] or [-0.130%; +0.130%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 27e9dd0 1744292659 anais/decode-with-ref
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.994ms 6.014ms ± 0.013ms 6.013ms ± 0.004ms 6.017ms 6.026ms 6.057ms 6.150ms 2.28% 6.479 63.476 0.21% 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 [6.012ms; 6.016ms] or [-0.029%; +0.029%] None None None

Baseline

Omitted due to size.

@codecov-commenter
Copy link

codecov-commenter commented Apr 4, 2025

Codecov Report

Attention: Patch coverage is 97.66355% with 10 lines in your changes missing coverage. Please review.

Project coverage is 71.58%. Comparing base (23f7c4e) to head (27e9dd0).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1004      +/-   ##
==========================================
+ Coverage   71.52%   71.58%   +0.06%     
==========================================
  Files         337      337              
  Lines       50583    50707     +124     
==========================================
+ Hits        36178    36299     +121     
- Misses      14405    14408       +3     
Components Coverage Δ
crashtracker 42.69% <ø> (ø)
crashtracker-ffi 6.30% <ø> (ø)
datadog-alloc 98.73% <ø> (ø)
data-pipeline 90.93% <100.00%> (ø)
data-pipeline-ffi 90.35% <ø> (ø)
ddcommon 79.98% <ø> (ø)
ddcommon-ffi 66.37% <ø> (ø)
ddtelemetry 60.29% <ø> (ø)
ddtelemetry-ffi 21.43% <ø> (ø)
dogstatsd-client 82.57% <ø> (ø)
ipc 82.42% <ø> (ø)
profiling 77.58% <ø> (ø)
profiling-ffi 62.28% <ø> (ø)
serverless 0.00% <ø> (ø)
sidecar 41.65% <ø> (ø)
sidecar-ffi 6.02% <ø> (ø)
spawn-worker 54.37% <ø> (ø)
tinybytes 89.86% <100.00%> (-1.74%) ⬇️
trace-mini-agent 73.82% <ø> (ø)
trace-normalization 98.24% <ø> (ø)
trace-obfuscation 96.00% <ø> (ø)
trace-protobuf 78.50% <ø> (ø)
trace-utils 92.69% <97.60%> (+0.09%) ⬆️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@r1viollet
Copy link
Contributor

r1viollet commented Apr 4, 2025

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so.debug 23.99 MB 24.22 MB +.99% (+243.45 KB) 🔍
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 7.78 MB 7.78 MB +.05% (+4.71 KB) 🔍
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 77.61 MB 78.07 MB +.59% (+471.82 KB) 🔍
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 71.92 MB 72.41 MB +.67% (+498.39 KB) 🔍
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 7.71 MB 7.72 MB +.06% (+5.10 KB) 🔍
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so.debug 22.58 MB 22.82 MB +1.07% (+247.53 KB) ⚠️
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 16.89 MB 17.01 MB +.71% (+123.50 KB) 🔍
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 61.83 KB 61.83 KB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 113.06 MB 114.23 MB +1.02% (+1.16 MB) ⚠️
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 631.14 MB 633.90 MB +.43% (+2.76 MB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 5.05 MB 5.06 MB +.31% (+16.50 KB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 61.83 KB 61.83 KB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 16.05 MB 16.15 MB +.58% (+96.00 KB) 🔍
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 26.71 MB 26.84 MB +.47% (+131.11 KB) 🔍
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 14.29 MB 14.40 MB +.72% (+105.50 KB) 🔍
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 62.78 KB 62.78 KB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 115.04 MB 116.22 MB +1.02% (+1.17 MB) ⚠️
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 623.12 MB 625.85 MB +.43% (+2.73 MB) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 3.82 MB 3.83 MB +.31% (+12.50 KB) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 62.78 KB 62.78 KB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 16.68 MB 16.77 MB +.56% (+96.00 KB) 🔍
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 24.61 MB 24.74 MB +.50% (+126.25 KB) 🔍
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 66.88 MB 67.29 MB +.61% (+420.03 KB) 🔍
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 8.24 MB 8.27 MB +.32% (+27.61 KB) 🔍
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so.debug 23.13 MB 23.35 MB +.95% (+226.36 KB) 🔍
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 67.82 MB 68.23 MB +.60% (+420.02 KB) 🔍
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 8.12 MB 8.15 MB +.33% (+27.86 KB) 🔍
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so.debug 20.77 MB 20.99 MB +1.05% (+224.12 KB) ⚠️

@anais-raison anais-raison changed the title Support borrowed buffer for msgpack decoding [APMSP-1764] Support borrowed buffer for msgpack decoding Apr 7, 2025
@anais-raison anais-raison marked this pull request as ready for review April 8, 2025 09:52
@anais-raison anais-raison requested review from a team as code owners April 8, 2025 09:52
@anais-raison anais-raison force-pushed the anais/decode-with-ref branch from 34ee871 to d3b7324 Compare April 9, 2025 09:11
Copy link
Contributor

@VianneyRuhlmann VianneyRuhlmann left a comment

Choose a reason for hiding this comment

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

A few nits but overall nice work.

@anais-raison anais-raison force-pushed the anais/decode-with-ref branch from 1f54961 to 27e9dd0 Compare April 10, 2025 13:44
@anais-raison anais-raison merged commit 75ee41e into main Apr 10, 2025
35 checks passed
@anais-raison anais-raison deleted the anais/decode-with-ref branch April 10, 2025 14:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants