fix(crashtracking): use libunwind to unwind frames#1663
fix(crashtracking): use libunwind to unwind frames#1663
Conversation
db27cac to
12d5692
Compare
12d5692 to
b3edc83
Compare
📚 Documentation Check Results📦
|
Clippy Allow Annotation ReportComparing clippy allow annotations between branches:
Summary by Rule
Annotation Counts by File
Annotation Stats by Crate
About This ReportThis report tracks Clippy allow annotations for specific rules, showing how they've changed in this PR. Decreasing the number of these annotations generally improves code quality. |
🔒 Cargo Deny Results📦
|
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #1663 +/- ##
==========================================
- Coverage 71.19% 71.14% -0.05%
==========================================
Files 427 427
Lines 62852 62857 +5
==========================================
- Hits 44746 44721 -25
- Misses 18106 18136 +30
🚀 New features to boost your workflow:
|
Artifact Size Benchmark Reportaarch64-alpine-linux-musl
aarch64-unknown-linux-gnu
libdatadog-x64-windows
libdatadog-x86-windows
x86_64-alpine-linux-musl
x86_64-unknown-linux-gnu
|
507c974 to
1ac9cb5
Compare
|
✅ Tests 🎉 All green!❄️ No new flaky tests detected 🔗 Commit SHA: fc419c4 | Docs | Datadog PR Page | Was this helpful? React with 👍/👎 or give us feedback! |
1dfb73b to
3aa8cd5
Compare
7a8c08e to
2017c16
Compare
BenchmarksComparisonBenchmark execution time: 2026-03-06 20:05:21 Comparing candidate commit fc419c4 in PR branch Found 0 performance improvements and 1 performance regressions! Performance is the same for 57 metrics, 2 unstable metrics.
|
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | fc419c4 | 1772826482 | gyuheon0h/PROF-13672-libunwind |
| 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 | 48.337ms | 48.785ms ± 1.233ms | 48.619ms ± 0.104ms | 48.743ms | 48.917ms | 53.346ms | 63.736ms | 31.09% | 10.096 | 111.952 | 2.52% | 0.087ms | 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 | [48.614ms; 48.956ms] or [-0.350%; +0.350%] | None | None | None |
Group 2
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | fc419c4 | 1772826482 | gyuheon0h/PROF-13672-libunwind |
| 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 | 240.522ns | 251.364ns ± 12.986ns | 246.639ns ± 3.553ns | 252.116ns | 284.833ns | 295.281ns | 299.030ns | 21.24% | 2.162 | 3.784 | 5.15% | 0.918ns | 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 | [249.564ns; 253.163ns] or [-0.716%; +0.716%] | None | None | None |
Group 3
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | fc419c4 | 1772826482 | gyuheon0h/PROF-13672-libunwind |
| 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.108µs | 34.010µs ± 1.219µs | 33.247µs ± 0.085µs | 35.479µs | 36.131µs | 36.228µs | 36.639µs | 10.20% | 0.938 | -1.027 | 3.57% | 0.086µ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.841µs; 34.179µs] or [-0.497%; +0.497%] | None | None | None |
Group 4
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | fc419c4 | 1772826482 | gyuheon0h/PROF-13672-libunwind |
| 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.601ms | 10.630ms ± 0.013ms | 10.629ms ± 0.008ms | 10.637ms | 10.652ms | 10.674ms | 10.686ms | 0.53% | 1.158 | 2.664 | 0.13% | 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.629ms; 10.632ms] or [-0.017%; +0.017%] | None | None | None |
Group 5
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | fc419c4 | 1772826482 | gyuheon0h/PROF-13672-libunwind |
| 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.420µs | 2.444µs ± 0.019µs | 2.441µs ± 0.010µs | 2.450µs | 2.496µs | 2.504µs | 2.505µs | 2.63% | 1.580 | 2.521 | 0.79% | 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.441µs; 2.447µs] or [-0.110%; +0.110%] | None | None | None |
Group 6
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | fc419c4 | 1772826482 | gyuheon0h/PROF-13672-libunwind |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| sdk_test_data/rules-based | execution_time | 144.617µs | 146.569µs ± 1.667µs | 146.303µs ± 0.467µs | 146.817µs | 148.157µs | 153.355µs | 162.138µs | 10.82% | 5.717 | 44.267 | 1.13% | 0.118µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| sdk_test_data/rules-based | execution_time | [146.338µs; 146.800µs] or [-0.158%; +0.158%] | None | None | None |
Group 7
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | fc419c4 | 1772826482 | gyuheon0h/PROF-13672-libunwind |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| profile_add_sample_frames_x1000 | execution_time | 4.137ms | 4.141ms ± 0.007ms | 4.140ms ± 0.001ms | 4.142ms | 4.145ms | 4.147ms | 4.230ms | 2.18% | 11.403 | 146.606 | 0.16% | 0.000ms | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| profile_add_sample_frames_x1000 | execution_time | [4.140ms; 4.142ms] or [-0.023%; +0.023%] | None | None | None |
Group 8
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | fc419c4 | 1772826482 | gyuheon0h/PROF-13672-libunwind |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| sql/obfuscate_sql_string | execution_time | 85.498µs | 85.734µs ± 0.167µs | 85.723µs ± 0.049µs | 85.776µs | 85.830µs | 86.388µs | 87.478µs | 2.05% | 6.695 | 62.952 | 0.19% | 0.012µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| sql/obfuscate_sql_string | execution_time | [85.711µs; 85.757µs] or [-0.027%; +0.027%] | None | None | None |
Group 9
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | fc419c4 | 1772826482 | gyuheon0h/PROF-13672-libunwind |
| 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.006µs | 5.069µs ± 0.041µs | 5.052µs ± 0.020µs | 5.114µs | 5.133µs | 5.136µs | 5.138µs | 1.72% | 0.518 | -1.369 | 0.80% | 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.064µs; 5.075µs] or [-0.111%; +0.111%] | None | None | None |
Group 10
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | fc419c4 | 1772826482 | gyuheon0h/PROF-13672-libunwind |
| 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 | 188.075ns | 190.999ns ± 2.109ns | 190.942ns ± 1.352ns | 191.983ns | 194.778ns | 197.988ns | 202.413ns | 6.01% | 1.501 | 4.557 | 1.10% | 0.149ns | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| single_flag_killswitch/rules-based | execution_time | [190.707ns; 191.291ns] or [-0.153%; +0.153%] | None | None | None |
Group 11
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | fc419c4 | 1772826482 | gyuheon0h/PROF-13672-libunwind |
| 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.708µs | 25.834µs ± 9.774µs | 17.911µs ± 0.153µs | 34.832µs | 43.536µs | 44.890µs | 61.138µs | 241.34% | 0.740 | -0.510 | 37.74% | 0.691µ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.479µs; 27.188µs] or [-5.243%; +5.243%] | None | None | None |
Group 12
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | fc419c4 | 1772826482 | gyuheon0h/PROF-13672-libunwind |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | execution_time | 533.959µs | 535.012µs ± 0.900µs | 534.856µs ± 0.274µs | 535.149µs | 536.038µs | 537.525µs | 544.285µs | 1.76% | 6.215 | 56.296 | 0.17% | 0.064µs | 1 | 200 |
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | throughput | 1837271.561op/s | 1869122.023op/s ± 3112.738op/s | 1869663.451op/s ± 957.393op/s | 1870592.520op/s | 1871512.251op/s | 1872104.515op/s | 1872802.143op/s | 0.17% | -6.117 | 54.841 | 0.17% | 220.104op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | execution_time | 380.141µs | 380.840µs ± 0.286µs | 380.836µs ± 0.189µs | 381.007µs | 381.320µs | 381.577µs | 381.690µs | 0.22% | 0.434 | 0.050 | 0.08% | 0.020µs | 1 | 200 |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | throughput | 2619925.077op/s | 2625777.304op/s ± 1974.342op/s | 2625803.532op/s ± 1304.223op/s | 2627326.976op/s | 2628589.979op/s | 2629457.012op/s | 2630600.749op/s | 0.18% | -0.430 | 0.045 | 0.08% | 139.607op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | execution_time | 189.889µs | 190.210µs ± 0.182µs | 190.181µs ± 0.116µs | 190.317µs | 190.535µs | 190.702µs | 190.740µs | 0.29% | 0.569 | -0.148 | 0.10% | 0.013µs | 1 | 200 |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | throughput | 5242740.921op/s | 5257350.621op/s ± 5040.095op/s | 5258138.892op/s ± 3215.838op/s | 5260817.860op/s | 5264611.880op/s | 5266121.058op/s | 5266242.307op/s | 0.15% | -0.564 | -0.154 | 0.10% | 356.389op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/[empty string] | execution_time | 37.275µs | 37.501µs ± 0.079µs | 37.502µs ± 0.050µs | 37.552µs | 37.639µs | 37.675µs | 37.729µs | 0.61% | -0.064 | 0.506 | 0.21% | 0.006µs | 1 | 200 |
| normalization/normalize_service/normalize_service/[empty string] | throughput | 26504478.081op/s | 26665812.049op/s ± 56227.329op/s | 26665238.214op/s ± 35286.214op/s | 26700472.521op/s | 26751280.071op/s | 26819697.604op/s | 26827679.307op/s | 0.61% | 0.080 | 0.510 | 0.21% | 3975.873op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/test_ASCII | execution_time | 45.805µs | 45.926µs ± 0.131µs | 45.910µs ± 0.044µs | 45.955µs | 46.062µs | 46.106µs | 47.499µs | 3.46% | 8.762 | 101.680 | 0.29% | 0.009µs | 1 | 200 |
| normalization/normalize_service/normalize_service/test_ASCII | throughput | 21052966.352op/s | 21774464.614op/s ± 60718.260op/s | 21781855.414op/s ± 20780.035op/s | 21801557.814op/s | 21821768.017op/s | 21829409.025op/s | 21831647.342op/s | 0.23% | -8.534 | 97.967 | 0.28% | 4293.429op/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 | [534.887µs; 535.137µs] or [-0.023%; +0.023%] | None | None | None |
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | throughput | [1868690.627op/s; 1869553.418op/s] or [-0.023%; +0.023%] | None | None | None |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | execution_time | [380.800µs; 380.880µs] or [-0.010%; +0.010%] | None | None | None |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | throughput | [2625503.679op/s; 2626050.929op/s] or [-0.010%; +0.010%] | None | None | None |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | execution_time | [190.185µs; 190.235µs] or [-0.013%; +0.013%] | None | None | None |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | throughput | [5256652.112op/s; 5258049.129op/s] or [-0.013%; +0.013%] | None | None | None |
| normalization/normalize_service/normalize_service/[empty string] | execution_time | [37.490µs; 37.512µs] or [-0.029%; +0.029%] | None | None | None |
| normalization/normalize_service/normalize_service/[empty string] | throughput | [26658019.482op/s; 26673604.616op/s] or [-0.029%; +0.029%] | None | None | None |
| normalization/normalize_service/normalize_service/test_ASCII | execution_time | [45.908µs; 45.944µs] or [-0.040%; +0.040%] | None | None | None |
| normalization/normalize_service/normalize_service/test_ASCII | throughput | [21766049.647op/s; 21782879.581op/s] or [-0.039%; +0.039%] | None | None | None |
Group 13
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | fc419c4 | 1772826482 | gyuheon0h/PROF-13672-libunwind |
| 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.198µs | 3.203µs ± 1.412µs | 2.988µs ± 0.031µs | 3.017µs | 3.628µs | 13.864µs | 14.604µs | 388.74% | 7.314 | 54.800 | 43.96% | 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 | [3.007µs; 3.398µs] or [-6.108%; +6.108%] | None | None | None |
Group 14
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | fc419c4 | 1772826482 | gyuheon0h/PROF-13672-libunwind |
| 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/2598 | execution_time | 3.582ms | 3.610ms ± 0.014ms | 3.608ms ± 0.009ms | 3.618ms | 3.636ms | 3.656ms | 3.660ms | 1.43% | 0.930 | 1.335 | 0.39% | 0.001ms | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| receiver_entry_point/report/2598 | execution_time | [3.608ms; 3.612ms] or [-0.055%; +0.055%] | None | None | None |
Group 15
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | fc419c4 | 1772826482 | gyuheon0h/PROF-13672-libunwind |
| 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.341µs | 185.819µs ± 0.608µs | 185.756µs ± 0.176µs | 185.944µs | 186.147µs | 186.346µs | 191.701µs | 3.20% | 7.998 | 71.927 | 0.33% | 0.043µs | 1 | 200 |
| normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... | throughput | 5216469.804op/s | 5381627.123op/s ± 17170.459op/s | 5383404.378op/s ± 5117.841op/s | 5388116.114op/s | 5393294.509op/s | 5395198.616op/s | 5395449.343op/s | 0.22% | -7.900 | 70.712 | 0.32% | 1214.135op/s | 1 | 200 |
| normalization/normalize_name/normalize_name/bad-name | execution_time | 17.875µs | 17.978µs ± 0.035µs | 17.975µs ± 0.017µs | 17.993µs | 18.031µs | 18.042µs | 18.256µs | 1.56% | 2.481 | 18.493 | 0.20% | 0.002µs | 1 | 200 |
| normalization/normalize_name/normalize_name/bad-name | throughput | 54775125.097op/s | 55622775.607op/s ± 108506.768op/s | 55631835.061op/s ± 51751.150op/s | 55680179.611op/s | 55758203.633op/s | 55856702.456op/s | 55943372.144op/s | 0.56% | -2.398 | 17.735 | 0.19% | 7672.587op/s | 1 | 200 |
| normalization/normalize_name/normalize_name/good | execution_time | 10.272µs | 10.345µs ± 0.036µs | 10.340µs ± 0.024µs | 10.367µs | 10.403µs | 10.437µs | 10.456µs | 1.12% | 0.477 | -0.004 | 0.34% | 0.003µs | 1 | 200 |
| normalization/normalize_name/normalize_name/good | throughput | 95638243.995op/s | 96670290.244op/s ± 331409.172op/s | 96711834.512op/s ± 223062.456op/s | 96915143.305op/s | 97132029.656op/s | 97324119.803op/s | 97350660.768op/s | 0.66% | -0.459 | -0.029 | 0.34% | 23434.167op/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.735µs; 185.904µs] or [-0.045%; +0.045%] | None | None | None |
| normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... | throughput | [5379247.462op/s; 5384006.783op/s] or [-0.044%; +0.044%] | None | None | None |
| normalization/normalize_name/normalize_name/bad-name | execution_time | [17.973µs; 17.983µs] or [-0.027%; +0.027%] | None | None | None |
| normalization/normalize_name/normalize_name/bad-name | throughput | [55607737.613op/s; 55637813.602op/s] or [-0.027%; +0.027%] | None | None | None |
| normalization/normalize_name/normalize_name/good | execution_time | [10.340µs; 10.349µs] or [-0.048%; +0.048%] | None | None | None |
| normalization/normalize_name/normalize_name/good | throughput | [96624360.120op/s; 96716220.368op/s] or [-0.048%; +0.048%] | None | None | None |
Group 16
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | fc419c4 | 1772826482 | gyuheon0h/PROF-13672-libunwind |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| benching serializing traces from their internal representation to msgpack | execution_time | 14.012ms | 14.058ms ± 0.032ms | 14.054ms ± 0.015ms | 14.069ms | 14.114ms | 14.190ms | 14.212ms | 1.12% | 2.136 | 6.450 | 0.23% | 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 | [14.054ms; 14.063ms] or [-0.031%; +0.031%] | None | None | None |
Group 17
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | fc419c4 | 1772826482 | gyuheon0h/PROF-13672-libunwind |
| 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.913µs ± 0.002µs | 3.914µs | 3.918µs | 3.919µs | 3.921µs | 0.22% | -0.690 | 6.622 | 0.07% | 0.000µs | 1 | 200 |
| credit_card/is_card_number/ | throughput | 255024313.082op/s | 255593069.770op/s ± 191634.040op/s | 255590709.420op/s ± 125019.873op/s | 255719281.248op/s | 255831291.342op/s | 255883150.935op/s | 256788088.166op/s | 0.47% | 0.708 | 6.731 | 0.07% | 13550.573op/s | 1 | 200 |
| credit_card/is_card_number/ 3782-8224-6310-005 | execution_time | 78.968µs | 79.706µs ± 0.395µs | 79.664µs ± 0.287µs | 79.958µs | 80.403µs | 80.804µs | 81.034µs | 1.72% | 0.554 | 0.107 | 0.49% | 0.028µs | 1 | 200 |
| credit_card/is_card_number/ 3782-8224-6310-005 | throughput | 12340468.834op/s | 12546391.196op/s ± 62067.528op/s | 12552660.155op/s ± 44984.933op/s | 12597029.309op/s | 12634806.682op/s | 12648697.853op/s | 12663325.492op/s | 0.88% | -0.528 | 0.050 | 0.49% | 4388.837op/s | 1 | 200 |
| credit_card/is_card_number/ 378282246310005 | execution_time | 72.306µs | 72.927µs ± 0.341µs | 72.876µs ± 0.233µs | 73.141µs | 73.565µs | 73.950µs | 74.055µs | 1.62% | 0.820 | 0.635 | 0.47% | 0.024µs | 1 | 200 |
| credit_card/is_card_number/ 378282246310005 | throughput | 13503496.965op/s | 13712707.099op/s ± 63954.574op/s | 13721916.122op/s ± 43853.313op/s | 13759168.981op/s | 13797723.032op/s | 13817159.845op/s | 13830191.308op/s | 0.79% | -0.792 | 0.568 | 0.47% | 4522.271op/s | 1 | 200 |
| credit_card/is_card_number/37828224631 | execution_time | 3.891µs | 3.912µs ± 0.003µs | 3.912µs ± 0.002µs | 3.914µs | 3.917µs | 3.919µs | 3.922µs | 0.27% | -1.085 | 9.585 | 0.08% | 0.000µs | 1 | 200 |
| credit_card/is_card_number/37828224631 | throughput | 254957125.608op/s | 255613698.601op/s ± 206064.020op/s | 255637527.589op/s ± 131407.795op/s | 255754213.407op/s | 255864015.847op/s | 255930735.779op/s | 257017218.645op/s | 0.54% | 1.110 | 9.763 | 0.08% | 14570.927op/s | 1 | 200 |
| credit_card/is_card_number/378282246310005 | execution_time | 69.113µs | 69.802µs ± 0.371µs | 69.769µs ± 0.261µs | 70.039µs | 70.464µs | 70.728µs | 70.869µs | 1.58% | 0.580 | -0.243 | 0.53% | 0.026µs | 1 | 200 |
| credit_card/is_card_number/378282246310005 | throughput | 14110564.109op/s | 14326679.190op/s ± 75979.495op/s | 14332996.823op/s ± 53655.628op/s | 14383285.562op/s | 14430749.692op/s | 14438691.696op/s | 14469088.450op/s | 0.95% | -0.557 | -0.280 | 0.53% | 5372.562op/s | 1 | 200 |
| credit_card/is_card_number/37828224631000521389798 | execution_time | 52.155µs | 52.224µs ± 0.040µs | 52.216µs ± 0.027µs | 52.249µs | 52.298µs | 52.329µs | 52.354µs | 0.27% | 0.708 | 0.101 | 0.08% | 0.003µs | 1 | 200 |
| credit_card/is_card_number/37828224631000521389798 | throughput | 19100587.174op/s | 19148321.189op/s ± 14727.347op/s | 19151221.838op/s ± 9965.262op/s | 19159249.713op/s | 19168406.824op/s | 19172370.639op/s | 19173557.747op/s | 0.12% | -0.704 | 0.093 | 0.08% | 1041.381op/s | 1 | 200 |
| credit_card/is_card_number/x371413321323331 | execution_time | 6.028µs | 6.040µs ± 0.014µs | 6.036µs ± 0.003µs | 6.039µs | 6.072µs | 6.104µs | 6.109µs | 1.21% | 2.829 | 8.556 | 0.23% | 0.001µs | 1 | 200 |
| credit_card/is_card_number/x371413321323331 | throughput | 163683899.899op/s | 165559465.339op/s ± 372253.710op/s | 165660880.398op/s ± 75029.599op/s | 165735911.753op/s | 165837187.809op/s | 165869109.531op/s | 165884558.371op/s | 0.14% | -2.812 | 8.426 | 0.22% | 26322.312op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ | execution_time | 3.897µs | 3.913µs ± 0.003µs | 3.912µs ± 0.002µs | 3.914µs | 3.917µs | 3.920µs | 3.920µs | 0.19% | -0.466 | 4.442 | 0.07% | 0.000µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ | throughput | 255122487.241op/s | 255584345.078op/s ± 180388.256op/s | 255594517.498op/s ± 119142.783op/s | 255707883.199op/s | 255820361.102op/s | 255909708.586op/s | 256615942.516op/s | 0.40% | 0.480 | 4.510 | 0.07% | 12755.376op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | execution_time | 64.077µs | 64.416µs ± 0.141µs | 64.409µs ± 0.090µs | 64.499µs | 64.671µs | 64.772µs | 64.888µs | 0.74% | 0.449 | 0.362 | 0.22% | 0.010µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | throughput | 15411099.983op/s | 15524143.759op/s ± 34046.110op/s | 15525821.508op/s ± 21662.735op/s | 15547356.651op/s | 15572623.958op/s | 15596865.405op/s | 15606254.987op/s | 0.52% | -0.435 | 0.342 | 0.22% | 2407.423op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 378282246310005 | execution_time | 58.136µs | 58.367µs ± 0.145µs | 58.331µs ± 0.072µs | 58.431µs | 58.618µs | 58.849µs | 59.005µs | 1.16% | 1.415 | 2.820 | 0.25% | 0.010µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 378282246310005 | throughput | 16947594.392op/s | 17132976.307op/s ± 42502.834op/s | 17143563.389op/s ± 21079.174op/s | 17160353.583op/s | 17185557.259op/s | 17195324.460op/s | 17201044.103op/s | 0.34% | -1.395 | 2.728 | 0.25% | 3005.404op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631 | execution_time | 3.893µs | 3.913µs ± 0.003µs | 3.912µs ± 0.002µs | 3.914µs | 3.918µs | 3.920µs | 3.921µs | 0.23% | -0.755 | 7.856 | 0.08% | 0.000µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631 | throughput | 255021076.654op/s | 255577240.425op/s ± 203638.129op/s | 255604038.549op/s ± 117631.356op/s | 255712340.826op/s | 255812401.037op/s | 255848037.256op/s | 256903063.720op/s | 0.51% | 0.777 | 8.003 | 0.08% | 14399.390op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/378282246310005 | execution_time | 54.558µs | 54.880µs ± 0.239µs | 54.828µs ± 0.162µs | 55.013µs | 55.345µs | 55.576µs | 55.753µs | 1.69% | 1.006 | 0.651 | 0.43% | 0.017µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/378282246310005 | throughput | 17936277.405op/s | 18221835.197op/s ± 78860.618op/s | 18238979.681op/s ± 53909.438op/s | 18286095.712op/s | 18313351.441op/s | 18324753.432op/s | 18329112.129op/s | 0.49% | -0.985 | 0.583 | 0.43% | 5576.288op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | execution_time | 52.161µs | 52.231µs ± 0.037µs | 52.230µs ± 0.025µs | 52.252µs | 52.298µs | 52.327µs | 52.372µs | 0.27% | 0.719 | 0.822 | 0.07% | 0.003µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | throughput | 19094331.967op/s | 19145688.790op/s ± 13642.140op/s | 19146128.538op/s ± 9096.566op/s | 19155766.462op/s | 19165421.172op/s | 19168242.612op/s | 19171335.020op/s | 0.13% | -0.714 | 0.809 | 0.07% | 964.645op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/x371413321323331 | execution_time | 6.027µs | 6.039µs ± 0.015µs | 6.036µs ± 0.003µs | 6.039µs | 6.074µs | 6.109µs | 6.151µs | 1.90% | 4.574 | 24.709 | 0.25% | 0.001µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/x371413321323331 | throughput | 162579612.222op/s | 165579899.324op/s ± 416900.417op/s | 165672266.244op/s ± 76317.200op/s | 165745947.596op/s | 165818253.307op/s | 165884345.176op/s | 165921256.737op/s | 0.15% | -4.530 | 24.226 | 0.25% | 29479.311op/s | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| credit_card/is_card_number/ | execution_time | [3.912µs; 3.913µs] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number/ | throughput | [255566511.135op/s; 255619628.405op/s] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number/ 3782-8224-6310-005 | execution_time | [79.651µs; 79.761µs] or [-0.069%; +0.069%] | None | None | None |
| credit_card/is_card_number/ 3782-8224-6310-005 | throughput | [12537789.233op/s; 12554993.158op/s] or [-0.069%; +0.069%] | None | None | None |
| credit_card/is_card_number/ 378282246310005 | execution_time | [72.879µs; 72.974µs] or [-0.065%; +0.065%] | None | None | None |
| credit_card/is_card_number/ 378282246310005 | throughput | [13703843.610op/s; 13721570.588op/s] or [-0.065%; +0.065%] | None | None | None |
| credit_card/is_card_number/37828224631 | execution_time | [3.912µs; 3.913µs] or [-0.011%; +0.011%] | None | None | None |
| credit_card/is_card_number/37828224631 | throughput | [255585140.110op/s; 255642257.092op/s] or [-0.011%; +0.011%] | None | None | None |
| credit_card/is_card_number/378282246310005 | execution_time | [69.750µs; 69.853µs] or [-0.074%; +0.074%] | None | None | None |
| credit_card/is_card_number/378282246310005 | throughput | [14316149.162op/s; 14337209.217op/s] or [-0.073%; +0.073%] | None | None | None |
| credit_card/is_card_number/37828224631000521389798 | execution_time | [52.218µs; 52.229µs] or [-0.011%; +0.011%] | None | None | None |
| credit_card/is_card_number/37828224631000521389798 | throughput | [19146280.121op/s; 19150362.258op/s] or [-0.011%; +0.011%] | None | None | None |
| credit_card/is_card_number/x371413321323331 | execution_time | [6.038µs; 6.042µs] or [-0.031%; +0.031%] | None | None | None |
| credit_card/is_card_number/x371413321323331 | throughput | [165507874.555op/s; 165611056.123op/s] or [-0.031%; +0.031%] | None | None | None |
| credit_card/is_card_number_no_luhn/ | execution_time | [3.912µs; 3.913µs] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number_no_luhn/ | throughput | [255559345.001op/s; 255609345.156op/s] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | execution_time | [64.397µs; 64.436µs] or [-0.030%; +0.030%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | throughput | [15519425.295op/s; 15528862.222op/s] or [-0.030%; +0.030%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 378282246310005 | execution_time | [58.347µs; 58.387µs] or [-0.035%; +0.035%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 378282246310005 | throughput | [17127085.823op/s; 17138866.791op/s] or [-0.034%; +0.034%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631 | execution_time | [3.912µs; 3.913µs] or [-0.011%; +0.011%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631 | throughput | [255549018.139op/s; 255605462.711op/s] or [-0.011%; +0.011%] | None | None | None |
| credit_card/is_card_number_no_luhn/378282246310005 | execution_time | [54.847µs; 54.913µs] or [-0.060%; +0.060%] | None | None | None |
| credit_card/is_card_number_no_luhn/378282246310005 | throughput | [18210905.874op/s; 18232764.521op/s] or [-0.060%; +0.060%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | execution_time | [52.226µs; 52.236µs] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | throughput | [19143798.121op/s; 19147579.460op/s] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number_no_luhn/x371413321323331 | execution_time | [6.037µs; 6.042µs] or [-0.035%; +0.035%] | None | None | None |
| credit_card/is_card_number_no_luhn/x371413321323331 | throughput | [165522120.935op/s; 165637677.712op/s] or [-0.035%; +0.035%] | None | None | None |
Group 18
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | fc419c4 | 1772826482 | gyuheon0h/PROF-13672-libunwind |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| profile_add_sample2_frames_x1000 | execution_time | 748.378µs | 750.051µs ± 1.248µs | 749.877µs ± 0.420µs | 750.271µs | 751.018µs | 756.215µs | 757.073µs | 0.96% | 3.740 | 16.578 | 0.17% | 0.088µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| profile_add_sample2_frames_x1000 | execution_time | [749.878µs; 750.224µs] or [-0.023%; +0.023%] | None | None | None |
Group 19
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | fc419c4 | 1772826482 | gyuheon0h/PROF-13672-libunwind |
| 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.638µs | 161.301µs ± 0.241µs | 161.294µs ± 0.131µs | 161.425µs | 161.690µs | 162.118µs | 162.244µs | 0.59% | 0.829 | 2.786 | 0.15% | 0.017µ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.268µs; 161.335µs] or [-0.021%; +0.021%] | None | None | None |
Baseline
Omitted due to size.
| assert!(out.contains("\"file\":\"test_file2\"")); | ||
| } | ||
|
|
||
| #[test] |
There was a problem hiding this comment.
unwinding specific logic with libunwind is tested in the libdd-libunwind-sys crate. No need to replicate those tests here. I test edge cases with ucontext here, however.
1f94b2f to
d37e8ca
Compare
d37e8ca to
6c27f98
Compare

What does this PR do?
Use packaged libunwind to unwind crash stacktrace.
The diff is bigger than the actual change, because I moved some of the emitter functions around so that the file structure is
I also added
unsafecomments to unsafe callsMotivation
Crashtracker collects callstacks. When it comes to alpine/musl-libc (mainly on x86_64), we fail at retrieving the callstack passed the signal frame. The problem is that the musl-libc binary does not have the CFIs (unwinding information) and the unwinder does not know how to move forward and stop.
Libunwind provides a way to unwind starting from the ucontext: context (registers and state) of the crashing thread. Going that way, we can collect the callstack as much as possible (until hitting musl-libc). We previously packaged libunwind as a libdatadog crate here: feat(profiling): Wrap libunwind in a crate
Lets use this to unwind from crash ucontext
Additional Notes
Anything else we should know when reviewing?
How to test the change?
Describe here in detail how the change can be validated.