Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Crashtracking for Windows #892

Draft
wants to merge 14 commits into
base: main
Choose a base branch
from
Draft

Conversation

kevingosse
Copy link
Contributor

What does this PR do?

A brief description of the change being made with this pull request.

Motivation

What inspired you to submit this pull request?

Additional Notes

Anything else we should know when reviewing?

How to test the change?

Describe here in detail how the change can be validated.

@pr-commenter
Copy link

pr-commenter bot commented Feb 20, 2025

Benchmarks

Comparison

Benchmark execution time: 2025-02-21 10:18:46

Comparing candidate commit af91be6 in PR branch kevin/crashtracking_windows with baseline commit 1f16a44 in branch main.

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

scenario:credit_card/is_card_number/378282246310005

  • 🟩 execution_time [-9.566µs; -9.301µs] or [-11.154%; -10.845%]
  • 🟩 throughput [+1421239.511op/s; +1459381.697op/s] or [+12.188%; +12.515%]

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 af91be6 1740132442 kevin/crashtracking_windows
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 18.112µs 26.654µs ± 11.013µs 18.818µs ± 0.653µs 35.651µs 45.053µs 55.568µs 98.502µs 423.45% 2.065 8.631 41.22% 0.779µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [25.128µs; 28.180µs] or [-5.727%; +5.727%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz af91be6 1740132442 kevin/crashtracking_windows
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.035µs 5.101µs ± 0.039µs 5.098µs ± 0.038µs 5.126µs 5.158µs 5.161µs 5.161µs 1.24% -0.005 -1.324 0.76% 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.096µs; 5.107µs] or [-0.106%; +0.106%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz af91be6 1740132442 kevin/crashtracking_windows
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.849µs 209.152µs ± 0.128µs 209.137µs ± 0.080µs 209.225µs 209.353µs 209.478µs 209.737µs 0.29% 0.695 1.702 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 4767885.431op/s 4781217.178op/s ± 2931.415op/s 4781548.324op/s ± 1828.415op/s 4783203.304op/s 4785399.014op/s 4787152.502op/s 4788149.649op/s 0.14% -0.689 1.682 0.06% 207.282op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 18.253µs 18.331µs ± 0.057µs 18.336µs ± 0.043µs 18.372µs 18.414µs 18.439µs 18.598µs 1.43% 0.436 0.702 0.31% 0.004µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 53769198.202op/s 54552326.321op/s ± 170722.606op/s 54537446.833op/s ± 128824.778op/s 54711467.696op/s 54775099.886op/s 54783499.019op/s 54784404.952op/s 0.45% -0.413 0.593 0.31% 12071.911op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.637µs 10.699µs ± 0.026µs 10.694µs ± 0.017µs 10.715µs 10.738µs 10.781µs 10.843µs 1.39% 1.255 4.553 0.25% 0.002µs 1 200
normalization/normalize_name/normalize_name/good throughput 92224482.904op/s 93469931.956op/s ± 229639.614op/s 93506276.817op/s ± 150251.466op/s 93626046.768op/s 93787873.807op/s 93883017.516op/s 94009701.801op/s 0.54% -1.219 4.365 0.25% 16237.973op/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.134µs; 209.170µ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 [4780810.912op/s; 4781623.444op/s] or [-0.008%; +0.008%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.323µs; 18.339µs] or [-0.043%; +0.043%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [54528665.810op/s; 54575986.833op/s] or [-0.043%; +0.043%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.695µs; 10.702µs] or [-0.034%; +0.034%] None None None
normalization/normalize_name/normalize_name/good throughput [93438106.114op/s; 93501757.797op/s] or [-0.034%; +0.034%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz af91be6 1740132442 kevin/crashtracking_windows
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 65.517µs 65.714µs ± 0.179µs 65.686µs ± 0.043µs 65.732µs 65.908µs 66.291µs 67.597µs 2.91% 6.499 60.587 0.27% 0.013µ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 [65.689µs; 65.739µs] or [-0.038%; +0.038%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz af91be6 1740132442 kevin/crashtracking_windows
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.343µs 2.406µs ± 0.017µs 2.407µs ± 0.009µs 2.415µs 2.437µs 2.448µs 2.454µs 1.93% -0.247 1.587 0.70% 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.404µs; 2.408µs] or [-0.097%; +0.097%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz af91be6 1740132442 kevin/crashtracking_windows
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 244.885ns 254.584ns ± 12.131ns 248.537ns ± 2.880ns 257.943ns 277.577ns 295.293ns 298.956ns 20.29% 1.630 1.984 4.75% 0.858ns 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 [252.903ns; 256.265ns] or [-0.660%; +0.660%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz af91be6 1740132442 kevin/crashtracking_windows
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.275µs 3.188µs ± 1.525µs 2.986µs ± 0.027µs 3.013µs 3.600µs 13.837µs 17.217µs 476.58% 7.669 60.303 47.72% 0.108µ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.977µs; 3.399µs] or [-6.630%; +6.630%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz af91be6 1740132442 kevin/crashtracking_windows
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 149.111µs 149.946µs ± 0.370µs 149.876µs ± 0.197µs 150.149µs 150.416µs 151.180µs 152.880µs 2.00% 2.904 19.280 0.25% 0.026µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching string interning on wordpress profile execution_time [149.895µs; 149.997µs] or [-0.034%; +0.034%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz af91be6 1740132442 kevin/crashtracking_windows
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
redis/obfuscate_redis_string execution_time 33.481µs 33.865µs ± 0.566µs 33.630µs ± 0.072µs 33.719µs 34.974µs 35.091µs 37.231µs 10.71% 2.212 5.812 1.67% 0.040µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
redis/obfuscate_redis_string execution_time [33.786µs; 33.943µs] or [-0.232%; +0.232%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz af91be6 1740132442 kevin/crashtracking_windows
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.940ms 5.952ms ± 0.006ms 5.951ms ± 0.003ms 5.955ms 5.961ms 5.976ms 5.988ms 0.63% 2.431 10.882 0.10% 0.000ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
concentrator/add_spans_to_concentrator execution_time [5.951ms; 5.953ms] or [-0.014%; +0.014%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz af91be6 1740132442 kevin/crashtracking_windows
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 53.648ms 53.942ms ± 0.191ms 53.890ms ± 0.122ms 54.058ms 54.260ms 54.527ms 54.674ms 1.45% 1.181 1.680 0.35% 0.013ms 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 [53.915ms; 53.968ms] or [-0.049%; +0.049%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz af91be6 1740132442 kevin/crashtracking_windows
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.570µs 505.655µs ± 0.742µs 505.641µs ± 0.268µs 505.887µs 506.197µs 507.061µs 514.477µs 1.75% 8.452 98.223 0.15% 0.052µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1943720.648op/s 1977635.402op/s ± 2866.762op/s 1977687.944op/s ± 1047.225op/s 1978835.856op/s 1980451.252op/s 1980788.183op/s 1981886.439op/s 0.21% -8.326 96.252 0.14% 202.711op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 452.598µs 453.401µs ± 0.284µs 453.381µs ± 0.178µs 453.589µs 453.878µs 454.054µs 454.115µs 0.16% 0.028 0.030 0.06% 0.020µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2202084.405op/s 2205551.723op/s ± 1379.828op/s 2205652.503op/s ± 867.679op/s 2206398.667op/s 2207694.732op/s 2209019.070op/s 2209464.284op/s 0.17% -0.024 0.032 0.06% 97.569op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 175.046µs 176.188µs ± 0.434µs 176.162µs ± 0.262µs 176.433µs 176.801µs 177.261µs 178.327µs 1.23% 0.780 2.966 0.25% 0.031µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5607686.524op/s 5675790.729op/s ± 13950.797op/s 5676590.778op/s ± 8452.858op/s 5684645.734op/s 5695997.713op/s 5704873.326op/s 5712790.436op/s 0.64% -0.749 2.838 0.25% 986.470op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 37.764µs 37.856µs ± 0.047µs 37.852µs ± 0.029µs 37.883µs 37.935µs 37.975µs 38.061µs 0.55% 0.851 1.491 0.12% 0.003µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 26273521.102op/s 26415987.853op/s ± 32465.250op/s 26419016.041op/s ± 20256.963op/s 26438274.819op/s 26461005.781op/s 26474004.624op/s 26480237.583op/s 0.23% -0.840 1.454 0.12% 2295.640op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 48.094µs 48.317µs ± 0.223µs 48.264µs ± 0.160µs 48.544µs 48.602µs 48.642µs 49.632µs 2.83% 1.167 4.058 0.46% 0.016µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 20148487.712op/s 20696995.123op/s ± 94908.217op/s 20719586.693op/s ± 69068.641op/s 20787715.054op/s 20789384.346op/s 20791999.524op/s 20792410.176op/s 0.35% -1.105 3.582 0.46% 6711.024op/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.553µs; 505.758µs] or [-0.020%; +0.020%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1977238.096op/s; 1978032.708op/s] or [-0.020%; +0.020%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [453.362µs; 453.441µs] or [-0.009%; +0.009%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2205360.492op/s; 2205742.954op/s] or [-0.009%; +0.009%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [176.128µs; 176.248µs] or [-0.034%; +0.034%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5673857.283op/s; 5677724.176op/s] or [-0.034%; +0.034%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [37.849µs; 37.862µs] or [-0.017%; +0.017%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [26411488.481op/s; 26420487.224op/s] or [-0.017%; +0.017%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [48.286µs; 48.348µs] or [-0.064%; +0.064%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [20683841.757op/s; 20710148.489op/s] or [-0.064%; +0.064%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz af91be6 1740132442 kevin/crashtracking_windows
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.897µs 3.914µs ± 0.002µs 3.914µs ± 0.001µs 3.915µs 3.917µs 3.919µs 3.924µs 0.25% -1.490 13.715 0.06% 0.000µs 1 200
credit_card/is_card_number/ throughput 254869213.504op/s 255506514.123op/s ± 153084.603op/s 255507672.303op/s ± 56766.071op/s 255564795.951op/s 255709695.835op/s 255878430.571op/s 256602056.692op/s 0.43% 1.514 13.862 0.06% 10824.716op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 81.664µs 82.759µs ± 0.588µs 82.739µs ± 0.384µs 83.089µs 83.632µs 83.746µs 87.124µs 5.30% 2.001 13.482 0.71% 0.042µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 11477917.334op/s 12083904.665op/s ± 84776.118op/s 12086221.567op/s ± 56031.635op/s 12147180.115op/s 12207716.455op/s 12226453.907op/s 12245289.202op/s 1.32% -1.772 11.435 0.70% 5994.577op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 78.575µs 79.488µs ± 0.473µs 79.430µs ± 0.242µs 79.711µs 80.068µs 80.445µs 83.698µs 5.37% 3.565 29.813 0.59% 0.033µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 11947708.923op/s 12580973.789op/s ± 73353.857op/s 12589660.442op/s ± 38467.830op/s 12620469.363op/s 12675476.255op/s 12710138.959op/s 12726709.545op/s 1.09% -3.241 26.197 0.58% 5186.901op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.892µs 3.914µs ± 0.002µs 3.914µs ± 0.001µs 3.915µs 3.916µs 3.918µs 3.920µs 0.15% -3.631 30.518 0.06% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 255129541.126op/s 255521686.567op/s ± 160954.414op/s 255520086.093op/s ± 69562.965op/s 255586402.805op/s 255719685.766op/s 255892513.187op/s 256961613.896op/s 0.56% 3.668 30.925 0.06% 11381.196op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 74.861µs 76.330µs ± 0.434µs 76.386µs ± 0.268µs 76.631µs 76.940µs 77.053µs 77.219µs 1.09% -0.668 0.407 0.57% 0.031µs 1 200
credit_card/is_card_number/378282246310005 throughput 12950216.229op/s 13101357.148op/s ± 74738.976op/s 13091394.587op/s ± 45705.517op/s 13152112.835op/s 13235765.699op/s 13298363.899op/s 13358149.807op/s 2.04% 0.702 0.477 0.57% 5284.844op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 51.362µs 51.435µs ± 0.026µs 51.434µs ± 0.013µs 51.448µs 51.475µs 51.514µs 51.546µs 0.22% 0.406 2.439 0.05% 0.002µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 19400209.204op/s 19441946.939op/s ± 9836.306op/s 19442330.161op/s ± 5069.485op/s 19447234.790op/s 19458454.177op/s 19467992.479op/s 19469804.281op/s 0.14% -0.399 2.429 0.05% 695.532op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.030µs 6.038µs ± 0.009µs 6.037µs ± 0.001µs 6.039µs 6.044µs 6.098µs 6.111µs 1.23% 6.606 47.718 0.15% 0.001µs 1 200
credit_card/is_card_number/x371413321323331 throughput 163629103.808op/s 165604987.486op/s ± 238805.702op/s 165648659.294op/s ± 37911.578op/s 165676956.947op/s 165732373.785op/s 165808024.576op/s 165842278.985op/s 0.12% -6.580 47.427 0.14% 16886.113op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.895µs 3.914µs ± 0.003µs 3.914µs ± 0.001µs 3.915µs 3.918µs 3.921µs 3.922µs 0.21% -1.716 16.404 0.06% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 254972945.036op/s 255498938.705op/s ± 165290.614op/s 255514798.607op/s ± 77561.011op/s 255571963.763op/s 255706231.918op/s 255862474.230op/s 256759964.492op/s 0.49% 1.746 16.637 0.06% 11687.811op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 65.934µs 66.432µs ± 0.307µs 66.402µs ± 0.220µs 66.627µs 66.982µs 67.197µs 67.529µs 1.70% 0.670 0.207 0.46% 0.022µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 14808548.514op/s 15053241.769op/s ± 69417.341op/s 15059777.595op/s ± 50139.044op/s 15109668.300op/s 15149065.402op/s 15163151.803op/s 15166678.787op/s 0.71% -0.646 0.149 0.46% 4908.547op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 59.472µs 59.648µs ± 0.077µs 59.639µs ± 0.051µs 59.704µs 59.786µs 59.832µs 59.879µs 0.40% 0.318 -0.048 0.13% 0.005µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 16700257.711op/s 16765066.458op/s ± 21540.781op/s 16767619.212op/s ± 14211.100op/s 16779113.780op/s 16797231.229op/s 16811785.466op/s 16814765.045op/s 0.28% -0.311 -0.053 0.13% 1523.163op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.894µs 3.914µs ± 0.003µs 3.913µs ± 0.001µs 3.914µs 3.918µs 3.922µs 3.925µs 0.30% -0.827 14.908 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 254772118.003op/s 255521019.207op/s ± 177766.977op/s 255541838.678op/s ± 61086.007op/s 255597386.518op/s 255679810.456op/s 255909279.068op/s 256796775.693op/s 0.49% 0.861 15.091 0.07% 12570.024op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 56.401µs 56.810µs ± 0.152µs 56.821µs ± 0.100µs 56.913µs 57.071µs 57.107µs 57.127µs 0.54% -0.208 -0.216 0.27% 0.011µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 17504919.921op/s 17602801.144op/s ± 47140.055op/s 17599225.953op/s ± 31061.848op/s 17635725.717op/s 17682799.237op/s 17719687.856op/s 17730279.772op/s 0.74% 0.222 -0.206 0.27% 3333.305op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 51.367µs 51.442µs ± 0.031µs 51.436µs ± 0.019µs 51.461µs 51.493µs 51.522µs 51.546µs 0.21% 0.551 0.551 0.06% 0.002µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 19400166.742op/s 19439417.584op/s ± 11732.453op/s 19441616.825op/s ± 7371.397op/s 19446977.330op/s 19457300.177op/s 19462799.779op/s 19467740.008op/s 0.13% -0.547 0.545 0.06% 829.610op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.026µs 6.038µs ± 0.004µs 6.038µs ± 0.002µs 6.040µs 6.044µs 6.047µs 6.053µs 0.24% 0.053 2.813 0.06% 0.000µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 165216581.878op/s 165611387.233op/s ± 97909.133op/s 165620578.371op/s ± 50429.980op/s 165664203.162op/s 165740740.779op/s 165905123.130op/s 165954794.756op/s 0.20% -0.044 2.811 0.06% 6923.221op/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.008%; +0.008%] None None None
credit_card/is_card_number/ throughput [255485298.069op/s; 255527730.177op/s] or [-0.008%; +0.008%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [82.677µs; 82.840µs] or [-0.099%; +0.099%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12072155.510op/s; 12095653.820op/s] or [-0.097%; +0.097%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [79.422µs; 79.553µs] or [-0.082%; +0.082%] None None None
credit_card/is_card_number/ 378282246310005 throughput [12570807.650op/s; 12591139.928op/s] or [-0.081%; +0.081%] 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 [255499379.833op/s; 255543993.301op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/378282246310005 execution_time [76.270µs; 76.391µs] or [-0.079%; +0.079%] None None None
credit_card/is_card_number/378282246310005 throughput [13090999.044op/s; 13111715.251op/s] or [-0.079%; +0.079%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [51.432µs; 51.439µs] or [-0.007%; +0.007%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [19440583.722op/s; 19443310.157op/s] or [-0.007%; +0.007%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.037µs; 6.040µs] or [-0.020%; +0.020%] None None None
credit_card/is_card_number/x371413321323331 throughput [165571891.313op/s; 165638083.660op/s] or [-0.020%; +0.020%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.914µs; 3.914µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ throughput [255476031.016op/s; 255521846.394op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [66.390µs; 66.475µs] or [-0.064%; +0.064%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15043621.193op/s; 15062862.345op/s] or [-0.064%; +0.064%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [59.637µs; 59.659µs] or [-0.018%; +0.018%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [16762081.113op/s; 16768051.803op/s] or [-0.018%; +0.018%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.913µs; 3.914µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255496382.413op/s; 255545656.000op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [56.788µs; 56.831µs] or [-0.037%; +0.037%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [17596267.985op/s; 17609334.302op/s] or [-0.037%; +0.037%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [51.438µs; 51.446µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [19437791.578op/s; 19441043.589op/s] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.038µs; 6.039µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [165597817.968op/s; 165624956.497op/s] or [-0.008%; +0.008%] None None None

Baseline

Omitted due to size.

@codecov-commenter
Copy link

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 71.82%. Comparing base (1f16a44) to head (af91be6).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #892      +/-   ##
==========================================
+ Coverage   71.77%   71.82%   +0.04%     
==========================================
  Files         328      328              
  Lines       48577    48577              
==========================================
+ Hits        34866    34888      +22     
+ Misses      13711    13689      -22     
Components Coverage Δ
crashtracker 42.90% <ø> (+0.02%) ⬆️
crashtracker-ffi 6.25% <ø> (ø)
datadog-alloc 98.73% <ø> (ø)
data-pipeline 92.07% <ø> (ø)
data-pipeline-ffi 90.39% <ø> (ø)
ddcommon 80.08% <ø> (ø)
ddcommon-ffi 61.05% <ø> (ø)
ddtelemetry 61.74% <ø> (ø)
ddtelemetry-ffi 22.46% <ø> (ø)
dogstatsd 90.16% <ø> (ø)
dogstatsd-client 82.57% <ø> (ø)
ipc 82.68% <ø> (ø)
profiling 80.04% <ø> (ø)
profiling-ffi 70.68% <ø> (ø)
serverless 0.00% <ø> (ø)
sidecar 40.86% <ø> (ø)
sidecar-ffi 4.70% <ø> (ø)
spawn-worker 54.37% <ø> (ø)
tinybytes 92.85% <ø> (ø)
trace-mini-agent 72.48% <ø> (ø)
trace-normalization 98.23% <ø> (ø)
trace-obfuscation 95.96% <ø> (ø)
trace-protobuf 78.13% <ø> (ø)
trace-utils 93.30% <ø> (ø)

use std::ptr::{addr_of, read_unaligned};
use windows::core::{w, HRESULT, PCWSTR};
use windows::Win32::Foundation::{BOOL, ERROR_SUCCESS, E_FAIL, HANDLE, HMODULE, S_OK, TRUE};
#[cfg(target_arch = "x86_64")]
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we need to consider ARM?

let mut path = env::temp_dir().join(process_name);
path.set_extension("dll");

// Attempt to move it just in case it already exists
Copy link
Contributor

Choose a reason for hiding this comment

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

How would this happen?

Copy link
Contributor

Choose a reason for hiding this comment

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

Should we log something here? Is this unexpected?

@@ -38,4 +38,17 @@ fn main() {
.try_compile_shared_lib("ld_preload_trampoline.shared_lib")
.unwrap();
}

if cfg!(target_os = "windows") {
Copy link
Contributor

Choose a reason for hiding this comment

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

Is there a reason to use this rather than just statically #[cfg...]?

.file("src/crashtracking_trampoline.cpp") // Path to your C++ file
.warnings(true)
.warnings_into_errors(true)
.flag("/std:c++17") // Set the C++ standard (adjust as needed)
Copy link
Contributor

Choose a reason for hiding this comment

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

Does having a C++ binary increase the size of libdatadog vs C?


if (!EnumProcessModules(process, nullptr, 0, &cbNeeded))
{
OutputDebugStringW(L"Failed to enumerate process modules (1st)");
Copy link
Contributor

Choose a reason for hiding this comment

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

What does 1st vs 2nd mean?

Some(&mut bytes_read),
);

if result.is_err() || bytes_read != size {
Copy link
Contributor

Choose a reason for hiding this comment

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

anyhow::ensure

fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(
f,
"{:08x}{:04x}{:04x}{:02x}{:02x}{:02x}{:02x}{:02x}{:02x}{:02x}{:02x}",
Copy link
Contributor

Choose a reason for hiding this comment

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

Is this documented somewhere?

Comment on lines +651 to +657
let debug_data_dir: IMAGE_DATA_DIRECTORY = if is_pe32 {
let nt_headers32: IMAGE_NT_HEADERS32 = read_memory(process_handle, nt_headers_address)?;
nt_headers32.OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_DEBUG.0 as usize]
} else {
let nt_headers64: IMAGE_NT_HEADERS64 = read_memory(process_handle, nt_headers_address)?;
nt_headers64.OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_DEBUG.0 as usize]
};
Copy link
Contributor

Choose a reason for hiding this comment

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

Is there documentation for why this is the case?

}
}

Err(anyhow!("No CodeView entry found"))
Copy link
Contributor

Choose a reason for hiding this comment

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

anyhow::bail!

Comment on lines +726 to +728
if thread_entry.th32OwnerProcessID == pid {
thread_ids.push(thread_entry.th32ThreadID);
}
Copy link
Contributor

Choose a reason for hiding this comment

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

We loop over every thread on the machine? Could that be expensive?

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

Successfully merging this pull request may close these issues.

3 participants