libdatadog
libdatadog copied to clipboard
[profiling] Ensure shared library name has no soname set.
What does this PR do?
Ensure the libdatadog profiling shared library has no SONAME set in .so shared libraries.
Motivation
In some environments, the libdatadog profiling shared library will include a SONAME and it will point to the library name previous to the rename in:
https://github.com/DataDog/libdatadog/blob/f5c7e888ee3aa6646986c90ed6917fe51c06a8c0/build-profiling-ffi.sh#L138
The existence of this SONAME makes it impossible to load libdatadog at runtime because the loading will be done based on the SONAME, not the actual library name:
2024-04-29_16:17:11.44159 W, [2024-04-29T16:17:11.441513 #43868] WARN -- datadog: [datadog] Profiling was requested but is not supported, profiling disabled: There was an error loading the profiling native extension due to 'RuntimeError Failure to load datadog_profiling_native_extension.2.7.2_x86_64-linux due to libdatadog_profiling_ffi.so: cannot open shared object file: No such file or directory' at '/opt/dd-trace-rb/lib/datadog/profiling/load_native_extension.rb:41:in `<top (required)>''
Additional Notes
We haven't been able to fully pinpoint what leads to different SONAME handling between different environments (e.g. my Ubuntu 24 LTS VM always includes them but not Ivo's Ubuntu 22 laptop) but we found the following places that show how "finicky" this can be:
- https://github.com/rust-lang/cargo/blob/d34d0a1e15b1005ed6ebddbe34aca2058e96293b/src/cargo/core/compiler/build_runner/compilation_files.rs#L691-L733
- https://github.com/lu-zero/cargo-c/blob/9c5c603f5b2b0d7c2228d13fe88ab631e0b195d4/src/target.rs#L76-L87 (I don't think we use this one but some similar code may be used somewhere in our build pipeline? 🤷♂️ )
How to test the change?
Describe here in detail how the change can be validated.
For Reviewers
- [ ] If this PR touches code that signs or publishes builds or packages, or handles credentials of any kind, I've requested a review from
@DataDog/security-design-and-guidance. - [x] This PR doesn't touch any of that.
We talked about this. We are OK with removing the so name as we are not using it today. Would it be possible to just drop this within a cargo build script as part of the effort described in https://github.com/DataDog/libdatadog/issues/353
can it be part of the rust flags (like linker flags)? I think @gleocadie did work that is similar, we should put settings in a similar place.
can it be part of the rust flags (like linker flags)? I think @gleocadie did work that is similar, we should put settings in a similar place.
From what I chatted with @AlexJF, he did not find such an option, hence why he went with the "fix-after-the-fact" approach.
I see some failures in our build pipeline
./build-profiling-ffi.sh: line 151: patchelf: command not found
We'll need a PR on that side to make sure our images have patchelf.
PR to add patchelf to our centos build images: https://github.com/DataDog/libddprof-build/pull/40
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 66.14%. Comparing base (
74c89eb) to head (aef7a37).
Additional details and impacted files
@@ Coverage Diff @@
## main #408 +/- ##
=======================================
Coverage 66.14% 66.14%
=======================================
Files 187 187
Lines 23166 23166
=======================================
Hits 15324 15324
Misses 7842 7842
| Components | Coverage Δ | |
|---|---|---|
| crashtracker | 19.34% <ø> (ø) |
|
| datadog-alloc | 98.37% <ø> (ø) |
|
| data-pipeline | 51.45% <ø> (ø) |
|
| data-pipeline-ffi | 0.00% <ø> (ø) |
|
| ddcommon | 81.23% <ø> (ø) |
|
| ddcommon-ffi | 74.93% <ø> (ø) |
|
| ddtelemetry | 53.72% <ø> (ø) |
|
| ipc | 81.27% <ø> (ø) |
|
| profiling | 76.83% <ø> (ø) |
|
| profiling-ffi | 60.05% <ø> (ø) |
|
| serverless | 0.00% <ø> (ø) |
|
| sidecar | 29.37% <ø> (ø) |
|
| sidecar-ffi | 0.00% <ø> (ø) |
|
| spawn-worker | 54.98% <ø> (ø) |
|
| trace-mini-agent | 69.12% <ø> (ø) |
|
| trace-normalization | 97.79% <ø> (ø) |
|
| trace-obfuscation | 95.74% <ø> (ø) |
|
| trace-protobuf | 25.64% <ø> (ø) |
|
| trace-utils | 68.85% <ø> (ø) |
CI is now green for this one! @r1viollet thoughts on merging? Or do you want to hold on until we can see if there's a cleaner way to tell the rust compiler to not emit the soname at all?
Actually CI isn't green lol, either I was looking at the wrong tab, or some of the jobs hadn't finished when I looked at it. Pardon the temporary insanity. Will look into the missing issue -- I think I didn't bump the CI image version thingy correctly.
I'm moving this back to draft until we can pick it up again (sorry Alex! ;_;)
Benchmarks
Comparison
Benchmark execution time: 2024-09-11 14:37:28
Comparing candidate commit 1487913 in PR branch alexjf/remove-soname with baseline commit 54ed2cf in branch main.
Found 0 performance improvements and 6 performance regressions! Performance is the same for 45 metrics, 2 unstable metrics.
scenario:credit_card/is_card_number/37828224631000521389798
- 🟥
execution_time[+8.752µs; +8.895µs] or [+8.692%; +8.834%] - 🟥
throughput[-807137.664op/s; -793595.881op/s] or [-8.127%; -7.990%]
scenario:credit_card/is_card_number_no_luhn/ 3782-8224-6310-005
- 🟥
execution_time[+6.172µs; +6.813µs] or [+6.772%; +7.475%] - 🟥
throughput[-759191.215op/s; -690071.933op/s] or [-6.919%; -6.290%]
scenario:credit_card/is_card_number_no_luhn/37828224631000521389798
- 🟥
execution_time[+8.867µs; +9.015µs] or [+8.815%; +8.962%] - 🟥
throughput[-818169.368op/s; -804743.453op/s] or [-8.230%; -8.095%]
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 | 1487913 | 1726064817 | alexjf/remove-soname |
| 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 | 36.162µs | 36.832µs ± 1.105µs | 36.340µs ± 0.066µs | 36.444µs | 38.802µs | 39.680µs | 43.653µs | 20.12% | 2.338 | 6.907 | 2.99% | 0.078µ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 | [36.679µs; 36.985µs] or [-0.416%; +0.416%] | None | None | None |
Group 2
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 1487913 | 1726064817 | alexjf/remove-soname |
| 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 | 73.658µs | 73.910µs ± 0.192µs | 73.861µs ± 0.111µs | 74.012µs | 74.142µs | 74.274µs | 75.624µs | 2.39% | 3.745 | 30.030 | 0.26% | 0.014µ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 | [73.884µs; 73.937µs] or [-0.036%; +0.036%] | None | None | None |
Group 3
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 1487913 | 1726064817 | alexjf/remove-soname |
| 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 | 8.884ms | 8.922ms ± 0.023ms | 8.920ms ± 0.010ms | 8.930ms | 8.946ms | 8.966ms | 9.170ms | 2.80% | 6.401 | 66.179 | 0.26% | 0.002ms | 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 | [8.919ms; 8.925ms] or [-0.036%; +0.036%] | None | None | None |
Group 4
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 1487913 | 1726064817 | alexjf/remove-soname |
| 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.417µs | 3.257µs ± 1.616µs | 3.066µs ± 0.035µs | 3.098µs | 3.525µs | 13.848µs | 19.029µs | 520.65% | 8.018 | 66.241 | 49.49% | 0.114µ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.033µs; 3.481µs] or [-6.877%; +6.877%] | None | None | None |
Group 5
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 1487913 | 1726064817 | alexjf/remove-soname |
| 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 | 578.670µs | 579.621µs ± 0.339µs | 579.672µs ± 0.250µs | 579.869µs | 580.102µs | 580.265µs | 580.327µs | 0.11% | -0.532 | -0.012 | 0.06% | 0.024µs | 1 | 200 |
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | throughput | 1723167.535op/s | 1725265.472op/s ± 1009.698op/s | 1725113.978op/s ± 743.208op/s | 1725913.455op/s | 1727112.166op/s | 1727940.139op/s | 1728100.831op/s | 0.17% | 0.535 | -0.007 | 0.06% | 71.396op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | execution_time | 464.291µs | 464.898µs ± 0.266µs | 464.917µs ± 0.179µs | 465.067µs | 465.339µs | 465.519µs | 465.799µs | 0.19% | 0.094 | 0.171 | 0.06% | 0.019µs | 1 | 200 |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | throughput | 2146846.807op/s | 2151009.654op/s ± 1232.621op/s | 2150920.588op/s ± 826.549op/s | 2151795.101op/s | 2153162.666op/s | 2153781.600op/s | 2153821.145op/s | 0.13% | -0.090 | 0.168 | 0.06% | 87.159op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | execution_time | 183.946µs | 184.234µs ± 0.153µs | 184.246µs ± 0.111µs | 184.355µs | 184.466µs | 184.529µs | 184.733µs | 0.26% | -0.131 | -0.303 | 0.08% | 0.011µs | 1 | 200 |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | throughput | 5413212.135op/s | 5427874.523op/s ± 4494.770op/s | 5427525.508op/s ± 3266.036op/s | 5430914.742op/s | 5435592.630op/s | 5436185.551op/s | 5436390.628op/s | 0.16% | 0.136 | -0.308 | 0.08% | 317.828op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/[empty string] | execution_time | 46.322µs | 46.725µs ± 0.108µs | 46.733µs ± 0.080µs | 46.806µs | 46.885µs | 46.952µs | 47.023µs | 0.62% | -0.230 | 0.147 | 0.23% | 0.008µs | 1 | 200 |
| normalization/normalize_service/normalize_service/[empty string] | throughput | 21266272.280op/s | 21402003.276op/s ± 49504.510op/s | 21397996.371op/s ± 36538.013op/s | 21438942.273op/s | 21477823.049op/s | 21509648.221op/s | 21587842.462op/s | 0.89% | 0.244 | 0.168 | 0.23% | 3500.497op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/test_ASCII | execution_time | 44.281µs | 44.766µs ± 0.203µs | 44.717µs ± 0.091µs | 44.832µs | 45.235µs | 45.362µs | 45.373µs | 1.47% | 1.215 | 1.684 | 0.45% | 0.014µs | 1 | 200 |
| normalization/normalize_service/normalize_service/test_ASCII | throughput | 22039616.445op/s | 22338973.679op/s ± 100946.859op/s | 22362875.746op/s ± 45554.419op/s | 22399305.157op/s | 22448919.203op/s | 22551974.585op/s | 22582908.102op/s | 0.98% | -1.185 | 1.630 | 0.45% | 7138.021op/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 | [579.574µs; 579.668µs] or [-0.008%; +0.008%] | None | None | None |
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | throughput | [1725125.537op/s; 1725405.406op/s] or [-0.008%; +0.008%] | None | None | None |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | execution_time | [464.861µs; 464.935µs] or [-0.008%; +0.008%] | None | None | None |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | throughput | [2150838.825op/s; 2151180.484op/s] or [-0.008%; +0.008%] | None | None | None |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | execution_time | [184.213µs; 184.255µs] or [-0.011%; +0.011%] | None | None | None |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | throughput | [5427251.591op/s; 5428497.455op/s] or [-0.011%; +0.011%] | None | None | None |
| normalization/normalize_service/normalize_service/[empty string] | execution_time | [46.710µs; 46.740µs] or [-0.032%; +0.032%] | None | None | None |
| normalization/normalize_service/normalize_service/[empty string] | throughput | [21395142.427op/s; 21408864.125op/s] or [-0.032%; +0.032%] | None | None | None |
| normalization/normalize_service/normalize_service/test_ASCII | execution_time | [44.738µs; 44.794µs] or [-0.063%; +0.063%] | None | None | None |
| normalization/normalize_service/normalize_service/test_ASCII | throughput | [22324983.415op/s; 22352963.943op/s] or [-0.063%; +0.063%] | None | None | None |
Group 6
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 1487913 | 1726064817 | alexjf/remove-soname |
| 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.636µs | 2.691µs ± 0.018µs | 2.689µs ± 0.010µs | 2.705µs | 2.715µs | 2.719µs | 2.723µs | 1.25% | -0.949 | 1.356 | 0.67% | 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.688µs; 2.693µs] or [-0.093%; +0.093%] | None | None | None |
Group 7
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 1487913 | 1726064817 | alexjf/remove-soname |
| 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 | 142.931µs | 144.234µs ± 0.534µs | 144.165µs ± 0.222µs | 144.410µs | 144.785µs | 145.605µs | 149.514µs | 3.71% | 5.146 | 47.029 | 0.37% | 0.038µ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 | [144.160µs; 144.308µs] or [-0.051%; +0.051%] | None | None | None |
Group 8
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 1487913 | 1726064817 | alexjf/remove-soname |
| 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 | 1.212µs | 1.213µs ± 0.001µs | 1.213µs ± 0.000µs | 1.213µs | 1.213µs | 1.214µs | 1.220µs | 0.61% | 5.571 | 50.411 | 0.06% | 0.000µs | 1 | 200 |
| credit_card/is_card_number/ | throughput | 819723697.061op/s | 824653309.198op/s ± 491523.411op/s | 824741649.528op/s ± 227964.224op/s | 824958680.802op/s | 825060397.312op/s | 825103570.459op/s | 825142764.304op/s | 0.05% | -5.533 | 49.882 | 0.06% | 34755.954op/s | 1 | 200 |
| credit_card/is_card_number/ 3782-8224-6310-005 | execution_time | 107.963µs | 109.168µs ± 0.794µs | 108.966µs ± 0.465µs | 109.534µs | 110.693µs | 111.744µs | 111.818µs | 2.62% | 1.136 | 1.069 | 0.73% | 0.056µs | 1 | 200 |
| credit_card/is_card_number/ 3782-8224-6310-005 | throughput | 8943121.359op/s | 9160646.080op/s ± 66111.679op/s | 9177214.837op/s ± 39123.962op/s | 9211699.780op/s | 9235751.178op/s | 9249681.781op/s | 9262450.218op/s | 0.93% | -1.098 | 0.950 | 0.72% | 4674.802op/s | 1 | 200 |
| credit_card/is_card_number/ 378282246310005 | execution_time | 102.420µs | 103.147µs ± 0.719µs | 102.924µs ± 0.293µs | 103.283µs | 104.792µs | 105.420µs | 105.682µs | 2.68% | 1.638 | 2.041 | 0.70% | 0.051µs | 1 | 200 |
| credit_card/is_card_number/ 378282246310005 | throughput | 9462336.389op/s | 9695376.660op/s ± 66804.072op/s | 9715907.373op/s ± 27772.484op/s | 9741478.974op/s | 9757135.985op/s | 9761019.221op/s | 9763706.230op/s | 0.49% | -1.610 | 1.937 | 0.69% | 4723.761op/s | 1 | 200 |
| credit_card/is_card_number/37828224631 | execution_time | 1.212µs | 1.213µs ± 0.001µs | 1.213µs ± 0.000µs | 1.213µs | 1.213µs | 1.214µs | 1.218µs | 0.46% | 4.144 | 34.488 | 0.05% | 0.000µs | 1 | 200 |
| credit_card/is_card_number/37828224631 | throughput | 820943726.103op/s | 824658821.144op/s ± 403658.759op/s | 824683617.255op/s ± 235987.836op/s | 824935054.236op/s | 825033172.313op/s | 825118548.668op/s | 825381124.811op/s | 0.08% | -4.116 | 34.138 | 0.05% | 28542.985op/s | 1 | 200 |
| credit_card/is_card_number/378282246310005 | execution_time | 98.344µs | 99.153µs ± 0.626µs | 98.960µs ± 0.284µs | 99.383µs | 100.527µs | 101.367µs | 101.716µs | 2.78% | 1.741 | 3.253 | 0.63% | 0.044µs | 1 | 200 |
| credit_card/is_card_number/378282246310005 | throughput | 9831265.312op/s | 10085827.739op/s ± 63020.023op/s | 10105062.646op/s ± 29055.385op/s | 10129551.469op/s | 10147749.936op/s | 10151598.250op/s | 10168382.371op/s | 0.63% | -1.700 | 3.063 | 0.62% | 4456.189op/s | 1 | 200 |
| credit_card/is_card_number/37828224631000521389798 | execution_time | 109.142µs | 109.511µs ± 0.237µs | 109.492µs ± 0.193µs | 109.680µs | 109.937µs | 110.051µs | 110.249µs | 0.69% | 0.586 | -0.356 | 0.22% | 0.017µs | 1 | 200 |
| credit_card/is_card_number/37828224631000521389798 | throughput | 9070339.497op/s | 9131547.208op/s ± 19737.560op/s | 9133077.380op/s ± 16092.836op/s | 9149270.043op/s | 9155445.576op/s | 9159606.575op/s | 9162370.146op/s | 0.32% | -0.577 | -0.375 | 0.22% | 1395.656op/s | 1 | 200 |
| credit_card/is_card_number/x371413321323331 | execution_time | 19.250µs | 19.403µs ± 0.119µs | 19.403µs ± 0.094µs | 19.479µs | 19.625µs | 19.678µs | 19.917µs | 2.65% | 0.770 | 0.773 | 0.61% | 0.008µs | 1 | 200 |
| credit_card/is_card_number/x371413321323331 | throughput | 50207588.314op/s | 51541473.618op/s ± 314067.119op/s | 51538318.364op/s ± 250604.431op/s | 51827183.527op/s | 51935312.211op/s | 51942121.969op/s | 51947441.745op/s | 0.79% | -0.731 | 0.624 | 0.61% | 22207.899op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ | execution_time | 1.212µs | 1.213µs ± 0.000µs | 1.213µs ± 0.000µs | 1.213µs | 1.213µs | 1.214µs | 1.214µs | 0.09% | 0.275 | -0.448 | 0.03% | 0.000µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ | throughput | 823894231.442op/s | 824650935.728op/s ± 250030.574op/s | 824619104.866op/s ± 200932.216op/s | 824877224.905op/s | 825004377.118op/s | 825079952.619op/s | 825103310.498op/s | 0.06% | -0.274 | -0.450 | 0.03% | 17679.831op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | execution_time | 90.327µs | 97.639µs ± 2.228µs | 98.027µs ± 1.494µs | 99.331µs | 100.446µs | 101.345µs | 101.403µs | 3.44% | -0.734 | 0.164 | 2.28% | 0.158µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | throughput | 9861604.126op/s | 10247161.086op/s ± 238093.026op/s | 10201308.264op/s ± 154815.005op/s | 10380516.705op/s | 10711084.866op/s | 10850950.305op/s | 11070850.703op/s | 8.52% | 0.849 | 0.452 | 2.32% | 16835.719op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 378282246310005 | execution_time | 82.974µs | 84.948µs ± 0.559µs | 85.012µs ± 0.322µs | 85.323µs | 85.755µs | 86.017µs | 87.432µs | 2.85% | -0.156 | 1.980 | 0.66% | 0.039µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 378282246310005 | throughput | 11437449.991op/s | 11772404.456op/s ± 77511.880op/s | 11763062.221op/s ± 44594.341op/s | 11808561.347op/s | 11909076.483op/s | 11964999.853op/s | 12051997.629op/s | 2.46% | 0.232 | 1.878 | 0.66% | 5480.918op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631 | execution_time | 1.212µs | 1.213µs ± 0.000µs | 1.213µs ± 0.000µs | 1.213µs | 1.214µs | 1.214µs | 1.214µs | 0.11% | 0.535 | -0.492 | 0.04% | 0.000µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631 | throughput | 823681929.136op/s | 824601997.747op/s ± 337317.356op/s | 824599605.030op/s ± 291604.756op/s | 824908805.041op/s | 825026314.411op/s | 825075368.889op/s | 825133360.041op/s | 0.06% | -0.534 | -0.495 | 0.04% | 23851.939op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/378282246310005 | execution_time | 79.811µs | 81.294µs ± 0.508µs | 81.319µs ± 0.280µs | 81.587µs | 82.021µs | 82.416µs | 83.438µs | 2.61% | 0.074 | 1.435 | 0.62% | 0.036µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/378282246310005 | throughput | 11984974.708op/s | 12301533.244op/s ± 76865.333op/s | 12297275.348op/s ± 42282.293op/s | 12341317.100op/s | 12436642.211op/s | 12483435.413op/s | 12529659.422op/s | 1.89% | -0.011 | 1.337 | 0.62% | 5435.200op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | execution_time | 108.979µs | 109.538µs ± 0.376µs | 109.457µs ± 0.171µs | 109.664µs | 110.051µs | 110.587µs | 112.857µs | 3.11% | 4.062 | 29.805 | 0.34% | 0.027µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | throughput | 8860780.097op/s | 9129355.182op/s ± 30942.997op/s | 9136007.294op/s ± 14286.599op/s | 9147804.003op/s | 9157903.368op/s | 9167542.802op/s | 9176055.084op/s | 0.44% | -3.909 | 27.970 | 0.34% | 2188.000op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/x371413321323331 | execution_time | 19.248µs | 19.311µs ± 0.092µs | 19.265µs ± 0.012µs | 19.338µs | 19.471µs | 19.666µs | 19.726µs | 2.39% | 2.238 | 5.499 | 0.48% | 0.007µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/x371413321323331 | throughput | 50694366.303op/s | 51784588.639op/s ± 244024.402op/s | 51906924.384op/s ± 31213.792op/s | 51930678.048op/s | 51944154.354op/s | 51950713.248op/s | 51953470.512op/s | 0.09% | -2.203 | 5.284 | 0.47% | 17255.131op/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 | [1.213µs; 1.213µs] or [-0.008%; +0.008%] | None | None | None |
| credit_card/is_card_number/ | throughput | [824585188.780op/s; 824721429.615op/s] or [-0.008%; +0.008%] | None | None | None |
| credit_card/is_card_number/ 3782-8224-6310-005 | execution_time | [109.058µs; 109.278µs] or [-0.101%; +0.101%] | None | None | None |
| credit_card/is_card_number/ 3782-8224-6310-005 | throughput | [9151483.637op/s; 9169808.523op/s] or [-0.100%; +0.100%] | None | None | None |
| credit_card/is_card_number/ 378282246310005 | execution_time | [103.047µs; 103.246µs] or [-0.097%; +0.097%] | None | None | None |
| credit_card/is_card_number/ 378282246310005 | throughput | [9686118.258op/s; 9704635.062op/s] or [-0.095%; +0.095%] | None | None | None |
| credit_card/is_card_number/37828224631 | execution_time | [1.213µs; 1.213µs] or [-0.007%; +0.007%] | None | None | None |
| credit_card/is_card_number/37828224631 | throughput | [824602877.922op/s; 824714764.365op/s] or [-0.007%; +0.007%] | None | None | None |
| credit_card/is_card_number/378282246310005 | execution_time | [99.066µs; 99.240µs] or [-0.088%; +0.088%] | None | None | None |
| credit_card/is_card_number/378282246310005 | throughput | [10077093.770op/s; 10094561.708op/s] or [-0.087%; +0.087%] | None | None | None |
| credit_card/is_card_number/37828224631000521389798 | execution_time | [109.478µs; 109.544µs] or [-0.030%; +0.030%] | None | None | None |
| credit_card/is_card_number/37828224631000521389798 | throughput | [9128811.773op/s; 9134282.644op/s] or [-0.030%; +0.030%] | None | None | None |
| credit_card/is_card_number/x371413321323331 | execution_time | [19.386µs; 19.419µs] or [-0.085%; +0.085%] | None | None | None |
| credit_card/is_card_number/x371413321323331 | throughput | [51497946.936op/s; 51585000.300op/s] or [-0.084%; +0.084%] | None | None | None |
| credit_card/is_card_number_no_luhn/ | execution_time | [1.213µs; 1.213µs] or [-0.004%; +0.004%] | None | None | None |
| credit_card/is_card_number_no_luhn/ | throughput | [824616283.895op/s; 824685587.561op/s] or [-0.004%; +0.004%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | execution_time | [97.331µs; 97.948µs] or [-0.316%; +0.316%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | throughput | [10214163.682op/s; 10280158.489op/s] or [-0.322%; +0.322%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 378282246310005 | execution_time | [84.871µs; 85.025µs] or [-0.091%; +0.091%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 378282246310005 | throughput | [11761662.055op/s; 11783146.858op/s] or [-0.091%; +0.091%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631 | execution_time | [1.213µs; 1.213µs] or [-0.006%; +0.006%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631 | throughput | [824555248.806op/s; 824648746.689op/s] or [-0.006%; +0.006%] | None | None | None |
| credit_card/is_card_number_no_luhn/378282246310005 | execution_time | [81.223µs; 81.364µs] or [-0.087%; +0.087%] | None | None | None |
| credit_card/is_card_number_no_luhn/378282246310005 | throughput | [12290880.448op/s; 12312186.040op/s] or [-0.087%; +0.087%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | execution_time | [109.486µs; 109.590µs] or [-0.048%; +0.048%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | throughput | [9125066.781op/s; 9133643.584op/s] or [-0.047%; +0.047%] | None | None | None |
| credit_card/is_card_number_no_luhn/x371413321323331 | execution_time | [19.298µs; 19.324µs] or [-0.066%; +0.066%] | None | None | None |
| credit_card/is_card_number_no_luhn/x371413321323331 | throughput | [51750769.203op/s; 51818408.074op/s] or [-0.065%; +0.065%] | None | None | None |
Group 9
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 1487913 | 1726064817 | alexjf/remove-soname |
| 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 | 1.166µs | 1.343µs ± 0.058µs | 1.365µs ± 0.034µs | 1.387µs | 1.422µs | 1.437µs | 1.437µs | 5.31% | -0.679 | 0.049 | 4.30% | 0.004µs | 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 | [1.335µs; 1.351µs] or [-0.598%; +0.598%] | None | None | None |
Group 10
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 1487913 | 1726064817 | alexjf/remove-soname |
| 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 | 291.755ns | 305.054ns ± 13.932ns | 298.340ns ± 5.150ns | 312.784ns | 332.589ns | 341.507ns | 341.582ns | 14.49% | 1.104 | 0.015 | 4.56% | 0.985ns | 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 | [303.123ns; 306.985ns] or [-0.633%; +0.633%] | None | None | None |
Group 11
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 1487913 | 1726064817 | alexjf/remove-soname |
| 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.941µs | 24.073µs ± 11.162µs | 18.664µs ± 0.152µs | 19.894µs | 44.828µs | 49.505µs | 104.463µs | 459.70% | 3.018 | 14.297 | 46.25% | 0.789µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| two way interface | execution_time | [22.526µs; 25.620µs] or [-6.426%; +6.426%] | None | None | None |
Group 12
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 1487913 | 1726064817 | alexjf/remove-soname |
| 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 | 280.803µs | 282.502µs ± 1.289µs | 282.243µs ± 0.765µs | 283.069µs | 285.062µs | 286.833µs | 287.262µs | 1.78% | 1.402 | 2.181 | 0.46% | 0.091µs | 1 | 200 |
| normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... | throughput | 3481140.561op/s | 3539866.881op/s ± 16051.582op/s | 3543046.038op/s ± 9599.110op/s | 3551856.512op/s | 3557295.292op/s | 3559915.962op/s | 3561219.450op/s | 0.51% | -1.372 | 2.069 | 0.45% | 1135.018op/s | 1 | 200 |
| normalization/normalize_name/normalize_name/bad-name | execution_time | 27.353µs | 27.543µs ± 0.083µs | 27.540µs ± 0.058µs | 27.605µs | 27.675µs | 27.723µs | 27.740µs | 0.73% | 0.035 | -0.563 | 0.30% | 0.006µs | 1 | 200 |
| normalization/normalize_name/normalize_name/bad-name | throughput | 36048818.262op/s | 36307472.932op/s ± 109437.893op/s | 36310814.439op/s ± 76329.434op/s | 36376667.697op/s | 36482460.945op/s | 36523246.359op/s | 36558985.509op/s | 0.68% | -0.022 | -0.566 | 0.30% | 7738.428op/s | 1 | 200 |
| normalization/normalize_name/normalize_name/good | execution_time | 16.812µs | 16.859µs ± 0.034µs | 16.851µs ± 0.022µs | 16.878µs | 16.930µs | 16.947µs | 16.959µs | 0.64% | 0.868 | -0.087 | 0.20% | 0.002µs | 1 | 200 |
| normalization/normalize_name/normalize_name/good | throughput | 58964426.118op/s | 59315687.344op/s ± 119972.737op/s | 59343156.040op/s ± 78051.656op/s | 59411521.465op/s | 59458483.114op/s | 59481336.244op/s | 59482750.002op/s | 0.24% | -0.860 | -0.102 | 0.20% | 8483.354op/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 | [282.324µs; 282.681µs] or [-0.063%; +0.063%] | None | None | None |
| normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... | throughput | [3537642.286op/s; 3542091.476op/s] or [-0.063%; +0.063%] | None | None | None |
| normalization/normalize_name/normalize_name/bad-name | execution_time | [27.531µs; 27.554µs] or [-0.042%; +0.042%] | None | None | None |
| normalization/normalize_name/normalize_name/bad-name | throughput | [36292305.893op/s; 36322639.972op/s] or [-0.042%; +0.042%] | None | None | None |
| normalization/normalize_name/normalize_name/good | execution_time | [16.854µs; 16.864µs] or [-0.028%; +0.028%] | None | None | None |
| normalization/normalize_name/normalize_name/good | throughput | [59299060.277op/s; 59332314.412op/s] or [-0.028%; +0.028%] | None | None | None |
Baseline
Omitted due to size.
Closing as superceded by #628