├── .clog.toml ├── .config └── nextest.toml ├── .envrc ├── .github ├── FUNDING.yml └── workflows │ ├── ci.yml │ └── release.yml ├── .gitignore ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE ├── README.md ├── assets ├── async-mpsc-integer-8c882b0 │ ├── 10 │ │ └── report │ │ │ ├── index.html │ │ │ └── violin.svg │ ├── 50 │ │ └── report │ │ │ ├── index.html │ │ │ └── violin.svg │ ├── 100 │ │ └── report │ │ │ ├── index.html │ │ │ └── violin.svg │ ├── ThingBuf │ │ ├── 10 │ │ │ ├── base │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ ├── raw.csv │ │ │ │ ├── sample.json │ │ │ │ └── tukey.json │ │ │ ├── change │ │ │ │ └── estimates.json │ │ │ ├── new │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ ├── raw.csv │ │ │ │ ├── sample.json │ │ │ │ └── tukey.json │ │ │ └── report │ │ │ │ ├── MAD.svg │ │ │ │ ├── SD.svg │ │ │ │ ├── both │ │ │ │ ├── pdf.svg │ │ │ │ └── regression.svg │ │ │ │ ├── change │ │ │ │ ├── mean.svg │ │ │ │ ├── median.svg │ │ │ │ └── t-test.svg │ │ │ │ ├── index.html │ │ │ │ ├── mean.svg │ │ │ │ ├── median.svg │ │ │ │ ├── pdf.svg │ │ │ │ ├── pdf_small.svg │ │ │ │ ├── regression.svg │ │ │ │ ├── regression_small.svg │ │ │ │ ├── relative_pdf_small.svg │ │ │ │ ├── relative_regression_small.svg │ │ │ │ ├── slope.svg │ │ │ │ └── typical.svg │ │ ├── 50 │ │ │ ├── base │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ ├── raw.csv │ │ │ │ ├── sample.json │ │ │ │ └── tukey.json │ │ │ ├── change │ │ │ │ └── estimates.json │ │ │ ├── new │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ ├── raw.csv │ │ │ │ ├── sample.json │ │ │ │ └── tukey.json │ │ │ └── report │ │ │ │ ├── MAD.svg │ │ │ │ ├── SD.svg │ │ │ │ ├── both │ │ │ │ ├── pdf.svg │ │ │ │ └── regression.svg │ │ │ │ ├── change │ │ │ │ ├── mean.svg │ │ │ │ ├── median.svg │ │ │ │ └── t-test.svg │ │ │ │ ├── index.html │ │ │ │ ├── mean.svg │ │ │ │ ├── median.svg │ │ │ │ ├── pdf.svg │ │ │ │ ├── pdf_small.svg │ │ │ │ ├── regression.svg │ │ │ │ ├── regression_small.svg │ │ │ │ ├── relative_pdf_small.svg │ │ │ │ ├── relative_regression_small.svg │ │ │ │ ├── slope.svg │ │ │ │ └── typical.svg │ │ ├── 100 │ │ │ ├── base │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ ├── raw.csv │ │ │ │ ├── sample.json │ │ │ │ └── tukey.json │ │ │ ├── change │ │ │ │ └── estimates.json │ │ │ ├── new │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ ├── raw.csv │ │ │ │ ├── sample.json │ │ │ │ └── tukey.json │ │ │ └── report │ │ │ │ ├── MAD.svg │ │ │ │ ├── SD.svg │ │ │ │ ├── both │ │ │ │ ├── pdf.svg │ │ │ │ └── regression.svg │ │ │ │ ├── change │ │ │ │ ├── mean.svg │ │ │ │ ├── median.svg │ │ │ │ └── t-test.svg │ │ │ │ ├── index.html │ │ │ │ ├── mean.svg │ │ │ │ ├── median.svg │ │ │ │ ├── pdf.svg │ │ │ │ ├── pdf_small.svg │ │ │ │ ├── regression.svg │ │ │ │ ├── regression_small.svg │ │ │ │ ├── relative_pdf_small.svg │ │ │ │ ├── relative_regression_small.svg │ │ │ │ ├── slope.svg │ │ │ │ └── typical.svg │ │ └── report │ │ │ ├── index.html │ │ │ ├── lines.svg │ │ │ └── violin.svg │ ├── async_std__channel__bounded │ │ ├── 10 │ │ │ ├── base │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ ├── raw.csv │ │ │ │ ├── sample.json │ │ │ │ └── tukey.json │ │ │ ├── new │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ ├── raw.csv │ │ │ │ ├── sample.json │ │ │ │ └── tukey.json │ │ │ └── report │ │ │ │ ├── MAD.svg │ │ │ │ ├── SD.svg │ │ │ │ ├── index.html │ │ │ │ ├── mean.svg │ │ │ │ ├── median.svg │ │ │ │ ├── pdf.svg │ │ │ │ ├── pdf_small.svg │ │ │ │ ├── regression.svg │ │ │ │ ├── regression_small.svg │ │ │ │ ├── slope.svg │ │ │ │ └── typical.svg │ │ ├── 50 │ │ │ ├── base │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ ├── raw.csv │ │ │ │ ├── sample.json │ │ │ │ └── tukey.json │ │ │ ├── new │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ ├── raw.csv │ │ │ │ ├── sample.json │ │ │ │ └── tukey.json │ │ │ └── report │ │ │ │ ├── MAD.svg │ │ │ │ ├── SD.svg │ │ │ │ ├── index.html │ │ │ │ ├── mean.svg │ │ │ │ ├── median.svg │ │ │ │ ├── pdf.svg │ │ │ │ ├── pdf_small.svg │ │ │ │ ├── regression.svg │ │ │ │ ├── regression_small.svg │ │ │ │ ├── slope.svg │ │ │ │ └── typical.svg │ │ ├── 100 │ │ │ ├── base │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ ├── raw.csv │ │ │ │ ├── sample.json │ │ │ │ └── tukey.json │ │ │ ├── new │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ ├── raw.csv │ │ │ │ ├── sample.json │ │ │ │ └── tukey.json │ │ │ └── report │ │ │ │ ├── MAD.svg │ │ │ │ ├── SD.svg │ │ │ │ ├── index.html │ │ │ │ ├── mean.svg │ │ │ │ ├── median.svg │ │ │ │ ├── pdf.svg │ │ │ │ ├── pdf_small.svg │ │ │ │ ├── regression.svg │ │ │ │ ├── regression_small.svg │ │ │ │ ├── slope.svg │ │ │ │ └── typical.svg │ │ └── report │ │ │ ├── index.html │ │ │ ├── lines.svg │ │ │ └── violin.svg │ ├── futures__channel__mpsc │ │ ├── 10 │ │ │ ├── base │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ ├── raw.csv │ │ │ │ ├── sample.json │ │ │ │ └── tukey.json │ │ │ ├── new │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ ├── raw.csv │ │ │ │ ├── sample.json │ │ │ │ └── tukey.json │ │ │ └── report │ │ │ │ ├── MAD.svg │ │ │ │ ├── SD.svg │ │ │ │ ├── index.html │ │ │ │ ├── mean.svg │ │ │ │ ├── median.svg │ │ │ │ ├── pdf.svg │ │ │ │ ├── pdf_small.svg │ │ │ │ ├── regression.svg │ │ │ │ ├── regression_small.svg │ │ │ │ ├── slope.svg │ │ │ │ └── typical.svg │ │ ├── 50 │ │ │ ├── base │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ ├── raw.csv │ │ │ │ ├── sample.json │ │ │ │ └── tukey.json │ │ │ ├── new │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ ├── raw.csv │ │ │ │ ├── sample.json │ │ │ │ └── tukey.json │ │ │ └── report │ │ │ │ ├── MAD.svg │ │ │ │ ├── SD.svg │ │ │ │ ├── index.html │ │ │ │ ├── mean.svg │ │ │ │ ├── median.svg │ │ │ │ ├── pdf.svg │ │ │ │ ├── pdf_small.svg │ │ │ │ ├── regression.svg │ │ │ │ ├── regression_small.svg │ │ │ │ ├── slope.svg │ │ │ │ └── typical.svg │ │ ├── 100 │ │ │ ├── base │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ ├── raw.csv │ │ │ │ ├── sample.json │ │ │ │ └── tukey.json │ │ │ ├── new │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ ├── raw.csv │ │ │ │ ├── sample.json │ │ │ │ └── tukey.json │ │ │ └── report │ │ │ │ ├── MAD.svg │ │ │ │ ├── SD.svg │ │ │ │ ├── index.html │ │ │ │ ├── mean.svg │ │ │ │ ├── median.svg │ │ │ │ ├── pdf.svg │ │ │ │ ├── pdf_small.svg │ │ │ │ ├── regression.svg │ │ │ │ ├── regression_small.svg │ │ │ │ ├── slope.svg │ │ │ │ └── typical.svg │ │ └── report │ │ │ ├── index.html │ │ │ ├── lines.svg │ │ │ └── violin.svg │ ├── report │ │ ├── index.html │ │ ├── lines.svg │ │ └── violin.svg │ └── tokio__sync__mpsc │ │ ├── 10 │ │ ├── base │ │ │ ├── benchmark.json │ │ │ ├── estimates.json │ │ │ ├── raw.csv │ │ │ ├── sample.json │ │ │ └── tukey.json │ │ ├── new │ │ │ ├── benchmark.json │ │ │ ├── estimates.json │ │ │ ├── raw.csv │ │ │ ├── sample.json │ │ │ └── tukey.json │ │ └── report │ │ │ ├── MAD.svg │ │ │ ├── SD.svg │ │ │ ├── index.html │ │ │ ├── mean.svg │ │ │ ├── median.svg │ │ │ ├── pdf.svg │ │ │ ├── pdf_small.svg │ │ │ ├── regression.svg │ │ │ ├── regression_small.svg │ │ │ ├── slope.svg │ │ │ └── typical.svg │ │ ├── 50 │ │ ├── base │ │ │ ├── benchmark.json │ │ │ ├── estimates.json │ │ │ ├── raw.csv │ │ │ ├── sample.json │ │ │ └── tukey.json │ │ ├── new │ │ │ ├── benchmark.json │ │ │ ├── estimates.json │ │ │ ├── raw.csv │ │ │ ├── sample.json │ │ │ └── tukey.json │ │ └── report │ │ │ ├── MAD.svg │ │ │ ├── SD.svg │ │ │ ├── index.html │ │ │ ├── mean.svg │ │ │ ├── median.svg │ │ │ ├── pdf.svg │ │ │ ├── pdf_small.svg │ │ │ ├── regression.svg │ │ │ ├── regression_small.svg │ │ │ ├── slope.svg │ │ │ └── typical.svg │ │ ├── 100 │ │ ├── base │ │ │ ├── benchmark.json │ │ │ ├── estimates.json │ │ │ ├── raw.csv │ │ │ ├── sample.json │ │ │ └── tukey.json │ │ ├── new │ │ │ ├── benchmark.json │ │ │ ├── estimates.json │ │ │ ├── raw.csv │ │ │ ├── sample.json │ │ │ └── tukey.json │ │ └── report │ │ │ ├── MAD.svg │ │ │ ├── SD.svg │ │ │ ├── index.html │ │ │ ├── mean.svg │ │ │ ├── median.svg │ │ │ ├── pdf.svg │ │ │ ├── pdf_small.svg │ │ │ ├── regression.svg │ │ │ ├── regression_small.svg │ │ │ ├── slope.svg │ │ │ └── typical.svg │ │ └── report │ │ ├── index.html │ │ ├── lines.svg │ │ └── violin.svg └── async_mpsc_integer │ ├── lines.svg │ └── violin.svg ├── bench ├── Cargo.toml ├── benches │ ├── async_mpsc.rs │ ├── async_mpsc_nowait.rs │ ├── async_mpsc_utils.rs │ ├── async_spsc.rs │ └── sync_spsc.rs └── src │ └── lib.rs ├── bin ├── loom └── miri ├── default.nix ├── mpsc_perf_comparison.md ├── netlify.toml ├── shell.nix ├── src ├── lib.rs ├── loom.rs ├── macros.rs ├── mpsc.rs ├── mpsc │ ├── async_impl.rs │ ├── blocking.rs │ ├── errors.rs │ ├── tests.rs │ └── tests │ │ ├── mpsc_async.rs │ │ └── mpsc_blocking.rs ├── recycling.rs ├── static_thingbuf.rs ├── thingbuf.rs ├── thingbuf │ └── tests.rs ├── util.rs ├── util │ ├── mutex.rs │ ├── mutex │ │ ├── loom_impl.rs │ │ └── spin_impl.rs │ └── panic.rs ├── wait.rs └── wait │ ├── cell.rs │ └── queue.rs └── tests ├── debug.rs ├── mpsc_async.rs ├── mpsc_blocking.rs └── static_storage.rs /.clog.toml: -------------------------------------------------------------------------------- 1 | [clog] 2 | # A repository link with the trailing '.git' which will be used to generate 3 | # all commit and issue links 4 | repository = "https://github.com/hawkw/thingbuf" 5 | 6 | # specify the style of commit links to generate, defaults to "github" if omitted 7 | link-style = "github" 8 | 9 | # The preferred way to set a constant changelog. This file will be read for old changelog 10 | # data, then prepended to for new changelog data. It's the equivilant to setting 11 | # both infile and outfile to the same file. 12 | # 13 | # Do not use with outfile or infile fields! 14 | # 15 | # Defaults to stdout when omitted 16 | changelog = "CHANGELOG.md" 17 | 18 | from-latest-tag = true -------------------------------------------------------------------------------- /.config/nextest.toml: -------------------------------------------------------------------------------- 1 | [profile.loom] 2 | # loom tests might take a long time; don't have `nextest` print "slow" messages. 3 | slow-timeout = "10m" -------------------------------------------------------------------------------- /.envrc: -------------------------------------------------------------------------------- 1 | use nix; -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [hawkw] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | push: 5 | tags: 6 | - v[0-9]+.* 7 | 8 | jobs: 9 | create-release: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/checkout@v2 13 | - uses: taiki-e/create-gh-release-action@v1 14 | with: 15 | changelog: CHANGELOG.md 16 | env: 17 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | Cargo.lock 3 | .direnv 4 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | members = [ 3 | ".", 4 | "bench" 5 | ] 6 | 7 | [package] 8 | name = "thingbuf" 9 | version = "0.1.6" 10 | edition = "2021" 11 | rust-version = "1.57.0" 12 | authors = ["Eliza Weisman "] 13 | license = "MIT" 14 | repository = "https://github.com/hawkw/thingbuf" 15 | homepage = "https://github.com/hawkw/thingbuf" 16 | description = """ 17 | I'm at the buffer pool. I'm at the MPSC channel. I'm at the combination MPSC channel and buffer pool. 18 | """ 19 | keywords = ["lock-free", "queue", "channel", "mpsc", "pool"] 20 | categories = ["asynchronous", "concurrency", "data-structures", "no-std"] 21 | exclude = ["/.github", "/.cargo", "/bin", "/bench", "/assets"] 22 | 23 | [features] 24 | std = ["alloc", "parking_lot"] 25 | alloc = [] 26 | default = ["std"] 27 | static = [] 28 | 29 | [dependencies] 30 | pin-project = "1" 31 | parking_lot = { version = "0.12", optional = true, default-features = false } 32 | 33 | [dev-dependencies] 34 | tokio = { version = "1.14.0", features = ["rt", "rt-multi-thread", "macros", "sync"] } 35 | # So that we can use `poll_fn` in tests. 36 | futures-util = { version = "0.3", default-features = false } 37 | 38 | [target.'cfg(loom)'.dev-dependencies] 39 | loom = { version = "0.5.6", features = ["checkpoint", "futures"] } 40 | tracing-subscriber = { version = "0.3", default-features = false, features = ["std", "fmt"] } 41 | tracing = { version = "0.1", default-features = false, features = ["std"] } 42 | 43 | # Custom profile for Loom tests: enable release optimizations so that the loom 44 | # tests are less slow, but don't disable debug assertions. 45 | [profile.loom] 46 | inherits = "test" 47 | lto = true 48 | opt-level = 3 49 | 50 | [patch.crates-io] 51 | loom = { git = "https://github.com/tokio-rs/loom", rev = "a93bf2390e0fcfdb7c5899b31db0e4e795ab4aab" } 52 | 53 | [package.metadata.docs.rs] 54 | all-features = true 55 | rustdoc-args = ["--cfg", "docsrs"] 56 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Eliza Weisman 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/10/base/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"async/mpsc_integer","function_id":"ThingBuf","value_str":"10","throughput":null,"full_id":"async/mpsc_integer/ThingBuf/10","directory_name":"async_mpsc_integer/ThingBuf/10","title":"async/mpsc_integer/ThingBuf/10"} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/10/base/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":213727.186187372,"upper_bound":222385.90136041192},"point_estimate":218056.67840473316,"standard_error":2213.3507447318257},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":213403.27522580646,"upper_bound":229057.2736111111},"point_estimate":223887.32873134327,"standard_error":3876.6223656697975},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":15322.212022243995,"upper_bound":31754.25173559934},"point_estimate":23462.184110785212,"standard_error":4270.211891995671},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":214942.5375318492,"upper_bound":224861.23445650926},"point_estimate":219989.42972188562,"standard_error":2522.4541673900326},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":19911.262143222673,"upper_bound":24266.360584011614},"point_estimate":22194.0135981587,"standard_error":1112.0369958676945}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/10/base/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | async/mpsc_integer,ThingBuf,10,,,945048.0,ns,5 3 | async/mpsc_integer,ThingBuf,10,,,1905406.0,ns,10 4 | async/mpsc_integer,ThingBuf,10,,,3578472.0,ns,15 5 | async/mpsc_integer,ThingBuf,10,,,4749507.0,ns,20 6 | async/mpsc_integer,ThingBuf,10,,,5703573.0,ns,25 7 | async/mpsc_integer,ThingBuf,10,,,7269546.0,ns,30 8 | async/mpsc_integer,ThingBuf,10,,,7633555.0,ns,35 9 | async/mpsc_integer,ThingBuf,10,,,7709729.0,ns,40 10 | async/mpsc_integer,ThingBuf,10,,,10496502.0,ns,45 11 | async/mpsc_integer,ThingBuf,10,,,12169368.0,ns,50 12 | async/mpsc_integer,ThingBuf,10,,,10474821.0,ns,55 13 | async/mpsc_integer,ThingBuf,10,,,14404777.0,ns,60 14 | async/mpsc_integer,ThingBuf,10,,,13476121.0,ns,65 15 | async/mpsc_integer,ThingBuf,10,,,13931262.0,ns,70 16 | async/mpsc_integer,ThingBuf,10,,,15276747.0,ns,75 17 | async/mpsc_integer,ThingBuf,10,,,18203926.0,ns,80 18 | async/mpsc_integer,ThingBuf,10,,,15923061.0,ns,85 19 | async/mpsc_integer,ThingBuf,10,,,21824998.0,ns,90 20 | async/mpsc_integer,ThingBuf,10,,,22212341.0,ns,95 21 | async/mpsc_integer,ThingBuf,10,,,22367535.0,ns,100 22 | async/mpsc_integer,ThingBuf,10,,,25043288.0,ns,105 23 | async/mpsc_integer,ThingBuf,10,,,21234371.0,ns,110 24 | async/mpsc_integer,ThingBuf,10,,,26381110.0,ns,115 25 | async/mpsc_integer,ThingBuf,10,,,23072450.0,ns,120 26 | async/mpsc_integer,ThingBuf,10,,,29220122.0,ns,125 27 | async/mpsc_integer,ThingBuf,10,,,24044538.0,ns,130 28 | async/mpsc_integer,ThingBuf,10,,,34027218.0,ns,135 29 | async/mpsc_integer,ThingBuf,10,,,32406662.0,ns,140 30 | async/mpsc_integer,ThingBuf,10,,,31952973.0,ns,145 31 | async/mpsc_integer,ThingBuf,10,,,26506888.0,ns,150 32 | async/mpsc_integer,ThingBuf,10,,,32909694.0,ns,155 33 | async/mpsc_integer,ThingBuf,10,,,34243277.0,ns,160 34 | async/mpsc_integer,ThingBuf,10,,,30554437.0,ns,165 35 | async/mpsc_integer,ThingBuf,10,,,38916961.0,ns,170 36 | async/mpsc_integer,ThingBuf,10,,,40957403.0,ns,175 37 | async/mpsc_integer,ThingBuf,10,,,43204143.0,ns,180 38 | async/mpsc_integer,ThingBuf,10,,,34374175.0,ns,185 39 | async/mpsc_integer,ThingBuf,10,,,43639778.0,ns,190 40 | async/mpsc_integer,ThingBuf,10,,,37808173.0,ns,195 41 | async/mpsc_integer,ThingBuf,10,,,36302554.0,ns,200 42 | async/mpsc_integer,ThingBuf,10,,,45555492.0,ns,205 43 | async/mpsc_integer,ThingBuf,10,,,41153764.0,ns,210 44 | async/mpsc_integer,ThingBuf,10,,,50856825.0,ns,215 45 | async/mpsc_integer,ThingBuf,10,,,49996777.0,ns,220 46 | async/mpsc_integer,ThingBuf,10,,,55407385.0,ns,225 47 | async/mpsc_integer,ThingBuf,10,,,52604281.0,ns,230 48 | async/mpsc_integer,ThingBuf,10,,,45267659.0,ns,235 49 | async/mpsc_integer,ThingBuf,10,,,47946127.0,ns,240 50 | async/mpsc_integer,ThingBuf,10,,,45133224.0,ns,245 51 | async/mpsc_integer,ThingBuf,10,,,53621486.0,ns,250 52 | async/mpsc_integer,ThingBuf,10,,,60774050.0,ns,255 53 | async/mpsc_integer,ThingBuf,10,,,64468892.0,ns,260 54 | async/mpsc_integer,ThingBuf,10,,,51119291.0,ns,265 55 | async/mpsc_integer,ThingBuf,10,,,48006110.0,ns,270 56 | async/mpsc_integer,ThingBuf,10,,,67863236.0,ns,275 57 | async/mpsc_integer,ThingBuf,10,,,64118630.0,ns,280 58 | async/mpsc_integer,ThingBuf,10,,,54259754.0,ns,285 59 | async/mpsc_integer,ThingBuf,10,,,54301052.0,ns,290 60 | async/mpsc_integer,ThingBuf,10,,,65093254.0,ns,295 61 | async/mpsc_integer,ThingBuf,10,,,68902912.0,ns,300 62 | async/mpsc_integer,ThingBuf,10,,,71399898.0,ns,305 63 | async/mpsc_integer,ThingBuf,10,,,83920650.0,ns,310 64 | async/mpsc_integer,ThingBuf,10,,,84324474.0,ns,315 65 | async/mpsc_integer,ThingBuf,10,,,73952909.0,ns,320 66 | async/mpsc_integer,ThingBuf,10,,,61269829.0,ns,325 67 | async/mpsc_integer,ThingBuf,10,,,74906813.0,ns,330 68 | async/mpsc_integer,ThingBuf,10,,,75073268.0,ns,335 69 | async/mpsc_integer,ThingBuf,10,,,65678221.0,ns,340 70 | async/mpsc_integer,ThingBuf,10,,,65844305.0,ns,345 71 | async/mpsc_integer,ThingBuf,10,,,86754172.0,ns,350 72 | async/mpsc_integer,ThingBuf,10,,,79380779.0,ns,355 73 | async/mpsc_integer,ThingBuf,10,,,82508849.0,ns,360 74 | async/mpsc_integer,ThingBuf,10,,,69500053.0,ns,365 75 | async/mpsc_integer,ThingBuf,10,,,77190265.0,ns,370 76 | async/mpsc_integer,ThingBuf,10,,,89623211.0,ns,375 77 | async/mpsc_integer,ThingBuf,10,,,96425643.0,ns,380 78 | async/mpsc_integer,ThingBuf,10,,,76987581.0,ns,385 79 | async/mpsc_integer,ThingBuf,10,,,91038149.0,ns,390 80 | async/mpsc_integer,ThingBuf,10,,,78508449.0,ns,395 81 | async/mpsc_integer,ThingBuf,10,,,76069925.0,ns,400 82 | async/mpsc_integer,ThingBuf,10,,,85405380.0,ns,405 83 | async/mpsc_integer,ThingBuf,10,,,85969528.0,ns,410 84 | async/mpsc_integer,ThingBuf,10,,,80361997.0,ns,415 85 | async/mpsc_integer,ThingBuf,10,,,82044780.0,ns,420 86 | async/mpsc_integer,ThingBuf,10,,,101745720.0,ns,425 87 | async/mpsc_integer,ThingBuf,10,,,99568501.0,ns,430 88 | async/mpsc_integer,ThingBuf,10,,,83628668.0,ns,435 89 | async/mpsc_integer,ThingBuf,10,,,107110662.0,ns,440 90 | async/mpsc_integer,ThingBuf,10,,,100870474.0,ns,445 91 | async/mpsc_integer,ThingBuf,10,,,103465625.0,ns,450 92 | async/mpsc_integer,ThingBuf,10,,,107659341.0,ns,455 93 | async/mpsc_integer,ThingBuf,10,,,94315190.0,ns,460 94 | async/mpsc_integer,ThingBuf,10,,,107151800.0,ns,465 95 | async/mpsc_integer,ThingBuf,10,,,95773630.0,ns,470 96 | async/mpsc_integer,ThingBuf,10,,,105360922.0,ns,475 97 | async/mpsc_integer,ThingBuf,10,,,113233869.0,ns,480 98 | async/mpsc_integer,ThingBuf,10,,,110846131.0,ns,485 99 | async/mpsc_integer,ThingBuf,10,,,109237958.0,ns,490 100 | async/mpsc_integer,ThingBuf,10,,,114663374.0,ns,495 101 | async/mpsc_integer,ThingBuf,10,,,119226739.0,ns,500 102 | -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/10/base/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[5.0,10.0,15.0,20.0,25.0,30.0,35.0,40.0,45.0,50.0,55.0,60.0,65.0,70.0,75.0,80.0,85.0,90.0,95.0,100.0,105.0,110.0,115.0,120.0,125.0,130.0,135.0,140.0,145.0,150.0,155.0,160.0,165.0,170.0,175.0,180.0,185.0,190.0,195.0,200.0,205.0,210.0,215.0,220.0,225.0,230.0,235.0,240.0,245.0,250.0,255.0,260.0,265.0,270.0,275.0,280.0,285.0,290.0,295.0,300.0,305.0,310.0,315.0,320.0,325.0,330.0,335.0,340.0,345.0,350.0,355.0,360.0,365.0,370.0,375.0,380.0,385.0,390.0,395.0,400.0,405.0,410.0,415.0,420.0,425.0,430.0,435.0,440.0,445.0,450.0,455.0,460.0,465.0,470.0,475.0,480.0,485.0,490.0,495.0,500.0],"times":[945048.0,1905406.0,3578472.0,4749507.0,5703573.0,7269546.0,7633555.0,7709729.0,10496502.0,12169368.0,10474821.0,14404777.0,13476121.0,13931262.0,15276747.0,18203926.0,15923061.0,21824998.0,22212341.0,22367535.0,25043288.0,21234371.0,26381110.0,23072450.0,29220122.0,24044538.0,34027218.0,32406662.0,31952973.0,26506888.0,32909694.0,34243277.0,30554437.0,38916961.0,40957403.0,43204143.0,34374175.0,43639778.0,37808173.0,36302554.0,45555492.0,41153764.0,50856825.0,49996777.0,55407385.0,52604281.0,45267659.0,47946127.0,45133224.0,53621486.0,60774050.0,64468892.0,51119291.0,48006110.0,67863236.0,64118630.0,54259754.0,54301052.0,65093254.0,68902912.0,71399898.0,83920650.0,84324474.0,73952909.0,61269829.0,74906813.0,75073268.0,65678221.0,65844305.0,86754172.0,79380779.0,82508849.0,69500053.0,77190265.0,89623211.0,96425643.0,76987581.0,91038149.0,78508449.0,76069925.0,85405380.0,85969528.0,80361997.0,82044780.0,101745720.0,99568501.0,83628668.0,107110662.0,100870474.0,103465625.0,107659341.0,94315190.0,107151800.0,95773630.0,105360922.0,113233869.0,110846131.0,109237958.0,114663374.0,119226739.0]} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/10/base/tukey.json: -------------------------------------------------------------------------------- 1 | [73138.86516435779,133482.87836531142,294400.2469011878,354744.2601021415] -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/10/change/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.007707061009859996,"upper_bound":0.054520513043201546},"point_estimate":0.02255553174521374,"standard_error":0.015915847753045227},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.014560602284308666,"upper_bound":0.09772141154595926},"point_estimate":0.02836523092790255,"standard_error":0.030484986651147235}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/10/new/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"async/mpsc_integer","function_id":"ThingBuf","value_str":"10","throughput":null,"full_id":"async/mpsc_integer/ThingBuf/10","directory_name":"async_mpsc_integer/ThingBuf/10","title":"async/mpsc_integer/ThingBuf/10"} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/10/new/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":213727.186187372,"upper_bound":222385.90136041192},"point_estimate":218056.67840473316,"standard_error":2213.3507447318257},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":213403.27522580646,"upper_bound":229057.2736111111},"point_estimate":223887.32873134327,"standard_error":3876.6223656697975},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":15322.212022243995,"upper_bound":31754.25173559934},"point_estimate":23462.184110785212,"standard_error":4270.211891995671},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":214942.5375318492,"upper_bound":224861.23445650926},"point_estimate":219989.42972188562,"standard_error":2522.4541673900326},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":19911.262143222673,"upper_bound":24266.360584011614},"point_estimate":22194.0135981587,"standard_error":1112.0369958676945}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/10/new/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | async/mpsc_integer,ThingBuf,10,,,945048.0,ns,5 3 | async/mpsc_integer,ThingBuf,10,,,1905406.0,ns,10 4 | async/mpsc_integer,ThingBuf,10,,,3578472.0,ns,15 5 | async/mpsc_integer,ThingBuf,10,,,4749507.0,ns,20 6 | async/mpsc_integer,ThingBuf,10,,,5703573.0,ns,25 7 | async/mpsc_integer,ThingBuf,10,,,7269546.0,ns,30 8 | async/mpsc_integer,ThingBuf,10,,,7633555.0,ns,35 9 | async/mpsc_integer,ThingBuf,10,,,7709729.0,ns,40 10 | async/mpsc_integer,ThingBuf,10,,,10496502.0,ns,45 11 | async/mpsc_integer,ThingBuf,10,,,12169368.0,ns,50 12 | async/mpsc_integer,ThingBuf,10,,,10474821.0,ns,55 13 | async/mpsc_integer,ThingBuf,10,,,14404777.0,ns,60 14 | async/mpsc_integer,ThingBuf,10,,,13476121.0,ns,65 15 | async/mpsc_integer,ThingBuf,10,,,13931262.0,ns,70 16 | async/mpsc_integer,ThingBuf,10,,,15276747.0,ns,75 17 | async/mpsc_integer,ThingBuf,10,,,18203926.0,ns,80 18 | async/mpsc_integer,ThingBuf,10,,,15923061.0,ns,85 19 | async/mpsc_integer,ThingBuf,10,,,21824998.0,ns,90 20 | async/mpsc_integer,ThingBuf,10,,,22212341.0,ns,95 21 | async/mpsc_integer,ThingBuf,10,,,22367535.0,ns,100 22 | async/mpsc_integer,ThingBuf,10,,,25043288.0,ns,105 23 | async/mpsc_integer,ThingBuf,10,,,21234371.0,ns,110 24 | async/mpsc_integer,ThingBuf,10,,,26381110.0,ns,115 25 | async/mpsc_integer,ThingBuf,10,,,23072450.0,ns,120 26 | async/mpsc_integer,ThingBuf,10,,,29220122.0,ns,125 27 | async/mpsc_integer,ThingBuf,10,,,24044538.0,ns,130 28 | async/mpsc_integer,ThingBuf,10,,,34027218.0,ns,135 29 | async/mpsc_integer,ThingBuf,10,,,32406662.0,ns,140 30 | async/mpsc_integer,ThingBuf,10,,,31952973.0,ns,145 31 | async/mpsc_integer,ThingBuf,10,,,26506888.0,ns,150 32 | async/mpsc_integer,ThingBuf,10,,,32909694.0,ns,155 33 | async/mpsc_integer,ThingBuf,10,,,34243277.0,ns,160 34 | async/mpsc_integer,ThingBuf,10,,,30554437.0,ns,165 35 | async/mpsc_integer,ThingBuf,10,,,38916961.0,ns,170 36 | async/mpsc_integer,ThingBuf,10,,,40957403.0,ns,175 37 | async/mpsc_integer,ThingBuf,10,,,43204143.0,ns,180 38 | async/mpsc_integer,ThingBuf,10,,,34374175.0,ns,185 39 | async/mpsc_integer,ThingBuf,10,,,43639778.0,ns,190 40 | async/mpsc_integer,ThingBuf,10,,,37808173.0,ns,195 41 | async/mpsc_integer,ThingBuf,10,,,36302554.0,ns,200 42 | async/mpsc_integer,ThingBuf,10,,,45555492.0,ns,205 43 | async/mpsc_integer,ThingBuf,10,,,41153764.0,ns,210 44 | async/mpsc_integer,ThingBuf,10,,,50856825.0,ns,215 45 | async/mpsc_integer,ThingBuf,10,,,49996777.0,ns,220 46 | async/mpsc_integer,ThingBuf,10,,,55407385.0,ns,225 47 | async/mpsc_integer,ThingBuf,10,,,52604281.0,ns,230 48 | async/mpsc_integer,ThingBuf,10,,,45267659.0,ns,235 49 | async/mpsc_integer,ThingBuf,10,,,47946127.0,ns,240 50 | async/mpsc_integer,ThingBuf,10,,,45133224.0,ns,245 51 | async/mpsc_integer,ThingBuf,10,,,53621486.0,ns,250 52 | async/mpsc_integer,ThingBuf,10,,,60774050.0,ns,255 53 | async/mpsc_integer,ThingBuf,10,,,64468892.0,ns,260 54 | async/mpsc_integer,ThingBuf,10,,,51119291.0,ns,265 55 | async/mpsc_integer,ThingBuf,10,,,48006110.0,ns,270 56 | async/mpsc_integer,ThingBuf,10,,,67863236.0,ns,275 57 | async/mpsc_integer,ThingBuf,10,,,64118630.0,ns,280 58 | async/mpsc_integer,ThingBuf,10,,,54259754.0,ns,285 59 | async/mpsc_integer,ThingBuf,10,,,54301052.0,ns,290 60 | async/mpsc_integer,ThingBuf,10,,,65093254.0,ns,295 61 | async/mpsc_integer,ThingBuf,10,,,68902912.0,ns,300 62 | async/mpsc_integer,ThingBuf,10,,,71399898.0,ns,305 63 | async/mpsc_integer,ThingBuf,10,,,83920650.0,ns,310 64 | async/mpsc_integer,ThingBuf,10,,,84324474.0,ns,315 65 | async/mpsc_integer,ThingBuf,10,,,73952909.0,ns,320 66 | async/mpsc_integer,ThingBuf,10,,,61269829.0,ns,325 67 | async/mpsc_integer,ThingBuf,10,,,74906813.0,ns,330 68 | async/mpsc_integer,ThingBuf,10,,,75073268.0,ns,335 69 | async/mpsc_integer,ThingBuf,10,,,65678221.0,ns,340 70 | async/mpsc_integer,ThingBuf,10,,,65844305.0,ns,345 71 | async/mpsc_integer,ThingBuf,10,,,86754172.0,ns,350 72 | async/mpsc_integer,ThingBuf,10,,,79380779.0,ns,355 73 | async/mpsc_integer,ThingBuf,10,,,82508849.0,ns,360 74 | async/mpsc_integer,ThingBuf,10,,,69500053.0,ns,365 75 | async/mpsc_integer,ThingBuf,10,,,77190265.0,ns,370 76 | async/mpsc_integer,ThingBuf,10,,,89623211.0,ns,375 77 | async/mpsc_integer,ThingBuf,10,,,96425643.0,ns,380 78 | async/mpsc_integer,ThingBuf,10,,,76987581.0,ns,385 79 | async/mpsc_integer,ThingBuf,10,,,91038149.0,ns,390 80 | async/mpsc_integer,ThingBuf,10,,,78508449.0,ns,395 81 | async/mpsc_integer,ThingBuf,10,,,76069925.0,ns,400 82 | async/mpsc_integer,ThingBuf,10,,,85405380.0,ns,405 83 | async/mpsc_integer,ThingBuf,10,,,85969528.0,ns,410 84 | async/mpsc_integer,ThingBuf,10,,,80361997.0,ns,415 85 | async/mpsc_integer,ThingBuf,10,,,82044780.0,ns,420 86 | async/mpsc_integer,ThingBuf,10,,,101745720.0,ns,425 87 | async/mpsc_integer,ThingBuf,10,,,99568501.0,ns,430 88 | async/mpsc_integer,ThingBuf,10,,,83628668.0,ns,435 89 | async/mpsc_integer,ThingBuf,10,,,107110662.0,ns,440 90 | async/mpsc_integer,ThingBuf,10,,,100870474.0,ns,445 91 | async/mpsc_integer,ThingBuf,10,,,103465625.0,ns,450 92 | async/mpsc_integer,ThingBuf,10,,,107659341.0,ns,455 93 | async/mpsc_integer,ThingBuf,10,,,94315190.0,ns,460 94 | async/mpsc_integer,ThingBuf,10,,,107151800.0,ns,465 95 | async/mpsc_integer,ThingBuf,10,,,95773630.0,ns,470 96 | async/mpsc_integer,ThingBuf,10,,,105360922.0,ns,475 97 | async/mpsc_integer,ThingBuf,10,,,113233869.0,ns,480 98 | async/mpsc_integer,ThingBuf,10,,,110846131.0,ns,485 99 | async/mpsc_integer,ThingBuf,10,,,109237958.0,ns,490 100 | async/mpsc_integer,ThingBuf,10,,,114663374.0,ns,495 101 | async/mpsc_integer,ThingBuf,10,,,119226739.0,ns,500 102 | -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/10/new/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[5.0,10.0,15.0,20.0,25.0,30.0,35.0,40.0,45.0,50.0,55.0,60.0,65.0,70.0,75.0,80.0,85.0,90.0,95.0,100.0,105.0,110.0,115.0,120.0,125.0,130.0,135.0,140.0,145.0,150.0,155.0,160.0,165.0,170.0,175.0,180.0,185.0,190.0,195.0,200.0,205.0,210.0,215.0,220.0,225.0,230.0,235.0,240.0,245.0,250.0,255.0,260.0,265.0,270.0,275.0,280.0,285.0,290.0,295.0,300.0,305.0,310.0,315.0,320.0,325.0,330.0,335.0,340.0,345.0,350.0,355.0,360.0,365.0,370.0,375.0,380.0,385.0,390.0,395.0,400.0,405.0,410.0,415.0,420.0,425.0,430.0,435.0,440.0,445.0,450.0,455.0,460.0,465.0,470.0,475.0,480.0,485.0,490.0,495.0,500.0],"times":[945048.0,1905406.0,3578472.0,4749507.0,5703573.0,7269546.0,7633555.0,7709729.0,10496502.0,12169368.0,10474821.0,14404777.0,13476121.0,13931262.0,15276747.0,18203926.0,15923061.0,21824998.0,22212341.0,22367535.0,25043288.0,21234371.0,26381110.0,23072450.0,29220122.0,24044538.0,34027218.0,32406662.0,31952973.0,26506888.0,32909694.0,34243277.0,30554437.0,38916961.0,40957403.0,43204143.0,34374175.0,43639778.0,37808173.0,36302554.0,45555492.0,41153764.0,50856825.0,49996777.0,55407385.0,52604281.0,45267659.0,47946127.0,45133224.0,53621486.0,60774050.0,64468892.0,51119291.0,48006110.0,67863236.0,64118630.0,54259754.0,54301052.0,65093254.0,68902912.0,71399898.0,83920650.0,84324474.0,73952909.0,61269829.0,74906813.0,75073268.0,65678221.0,65844305.0,86754172.0,79380779.0,82508849.0,69500053.0,77190265.0,89623211.0,96425643.0,76987581.0,91038149.0,78508449.0,76069925.0,85405380.0,85969528.0,80361997.0,82044780.0,101745720.0,99568501.0,83628668.0,107110662.0,100870474.0,103465625.0,107659341.0,94315190.0,107151800.0,95773630.0,105360922.0,113233869.0,110846131.0,109237958.0,114663374.0,119226739.0]} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/10/new/tukey.json: -------------------------------------------------------------------------------- 1 | [73138.86516435779,133482.87836531142,294400.2469011878,354744.2601021415] -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/10/report/relative_regression_small.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | Total sample time (ms) 4 | 5 | 6 | Iterations 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 20.0 26 | 27 | 28 | 29 | 40.0 30 | 31 | 32 | 33 | 60.0 34 | 35 | 36 | 37 | 80.0 38 | 39 | 40 | 41 | 100.0 42 | 43 | 44 | 45 | 46 | 50 47 | 48 | 49 | 50 | 100 51 | 52 | 53 | 54 | 150 55 | 56 | 57 | 58 | 200 59 | 60 | 61 | 62 | 250 63 | 64 | 65 | 66 | 300 67 | 68 | 69 | 70 | 350 71 | 72 | 73 | 74 | 400 75 | 76 | 77 | 78 | 450 79 | 80 | 81 | 82 | 500 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/100/base/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"async/mpsc_integer","function_id":"ThingBuf","value_str":"100","throughput":null,"full_id":"async/mpsc_integer/ThingBuf/100","directory_name":"async_mpsc_integer/ThingBuf/100","title":"async/mpsc_integer/ThingBuf/100"} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/100/base/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":600789.897652869,"upper_bound":625826.2935539548},"point_estimate":612585.1970541194,"standard_error":6394.58784198169},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":591355.4471326165,"upper_bound":618303.3076923077},"point_estimate":597445.8427249789,"standard_error":7742.814578609714},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":36005.66816831202,"upper_bound":54720.213708286225},"point_estimate":45788.624647254255,"standard_error":4673.169912815976},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":597109.7218613483,"upper_bound":614411.9771870219},"point_estimate":605466.9311511748,"standard_error":4419.8312396427045},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":42610.448186828275,"upper_bound":84958.27286853096},"point_estimate":64154.03933896696,"standard_error":11013.13953298084}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/100/base/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | async/mpsc_integer,ThingBuf,100,,,1925414.0,ns,2 3 | async/mpsc_integer,ThingBuf,100,,,2265858.0,ns,4 4 | async/mpsc_integer,ThingBuf,100,,,2831428.0,ns,6 5 | async/mpsc_integer,ThingBuf,100,,,5113798.0,ns,8 6 | async/mpsc_integer,ThingBuf,100,,,5134286.0,ns,10 7 | async/mpsc_integer,ThingBuf,100,,,7816202.0,ns,12 8 | async/mpsc_integer,ThingBuf,100,,,8089299.0,ns,14 9 | async/mpsc_integer,ThingBuf,100,,,8002664.0,ns,16 10 | async/mpsc_integer,ThingBuf,100,,,10634806.0,ns,18 11 | async/mpsc_integer,ThingBuf,100,,,13129196.0,ns,20 12 | async/mpsc_integer,ThingBuf,100,,,13463760.0,ns,22 13 | async/mpsc_integer,ThingBuf,100,,,15789040.0,ns,24 14 | async/mpsc_integer,ThingBuf,100,,,16661811.0,ns,26 15 | async/mpsc_integer,ThingBuf,100,,,24345082.0,ns,28 16 | async/mpsc_integer,ThingBuf,100,,,18839423.0,ns,30 17 | async/mpsc_integer,ThingBuf,100,,,17438231.0,ns,32 18 | async/mpsc_integer,ThingBuf,100,,,18809546.0,ns,34 19 | async/mpsc_integer,ThingBuf,100,,,19919346.0,ns,36 20 | async/mpsc_integer,ThingBuf,100,,,29735072.0,ns,38 21 | async/mpsc_integer,ThingBuf,100,,,24876027.0,ns,40 22 | async/mpsc_integer,ThingBuf,100,,,26270094.0,ns,42 23 | async/mpsc_integer,ThingBuf,100,,,27670875.0,ns,44 24 | async/mpsc_integer,ThingBuf,100,,,28970055.0,ns,46 25 | async/mpsc_integer,ThingBuf,100,,,28459018.0,ns,48 26 | async/mpsc_integer,ThingBuf,100,,,29288106.0,ns,50 27 | async/mpsc_integer,ThingBuf,100,,,32323420.0,ns,52 28 | async/mpsc_integer,ThingBuf,100,,,29243251.0,ns,54 29 | async/mpsc_integer,ThingBuf,100,,,32989531.0,ns,56 30 | async/mpsc_integer,ThingBuf,100,,,34557488.0,ns,58 31 | async/mpsc_integer,ThingBuf,100,,,35163065.0,ns,60 32 | async/mpsc_integer,ThingBuf,100,,,33700436.0,ns,62 33 | async/mpsc_integer,ThingBuf,100,,,39587818.0,ns,64 34 | async/mpsc_integer,ThingBuf,100,,,45600006.0,ns,66 35 | async/mpsc_integer,ThingBuf,100,,,45287845.0,ns,68 36 | async/mpsc_integer,ThingBuf,100,,,39662980.0,ns,70 37 | async/mpsc_integer,ThingBuf,100,,,42796199.0,ns,72 38 | async/mpsc_integer,ThingBuf,100,,,54016212.0,ns,74 39 | async/mpsc_integer,ThingBuf,100,,,44413721.0,ns,76 40 | async/mpsc_integer,ThingBuf,100,,,46373138.0,ns,78 41 | async/mpsc_integer,ThingBuf,100,,,46082539.0,ns,80 42 | async/mpsc_integer,ThingBuf,100,,,55427744.0,ns,82 43 | async/mpsc_integer,ThingBuf,100,,,50441117.0,ns,84 44 | async/mpsc_integer,ThingBuf,100,,,50920594.0,ns,86 45 | async/mpsc_integer,ThingBuf,100,,,53041979.0,ns,88 46 | async/mpsc_integer,ThingBuf,100,,,49968142.0,ns,90 47 | async/mpsc_integer,ThingBuf,100,,,52853692.0,ns,92 48 | async/mpsc_integer,ThingBuf,100,,,55380163.0,ns,94 49 | async/mpsc_integer,ThingBuf,100,,,61060213.0,ns,96 50 | async/mpsc_integer,ThingBuf,100,,,54540455.0,ns,98 51 | async/mpsc_integer,ThingBuf,100,,,66366926.0,ns,100 52 | async/mpsc_integer,ThingBuf,100,,,69183246.0,ns,102 53 | async/mpsc_integer,ThingBuf,100,,,57796367.0,ns,104 54 | async/mpsc_integer,ThingBuf,100,,,60680936.0,ns,106 55 | async/mpsc_integer,ThingBuf,100,,,61183045.0,ns,108 56 | async/mpsc_integer,ThingBuf,100,,,71011505.0,ns,110 57 | async/mpsc_integer,ThingBuf,100,,,70828088.0,ns,112 58 | async/mpsc_integer,ThingBuf,100,,,72744254.0,ns,114 59 | async/mpsc_integer,ThingBuf,100,,,77409422.0,ns,116 60 | async/mpsc_integer,ThingBuf,100,,,69645441.0,ns,118 61 | async/mpsc_integer,ThingBuf,100,,,76462602.0,ns,120 62 | async/mpsc_integer,ThingBuf,100,,,68946658.0,ns,122 63 | async/mpsc_integer,ThingBuf,100,,,73394154.0,ns,124 64 | async/mpsc_integer,ThingBuf,100,,,73355732.0,ns,126 65 | async/mpsc_integer,ThingBuf,100,,,84686835.0,ns,128 66 | async/mpsc_integer,ThingBuf,100,,,92559574.0,ns,130 67 | async/mpsc_integer,ThingBuf,100,,,84647572.0,ns,132 68 | async/mpsc_integer,ThingBuf,100,,,87500279.0,ns,134 69 | async/mpsc_integer,ThingBuf,100,,,89474826.0,ns,136 70 | async/mpsc_integer,ThingBuf,100,,,82159071.0,ns,138 71 | async/mpsc_integer,ThingBuf,100,,,86440754.0,ns,140 72 | async/mpsc_integer,ThingBuf,100,,,94285560.0,ns,142 73 | async/mpsc_integer,ThingBuf,100,,,82143232.0,ns,144 74 | async/mpsc_integer,ThingBuf,100,,,87486554.0,ns,146 75 | async/mpsc_integer,ThingBuf,100,,,86824521.0,ns,148 76 | async/mpsc_integer,ThingBuf,100,,,88779600.0,ns,150 77 | async/mpsc_integer,ThingBuf,100,,,93704972.0,ns,152 78 | async/mpsc_integer,ThingBuf,100,,,96867366.0,ns,154 79 | async/mpsc_integer,ThingBuf,100,,,96455316.0,ns,156 80 | async/mpsc_integer,ThingBuf,100,,,93301749.0,ns,158 81 | async/mpsc_integer,ThingBuf,100,,,92975933.0,ns,160 82 | async/mpsc_integer,ThingBuf,100,,,95396633.0,ns,162 83 | async/mpsc_integer,ThingBuf,100,,,98247960.0,ns,164 84 | async/mpsc_integer,ThingBuf,100,,,103524906.0,ns,166 85 | async/mpsc_integer,ThingBuf,100,,,103717600.0,ns,168 86 | async/mpsc_integer,ThingBuf,100,,,107565492.0,ns,170 87 | async/mpsc_integer,ThingBuf,100,,,113773461.0,ns,172 88 | async/mpsc_integer,ThingBuf,100,,,98784194.0,ns,174 89 | async/mpsc_integer,ThingBuf,100,,,99509647.0,ns,176 90 | async/mpsc_integer,ThingBuf,100,,,106739730.0,ns,178 91 | async/mpsc_integer,ThingBuf,100,,,99148332.0,ns,180 92 | async/mpsc_integer,ThingBuf,100,,,114671971.0,ns,182 93 | async/mpsc_integer,ThingBuf,100,,,116290434.0,ns,184 94 | async/mpsc_integer,ThingBuf,100,,,110405557.0,ns,186 95 | async/mpsc_integer,ThingBuf,100,,,108510120.0,ns,188 96 | async/mpsc_integer,ThingBuf,100,,,107909493.0,ns,190 97 | async/mpsc_integer,ThingBuf,100,,,110036278.0,ns,192 98 | async/mpsc_integer,ThingBuf,100,,,109925158.0,ns,194 99 | async/mpsc_integer,ThingBuf,100,,,112449274.0,ns,196 100 | async/mpsc_integer,ThingBuf,100,,,124998564.0,ns,198 101 | async/mpsc_integer,ThingBuf,100,,,118900393.0,ns,200 102 | -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/100/base/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[2.0,4.0,6.0,8.0,10.0,12.0,14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,38.0,40.0,42.0,44.0,46.0,48.0,50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0,74.0,76.0,78.0,80.0,82.0,84.0,86.0,88.0,90.0,92.0,94.0,96.0,98.0,100.0,102.0,104.0,106.0,108.0,110.0,112.0,114.0,116.0,118.0,120.0,122.0,124.0,126.0,128.0,130.0,132.0,134.0,136.0,138.0,140.0,142.0,144.0,146.0,148.0,150.0,152.0,154.0,156.0,158.0,160.0,162.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,180.0,182.0,184.0,186.0,188.0,190.0,192.0,194.0,196.0,198.0,200.0],"times":[1925414.0,2265858.0,2831428.0,5113798.0,5134286.0,7816202.0,8089299.0,8002664.0,10634806.0,13129196.0,13463760.0,15789040.0,16661811.0,24345082.0,18839423.0,17438231.0,18809546.0,19919346.0,29735072.0,24876027.0,26270094.0,27670875.0,28970055.0,28459018.0,29288106.0,32323420.0,29243251.0,32989531.0,34557488.0,35163065.0,33700436.0,39587818.0,45600006.0,45287845.0,39662980.0,42796199.0,54016212.0,44413721.0,46373138.0,46082539.0,55427744.0,50441117.0,50920594.0,53041979.0,49968142.0,52853692.0,55380163.0,61060213.0,54540455.0,66366926.0,69183246.0,57796367.0,60680936.0,61183045.0,71011505.0,70828088.0,72744254.0,77409422.0,69645441.0,76462602.0,68946658.0,73394154.0,73355732.0,84686835.0,92559574.0,84647572.0,87500279.0,89474826.0,82159071.0,86440754.0,94285560.0,82143232.0,87486554.0,86824521.0,88779600.0,93704972.0,96867366.0,96455316.0,93301749.0,92975933.0,95396633.0,98247960.0,103524906.0,103717600.0,107565492.0,113773461.0,98784194.0,99509647.0,106739730.0,99148332.0,114671971.0,116290434.0,110405557.0,108510120.0,107909493.0,110036278.0,109925158.0,112449274.0,124998564.0,118900393.0]} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/100/base/tukey.json: -------------------------------------------------------------------------------- 1 | [393601.85998641374,484624.91307744605,727353.0546535322,818376.1077445645] -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/100/change/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.012354847570183734,"upper_bound":0.13020041137184946},"point_estimate":0.06631414495841881,"standard_error":0.03698228980250594},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.08298906427620789,"upper_bound":0.14588934085212868},"point_estimate":0.10071816407951806,"standard_error":0.016133203312985258}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/100/new/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"async/mpsc_integer","function_id":"ThingBuf","value_str":"100","throughput":null,"full_id":"async/mpsc_integer/ThingBuf/100","directory_name":"async_mpsc_integer/ThingBuf/100","title":"async/mpsc_integer/ThingBuf/100"} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/100/new/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":600789.897652869,"upper_bound":625826.2935539548},"point_estimate":612585.1970541194,"standard_error":6394.58784198169},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":591355.4471326165,"upper_bound":618303.3076923077},"point_estimate":597445.8427249789,"standard_error":7742.814578609714},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":36005.66816831202,"upper_bound":54720.213708286225},"point_estimate":45788.624647254255,"standard_error":4673.169912815976},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":597109.7218613483,"upper_bound":614411.9771870219},"point_estimate":605466.9311511748,"standard_error":4419.8312396427045},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":42610.448186828275,"upper_bound":84958.27286853096},"point_estimate":64154.03933896696,"standard_error":11013.13953298084}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/100/new/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | async/mpsc_integer,ThingBuf,100,,,1925414.0,ns,2 3 | async/mpsc_integer,ThingBuf,100,,,2265858.0,ns,4 4 | async/mpsc_integer,ThingBuf,100,,,2831428.0,ns,6 5 | async/mpsc_integer,ThingBuf,100,,,5113798.0,ns,8 6 | async/mpsc_integer,ThingBuf,100,,,5134286.0,ns,10 7 | async/mpsc_integer,ThingBuf,100,,,7816202.0,ns,12 8 | async/mpsc_integer,ThingBuf,100,,,8089299.0,ns,14 9 | async/mpsc_integer,ThingBuf,100,,,8002664.0,ns,16 10 | async/mpsc_integer,ThingBuf,100,,,10634806.0,ns,18 11 | async/mpsc_integer,ThingBuf,100,,,13129196.0,ns,20 12 | async/mpsc_integer,ThingBuf,100,,,13463760.0,ns,22 13 | async/mpsc_integer,ThingBuf,100,,,15789040.0,ns,24 14 | async/mpsc_integer,ThingBuf,100,,,16661811.0,ns,26 15 | async/mpsc_integer,ThingBuf,100,,,24345082.0,ns,28 16 | async/mpsc_integer,ThingBuf,100,,,18839423.0,ns,30 17 | async/mpsc_integer,ThingBuf,100,,,17438231.0,ns,32 18 | async/mpsc_integer,ThingBuf,100,,,18809546.0,ns,34 19 | async/mpsc_integer,ThingBuf,100,,,19919346.0,ns,36 20 | async/mpsc_integer,ThingBuf,100,,,29735072.0,ns,38 21 | async/mpsc_integer,ThingBuf,100,,,24876027.0,ns,40 22 | async/mpsc_integer,ThingBuf,100,,,26270094.0,ns,42 23 | async/mpsc_integer,ThingBuf,100,,,27670875.0,ns,44 24 | async/mpsc_integer,ThingBuf,100,,,28970055.0,ns,46 25 | async/mpsc_integer,ThingBuf,100,,,28459018.0,ns,48 26 | async/mpsc_integer,ThingBuf,100,,,29288106.0,ns,50 27 | async/mpsc_integer,ThingBuf,100,,,32323420.0,ns,52 28 | async/mpsc_integer,ThingBuf,100,,,29243251.0,ns,54 29 | async/mpsc_integer,ThingBuf,100,,,32989531.0,ns,56 30 | async/mpsc_integer,ThingBuf,100,,,34557488.0,ns,58 31 | async/mpsc_integer,ThingBuf,100,,,35163065.0,ns,60 32 | async/mpsc_integer,ThingBuf,100,,,33700436.0,ns,62 33 | async/mpsc_integer,ThingBuf,100,,,39587818.0,ns,64 34 | async/mpsc_integer,ThingBuf,100,,,45600006.0,ns,66 35 | async/mpsc_integer,ThingBuf,100,,,45287845.0,ns,68 36 | async/mpsc_integer,ThingBuf,100,,,39662980.0,ns,70 37 | async/mpsc_integer,ThingBuf,100,,,42796199.0,ns,72 38 | async/mpsc_integer,ThingBuf,100,,,54016212.0,ns,74 39 | async/mpsc_integer,ThingBuf,100,,,44413721.0,ns,76 40 | async/mpsc_integer,ThingBuf,100,,,46373138.0,ns,78 41 | async/mpsc_integer,ThingBuf,100,,,46082539.0,ns,80 42 | async/mpsc_integer,ThingBuf,100,,,55427744.0,ns,82 43 | async/mpsc_integer,ThingBuf,100,,,50441117.0,ns,84 44 | async/mpsc_integer,ThingBuf,100,,,50920594.0,ns,86 45 | async/mpsc_integer,ThingBuf,100,,,53041979.0,ns,88 46 | async/mpsc_integer,ThingBuf,100,,,49968142.0,ns,90 47 | async/mpsc_integer,ThingBuf,100,,,52853692.0,ns,92 48 | async/mpsc_integer,ThingBuf,100,,,55380163.0,ns,94 49 | async/mpsc_integer,ThingBuf,100,,,61060213.0,ns,96 50 | async/mpsc_integer,ThingBuf,100,,,54540455.0,ns,98 51 | async/mpsc_integer,ThingBuf,100,,,66366926.0,ns,100 52 | async/mpsc_integer,ThingBuf,100,,,69183246.0,ns,102 53 | async/mpsc_integer,ThingBuf,100,,,57796367.0,ns,104 54 | async/mpsc_integer,ThingBuf,100,,,60680936.0,ns,106 55 | async/mpsc_integer,ThingBuf,100,,,61183045.0,ns,108 56 | async/mpsc_integer,ThingBuf,100,,,71011505.0,ns,110 57 | async/mpsc_integer,ThingBuf,100,,,70828088.0,ns,112 58 | async/mpsc_integer,ThingBuf,100,,,72744254.0,ns,114 59 | async/mpsc_integer,ThingBuf,100,,,77409422.0,ns,116 60 | async/mpsc_integer,ThingBuf,100,,,69645441.0,ns,118 61 | async/mpsc_integer,ThingBuf,100,,,76462602.0,ns,120 62 | async/mpsc_integer,ThingBuf,100,,,68946658.0,ns,122 63 | async/mpsc_integer,ThingBuf,100,,,73394154.0,ns,124 64 | async/mpsc_integer,ThingBuf,100,,,73355732.0,ns,126 65 | async/mpsc_integer,ThingBuf,100,,,84686835.0,ns,128 66 | async/mpsc_integer,ThingBuf,100,,,92559574.0,ns,130 67 | async/mpsc_integer,ThingBuf,100,,,84647572.0,ns,132 68 | async/mpsc_integer,ThingBuf,100,,,87500279.0,ns,134 69 | async/mpsc_integer,ThingBuf,100,,,89474826.0,ns,136 70 | async/mpsc_integer,ThingBuf,100,,,82159071.0,ns,138 71 | async/mpsc_integer,ThingBuf,100,,,86440754.0,ns,140 72 | async/mpsc_integer,ThingBuf,100,,,94285560.0,ns,142 73 | async/mpsc_integer,ThingBuf,100,,,82143232.0,ns,144 74 | async/mpsc_integer,ThingBuf,100,,,87486554.0,ns,146 75 | async/mpsc_integer,ThingBuf,100,,,86824521.0,ns,148 76 | async/mpsc_integer,ThingBuf,100,,,88779600.0,ns,150 77 | async/mpsc_integer,ThingBuf,100,,,93704972.0,ns,152 78 | async/mpsc_integer,ThingBuf,100,,,96867366.0,ns,154 79 | async/mpsc_integer,ThingBuf,100,,,96455316.0,ns,156 80 | async/mpsc_integer,ThingBuf,100,,,93301749.0,ns,158 81 | async/mpsc_integer,ThingBuf,100,,,92975933.0,ns,160 82 | async/mpsc_integer,ThingBuf,100,,,95396633.0,ns,162 83 | async/mpsc_integer,ThingBuf,100,,,98247960.0,ns,164 84 | async/mpsc_integer,ThingBuf,100,,,103524906.0,ns,166 85 | async/mpsc_integer,ThingBuf,100,,,103717600.0,ns,168 86 | async/mpsc_integer,ThingBuf,100,,,107565492.0,ns,170 87 | async/mpsc_integer,ThingBuf,100,,,113773461.0,ns,172 88 | async/mpsc_integer,ThingBuf,100,,,98784194.0,ns,174 89 | async/mpsc_integer,ThingBuf,100,,,99509647.0,ns,176 90 | async/mpsc_integer,ThingBuf,100,,,106739730.0,ns,178 91 | async/mpsc_integer,ThingBuf,100,,,99148332.0,ns,180 92 | async/mpsc_integer,ThingBuf,100,,,114671971.0,ns,182 93 | async/mpsc_integer,ThingBuf,100,,,116290434.0,ns,184 94 | async/mpsc_integer,ThingBuf,100,,,110405557.0,ns,186 95 | async/mpsc_integer,ThingBuf,100,,,108510120.0,ns,188 96 | async/mpsc_integer,ThingBuf,100,,,107909493.0,ns,190 97 | async/mpsc_integer,ThingBuf,100,,,110036278.0,ns,192 98 | async/mpsc_integer,ThingBuf,100,,,109925158.0,ns,194 99 | async/mpsc_integer,ThingBuf,100,,,112449274.0,ns,196 100 | async/mpsc_integer,ThingBuf,100,,,124998564.0,ns,198 101 | async/mpsc_integer,ThingBuf,100,,,118900393.0,ns,200 102 | -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/100/new/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[2.0,4.0,6.0,8.0,10.0,12.0,14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,38.0,40.0,42.0,44.0,46.0,48.0,50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0,74.0,76.0,78.0,80.0,82.0,84.0,86.0,88.0,90.0,92.0,94.0,96.0,98.0,100.0,102.0,104.0,106.0,108.0,110.0,112.0,114.0,116.0,118.0,120.0,122.0,124.0,126.0,128.0,130.0,132.0,134.0,136.0,138.0,140.0,142.0,144.0,146.0,148.0,150.0,152.0,154.0,156.0,158.0,160.0,162.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,180.0,182.0,184.0,186.0,188.0,190.0,192.0,194.0,196.0,198.0,200.0],"times":[1925414.0,2265858.0,2831428.0,5113798.0,5134286.0,7816202.0,8089299.0,8002664.0,10634806.0,13129196.0,13463760.0,15789040.0,16661811.0,24345082.0,18839423.0,17438231.0,18809546.0,19919346.0,29735072.0,24876027.0,26270094.0,27670875.0,28970055.0,28459018.0,29288106.0,32323420.0,29243251.0,32989531.0,34557488.0,35163065.0,33700436.0,39587818.0,45600006.0,45287845.0,39662980.0,42796199.0,54016212.0,44413721.0,46373138.0,46082539.0,55427744.0,50441117.0,50920594.0,53041979.0,49968142.0,52853692.0,55380163.0,61060213.0,54540455.0,66366926.0,69183246.0,57796367.0,60680936.0,61183045.0,71011505.0,70828088.0,72744254.0,77409422.0,69645441.0,76462602.0,68946658.0,73394154.0,73355732.0,84686835.0,92559574.0,84647572.0,87500279.0,89474826.0,82159071.0,86440754.0,94285560.0,82143232.0,87486554.0,86824521.0,88779600.0,93704972.0,96867366.0,96455316.0,93301749.0,92975933.0,95396633.0,98247960.0,103524906.0,103717600.0,107565492.0,113773461.0,98784194.0,99509647.0,106739730.0,99148332.0,114671971.0,116290434.0,110405557.0,108510120.0,107909493.0,110036278.0,109925158.0,112449274.0,124998564.0,118900393.0]} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/100/new/tukey.json: -------------------------------------------------------------------------------- 1 | [393601.85998641374,484624.91307744605,727353.0546535322,818376.1077445645] -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/50/base/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"async/mpsc_integer","function_id":"ThingBuf","value_str":"50","throughput":null,"full_id":"async/mpsc_integer/ThingBuf/50","directory_name":"async_mpsc_integer/ThingBuf/50","title":"async/mpsc_integer/ThingBuf/50"} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/50/base/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":477563.78165298904,"upper_bound":576468.3655325723},"point_estimate":516102.7008041223,"standard_error":26165.52132723487},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":461202.8494581538,"upper_bound":497463.83771929826},"point_estimate":473290.56852497096,"standard_error":11055.168309001825},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40057.65252947026,"upper_bound":63042.71686083987},"point_estimate":48417.23212208837,"standard_error":6015.329680848981},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":472302.0444500967,"upper_bound":493086.01206955564},"point_estimate":482223.46084823407,"standard_error":5312.754918026655},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":68595.09878764604,"upper_bound":432822.96386549197},"point_estimate":262747.6930073243,"standard_error":116810.79671635584}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/50/base/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | async/mpsc_integer,ThingBuf,50,,,8770437.0,ns,3 3 | async/mpsc_integer,ThingBuf,50,,,2042194.0,ns,6 4 | async/mpsc_integer,ThingBuf,50,,,3078596.0,ns,9 5 | async/mpsc_integer,ThingBuf,50,,,4811986.0,ns,12 6 | async/mpsc_integer,ThingBuf,50,,,5783805.0,ns,15 7 | async/mpsc_integer,ThingBuf,50,,,7877207.0,ns,18 8 | async/mpsc_integer,ThingBuf,50,,,9233292.0,ns,21 9 | async/mpsc_integer,ThingBuf,50,,,10715157.0,ns,24 10 | async/mpsc_integer,ThingBuf,50,,,13596289.0,ns,27 11 | async/mpsc_integer,ThingBuf,50,,,13637367.0,ns,30 12 | async/mpsc_integer,ThingBuf,50,,,28675033.0,ns,33 13 | async/mpsc_integer,ThingBuf,50,,,9451837.0,ns,36 14 | async/mpsc_integer,ThingBuf,50,,,10565163.0,ns,39 15 | async/mpsc_integer,ThingBuf,50,,,27081208.0,ns,42 16 | async/mpsc_integer,ThingBuf,50,,,48942056.0,ns,45 17 | async/mpsc_integer,ThingBuf,50,,,18608443.0,ns,48 18 | async/mpsc_integer,ThingBuf,50,,,37888318.0,ns,51 19 | async/mpsc_integer,ThingBuf,50,,,29990913.0,ns,54 20 | async/mpsc_integer,ThingBuf,50,,,27292627.0,ns,57 21 | async/mpsc_integer,ThingBuf,50,,,36786372.0,ns,60 22 | async/mpsc_integer,ThingBuf,50,,,33593490.0,ns,63 23 | async/mpsc_integer,ThingBuf,50,,,30471262.0,ns,66 24 | async/mpsc_integer,ThingBuf,50,,,37176120.0,ns,69 25 | async/mpsc_integer,ThingBuf,50,,,30264361.0,ns,72 26 | async/mpsc_integer,ThingBuf,50,,,40919715.0,ns,75 27 | async/mpsc_integer,ThingBuf,50,,,44165577.0,ns,78 28 | async/mpsc_integer,ThingBuf,50,,,36104281.0,ns,81 29 | async/mpsc_integer,ThingBuf,50,,,35218015.0,ns,84 30 | async/mpsc_integer,ThingBuf,50,,,63814741.0,ns,87 31 | async/mpsc_integer,ThingBuf,50,,,50651972.0,ns,90 32 | async/mpsc_integer,ThingBuf,50,,,43510808.0,ns,93 33 | async/mpsc_integer,ThingBuf,50,,,48832979.0,ns,96 34 | async/mpsc_integer,ThingBuf,50,,,52739412.0,ns,99 35 | async/mpsc_integer,ThingBuf,50,,,53454143.0,ns,102 36 | async/mpsc_integer,ThingBuf,50,,,47550212.0,ns,105 37 | async/mpsc_integer,ThingBuf,50,,,62449226.0,ns,108 38 | async/mpsc_integer,ThingBuf,50,,,51286583.0,ns,111 39 | async/mpsc_integer,ThingBuf,50,,,51504325.0,ns,114 40 | async/mpsc_integer,ThingBuf,50,,,59551783.0,ns,117 41 | async/mpsc_integer,ThingBuf,50,,,54950516.0,ns,120 42 | async/mpsc_integer,ThingBuf,50,,,60807039.0,ns,123 43 | async/mpsc_integer,ThingBuf,50,,,59380068.0,ns,126 44 | async/mpsc_integer,ThingBuf,50,,,64605246.0,ns,129 45 | async/mpsc_integer,ThingBuf,50,,,69803513.0,ns,132 46 | async/mpsc_integer,ThingBuf,50,,,63002233.0,ns,135 47 | async/mpsc_integer,ThingBuf,50,,,61043325.0,ns,138 48 | async/mpsc_integer,ThingBuf,50,,,63977999.0,ns,141 49 | async/mpsc_integer,ThingBuf,50,,,66019632.0,ns,144 50 | async/mpsc_integer,ThingBuf,50,,,75392359.0,ns,147 51 | async/mpsc_integer,ThingBuf,50,,,75750867.0,ns,150 52 | async/mpsc_integer,ThingBuf,50,,,83016687.0,ns,153 53 | async/mpsc_integer,ThingBuf,50,,,71508139.0,ns,156 54 | async/mpsc_integer,ThingBuf,50,,,79213089.0,ns,159 55 | async/mpsc_integer,ThingBuf,50,,,79288803.0,ns,162 56 | async/mpsc_integer,ThingBuf,50,,,76777781.0,ns,165 57 | async/mpsc_integer,ThingBuf,50,,,83296747.0,ns,168 58 | async/mpsc_integer,ThingBuf,50,,,91365836.0,ns,171 59 | async/mpsc_integer,ThingBuf,50,,,78159376.0,ns,174 60 | async/mpsc_integer,ThingBuf,50,,,70809628.0,ns,177 61 | async/mpsc_integer,ThingBuf,50,,,77625656.0,ns,180 62 | async/mpsc_integer,ThingBuf,50,,,94547567.0,ns,183 63 | async/mpsc_integer,ThingBuf,50,,,99691792.0,ns,186 64 | async/mpsc_integer,ThingBuf,50,,,94994914.0,ns,189 65 | async/mpsc_integer,ThingBuf,50,,,89303093.0,ns,192 66 | async/mpsc_integer,ThingBuf,50,,,90937286.0,ns,195 67 | async/mpsc_integer,ThingBuf,50,,,92873700.0,ns,198 68 | async/mpsc_integer,ThingBuf,50,,,98954337.0,ns,201 69 | async/mpsc_integer,ThingBuf,50,,,93878943.0,ns,204 70 | async/mpsc_integer,ThingBuf,50,,,95295433.0,ns,207 71 | async/mpsc_integer,ThingBuf,50,,,116751616.0,ns,210 72 | async/mpsc_integer,ThingBuf,50,,,94187687.0,ns,213 73 | async/mpsc_integer,ThingBuf,50,,,94215339.0,ns,216 74 | async/mpsc_integer,ThingBuf,50,,,108154718.0,ns,219 75 | async/mpsc_integer,ThingBuf,50,,,100447713.0,ns,222 76 | async/mpsc_integer,ThingBuf,50,,,113474344.0,ns,225 77 | async/mpsc_integer,ThingBuf,50,,,113421755.0,ns,228 78 | async/mpsc_integer,ThingBuf,50,,,116403477.0,ns,231 79 | async/mpsc_integer,ThingBuf,50,,,121030413.0,ns,234 80 | async/mpsc_integer,ThingBuf,50,,,108521552.0,ns,237 81 | async/mpsc_integer,ThingBuf,50,,,105852561.0,ns,240 82 | async/mpsc_integer,ThingBuf,50,,,117116607.0,ns,243 83 | async/mpsc_integer,ThingBuf,50,,,116926446.0,ns,246 84 | async/mpsc_integer,ThingBuf,50,,,129178633.0,ns,249 85 | async/mpsc_integer,ThingBuf,50,,,123345625.0,ns,252 86 | async/mpsc_integer,ThingBuf,50,,,112254786.0,ns,255 87 | async/mpsc_integer,ThingBuf,50,,,129996290.0,ns,258 88 | async/mpsc_integer,ThingBuf,50,,,113808957.0,ns,261 89 | async/mpsc_integer,ThingBuf,50,,,119533801.0,ns,264 90 | async/mpsc_integer,ThingBuf,50,,,115393507.0,ns,267 91 | async/mpsc_integer,ThingBuf,50,,,125917783.0,ns,270 92 | async/mpsc_integer,ThingBuf,50,,,124143915.0,ns,273 93 | async/mpsc_integer,ThingBuf,50,,,144254742.0,ns,276 94 | async/mpsc_integer,ThingBuf,50,,,165461815.0,ns,279 95 | async/mpsc_integer,ThingBuf,50,,,142425030.0,ns,282 96 | async/mpsc_integer,ThingBuf,50,,,128261137.0,ns,285 97 | async/mpsc_integer,ThingBuf,50,,,126164078.0,ns,288 98 | async/mpsc_integer,ThingBuf,50,,,126710052.0,ns,291 99 | async/mpsc_integer,ThingBuf,50,,,149182869.0,ns,294 100 | async/mpsc_integer,ThingBuf,50,,,153638000.0,ns,297 101 | async/mpsc_integer,ThingBuf,50,,,138000848.0,ns,300 102 | -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/50/base/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[3.0,6.0,9.0,12.0,15.0,18.0,21.0,24.0,27.0,30.0,33.0,36.0,39.0,42.0,45.0,48.0,51.0,54.0,57.0,60.0,63.0,66.0,69.0,72.0,75.0,78.0,81.0,84.0,87.0,90.0,93.0,96.0,99.0,102.0,105.0,108.0,111.0,114.0,117.0,120.0,123.0,126.0,129.0,132.0,135.0,138.0,141.0,144.0,147.0,150.0,153.0,156.0,159.0,162.0,165.0,168.0,171.0,174.0,177.0,180.0,183.0,186.0,189.0,192.0,195.0,198.0,201.0,204.0,207.0,210.0,213.0,216.0,219.0,222.0,225.0,228.0,231.0,234.0,237.0,240.0,243.0,246.0,249.0,252.0,255.0,258.0,261.0,264.0,267.0,270.0,273.0,276.0,279.0,282.0,285.0,288.0,291.0,294.0,297.0,300.0],"times":[8770437.0,2042194.0,3078596.0,4811986.0,5783805.0,7877207.0,9233292.0,10715157.0,13596289.0,13637367.0,28675033.0,9451837.0,10565163.0,27081208.0,48942056.0,18608443.0,37888318.0,29990913.0,27292627.0,36786372.0,33593490.0,30471262.0,37176120.0,30264361.0,40919715.0,44165577.0,36104281.0,35218015.0,63814741.0,50651972.0,43510808.0,48832979.0,52739412.0,53454143.0,47550212.0,62449226.0,51286583.0,51504325.0,59551783.0,54950516.0,60807039.0,59380068.0,64605246.0,69803513.0,63002233.0,61043325.0,63977999.0,66019632.0,75392359.0,75750867.0,83016687.0,71508139.0,79213089.0,79288803.0,76777781.0,83296747.0,91365836.0,78159376.0,70809628.0,77625656.0,94547567.0,99691792.0,94994914.0,89303093.0,90937286.0,92873700.0,98954337.0,93878943.0,95295433.0,116751616.0,94187687.0,94215339.0,108154718.0,100447713.0,113474344.0,113421755.0,116403477.0,121030413.0,108521552.0,105852561.0,117116607.0,116926446.0,129178633.0,123345625.0,112254786.0,129996290.0,113808957.0,119533801.0,115393507.0,125917783.0,124143915.0,144254742.0,165461815.0,142425030.0,128261137.0,126164078.0,126710052.0,149182869.0,153638000.0,138000848.0]} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/50/base/tukey.json: -------------------------------------------------------------------------------- 1 | [247580.3290423078,348703.7954800166,618366.3726472401,719489.8390849489] -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/50/change/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.09281174139774617,"upper_bound":0.3498748592786276},"point_estimate":0.19628769603450835,"standard_error":0.06654703775243623},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.1091931590474422,"upper_bound":0.2011889334445549},"point_estimate":0.13918738161939292,"standard_error":0.027462854528548263}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/50/new/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"async/mpsc_integer","function_id":"ThingBuf","value_str":"50","throughput":null,"full_id":"async/mpsc_integer/ThingBuf/50","directory_name":"async_mpsc_integer/ThingBuf/50","title":"async/mpsc_integer/ThingBuf/50"} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/50/new/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":477563.78165298904,"upper_bound":576468.3655325723},"point_estimate":516102.7008041223,"standard_error":26165.52132723487},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":461202.8494581538,"upper_bound":497463.83771929826},"point_estimate":473290.56852497096,"standard_error":11055.168309001825},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40057.65252947026,"upper_bound":63042.71686083987},"point_estimate":48417.23212208837,"standard_error":6015.329680848981},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":472302.0444500967,"upper_bound":493086.01206955564},"point_estimate":482223.46084823407,"standard_error":5312.754918026655},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":68595.09878764604,"upper_bound":432822.96386549197},"point_estimate":262747.6930073243,"standard_error":116810.79671635584}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/50/new/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | async/mpsc_integer,ThingBuf,50,,,8770437.0,ns,3 3 | async/mpsc_integer,ThingBuf,50,,,2042194.0,ns,6 4 | async/mpsc_integer,ThingBuf,50,,,3078596.0,ns,9 5 | async/mpsc_integer,ThingBuf,50,,,4811986.0,ns,12 6 | async/mpsc_integer,ThingBuf,50,,,5783805.0,ns,15 7 | async/mpsc_integer,ThingBuf,50,,,7877207.0,ns,18 8 | async/mpsc_integer,ThingBuf,50,,,9233292.0,ns,21 9 | async/mpsc_integer,ThingBuf,50,,,10715157.0,ns,24 10 | async/mpsc_integer,ThingBuf,50,,,13596289.0,ns,27 11 | async/mpsc_integer,ThingBuf,50,,,13637367.0,ns,30 12 | async/mpsc_integer,ThingBuf,50,,,28675033.0,ns,33 13 | async/mpsc_integer,ThingBuf,50,,,9451837.0,ns,36 14 | async/mpsc_integer,ThingBuf,50,,,10565163.0,ns,39 15 | async/mpsc_integer,ThingBuf,50,,,27081208.0,ns,42 16 | async/mpsc_integer,ThingBuf,50,,,48942056.0,ns,45 17 | async/mpsc_integer,ThingBuf,50,,,18608443.0,ns,48 18 | async/mpsc_integer,ThingBuf,50,,,37888318.0,ns,51 19 | async/mpsc_integer,ThingBuf,50,,,29990913.0,ns,54 20 | async/mpsc_integer,ThingBuf,50,,,27292627.0,ns,57 21 | async/mpsc_integer,ThingBuf,50,,,36786372.0,ns,60 22 | async/mpsc_integer,ThingBuf,50,,,33593490.0,ns,63 23 | async/mpsc_integer,ThingBuf,50,,,30471262.0,ns,66 24 | async/mpsc_integer,ThingBuf,50,,,37176120.0,ns,69 25 | async/mpsc_integer,ThingBuf,50,,,30264361.0,ns,72 26 | async/mpsc_integer,ThingBuf,50,,,40919715.0,ns,75 27 | async/mpsc_integer,ThingBuf,50,,,44165577.0,ns,78 28 | async/mpsc_integer,ThingBuf,50,,,36104281.0,ns,81 29 | async/mpsc_integer,ThingBuf,50,,,35218015.0,ns,84 30 | async/mpsc_integer,ThingBuf,50,,,63814741.0,ns,87 31 | async/mpsc_integer,ThingBuf,50,,,50651972.0,ns,90 32 | async/mpsc_integer,ThingBuf,50,,,43510808.0,ns,93 33 | async/mpsc_integer,ThingBuf,50,,,48832979.0,ns,96 34 | async/mpsc_integer,ThingBuf,50,,,52739412.0,ns,99 35 | async/mpsc_integer,ThingBuf,50,,,53454143.0,ns,102 36 | async/mpsc_integer,ThingBuf,50,,,47550212.0,ns,105 37 | async/mpsc_integer,ThingBuf,50,,,62449226.0,ns,108 38 | async/mpsc_integer,ThingBuf,50,,,51286583.0,ns,111 39 | async/mpsc_integer,ThingBuf,50,,,51504325.0,ns,114 40 | async/mpsc_integer,ThingBuf,50,,,59551783.0,ns,117 41 | async/mpsc_integer,ThingBuf,50,,,54950516.0,ns,120 42 | async/mpsc_integer,ThingBuf,50,,,60807039.0,ns,123 43 | async/mpsc_integer,ThingBuf,50,,,59380068.0,ns,126 44 | async/mpsc_integer,ThingBuf,50,,,64605246.0,ns,129 45 | async/mpsc_integer,ThingBuf,50,,,69803513.0,ns,132 46 | async/mpsc_integer,ThingBuf,50,,,63002233.0,ns,135 47 | async/mpsc_integer,ThingBuf,50,,,61043325.0,ns,138 48 | async/mpsc_integer,ThingBuf,50,,,63977999.0,ns,141 49 | async/mpsc_integer,ThingBuf,50,,,66019632.0,ns,144 50 | async/mpsc_integer,ThingBuf,50,,,75392359.0,ns,147 51 | async/mpsc_integer,ThingBuf,50,,,75750867.0,ns,150 52 | async/mpsc_integer,ThingBuf,50,,,83016687.0,ns,153 53 | async/mpsc_integer,ThingBuf,50,,,71508139.0,ns,156 54 | async/mpsc_integer,ThingBuf,50,,,79213089.0,ns,159 55 | async/mpsc_integer,ThingBuf,50,,,79288803.0,ns,162 56 | async/mpsc_integer,ThingBuf,50,,,76777781.0,ns,165 57 | async/mpsc_integer,ThingBuf,50,,,83296747.0,ns,168 58 | async/mpsc_integer,ThingBuf,50,,,91365836.0,ns,171 59 | async/mpsc_integer,ThingBuf,50,,,78159376.0,ns,174 60 | async/mpsc_integer,ThingBuf,50,,,70809628.0,ns,177 61 | async/mpsc_integer,ThingBuf,50,,,77625656.0,ns,180 62 | async/mpsc_integer,ThingBuf,50,,,94547567.0,ns,183 63 | async/mpsc_integer,ThingBuf,50,,,99691792.0,ns,186 64 | async/mpsc_integer,ThingBuf,50,,,94994914.0,ns,189 65 | async/mpsc_integer,ThingBuf,50,,,89303093.0,ns,192 66 | async/mpsc_integer,ThingBuf,50,,,90937286.0,ns,195 67 | async/mpsc_integer,ThingBuf,50,,,92873700.0,ns,198 68 | async/mpsc_integer,ThingBuf,50,,,98954337.0,ns,201 69 | async/mpsc_integer,ThingBuf,50,,,93878943.0,ns,204 70 | async/mpsc_integer,ThingBuf,50,,,95295433.0,ns,207 71 | async/mpsc_integer,ThingBuf,50,,,116751616.0,ns,210 72 | async/mpsc_integer,ThingBuf,50,,,94187687.0,ns,213 73 | async/mpsc_integer,ThingBuf,50,,,94215339.0,ns,216 74 | async/mpsc_integer,ThingBuf,50,,,108154718.0,ns,219 75 | async/mpsc_integer,ThingBuf,50,,,100447713.0,ns,222 76 | async/mpsc_integer,ThingBuf,50,,,113474344.0,ns,225 77 | async/mpsc_integer,ThingBuf,50,,,113421755.0,ns,228 78 | async/mpsc_integer,ThingBuf,50,,,116403477.0,ns,231 79 | async/mpsc_integer,ThingBuf,50,,,121030413.0,ns,234 80 | async/mpsc_integer,ThingBuf,50,,,108521552.0,ns,237 81 | async/mpsc_integer,ThingBuf,50,,,105852561.0,ns,240 82 | async/mpsc_integer,ThingBuf,50,,,117116607.0,ns,243 83 | async/mpsc_integer,ThingBuf,50,,,116926446.0,ns,246 84 | async/mpsc_integer,ThingBuf,50,,,129178633.0,ns,249 85 | async/mpsc_integer,ThingBuf,50,,,123345625.0,ns,252 86 | async/mpsc_integer,ThingBuf,50,,,112254786.0,ns,255 87 | async/mpsc_integer,ThingBuf,50,,,129996290.0,ns,258 88 | async/mpsc_integer,ThingBuf,50,,,113808957.0,ns,261 89 | async/mpsc_integer,ThingBuf,50,,,119533801.0,ns,264 90 | async/mpsc_integer,ThingBuf,50,,,115393507.0,ns,267 91 | async/mpsc_integer,ThingBuf,50,,,125917783.0,ns,270 92 | async/mpsc_integer,ThingBuf,50,,,124143915.0,ns,273 93 | async/mpsc_integer,ThingBuf,50,,,144254742.0,ns,276 94 | async/mpsc_integer,ThingBuf,50,,,165461815.0,ns,279 95 | async/mpsc_integer,ThingBuf,50,,,142425030.0,ns,282 96 | async/mpsc_integer,ThingBuf,50,,,128261137.0,ns,285 97 | async/mpsc_integer,ThingBuf,50,,,126164078.0,ns,288 98 | async/mpsc_integer,ThingBuf,50,,,126710052.0,ns,291 99 | async/mpsc_integer,ThingBuf,50,,,149182869.0,ns,294 100 | async/mpsc_integer,ThingBuf,50,,,153638000.0,ns,297 101 | async/mpsc_integer,ThingBuf,50,,,138000848.0,ns,300 102 | -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/50/new/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[3.0,6.0,9.0,12.0,15.0,18.0,21.0,24.0,27.0,30.0,33.0,36.0,39.0,42.0,45.0,48.0,51.0,54.0,57.0,60.0,63.0,66.0,69.0,72.0,75.0,78.0,81.0,84.0,87.0,90.0,93.0,96.0,99.0,102.0,105.0,108.0,111.0,114.0,117.0,120.0,123.0,126.0,129.0,132.0,135.0,138.0,141.0,144.0,147.0,150.0,153.0,156.0,159.0,162.0,165.0,168.0,171.0,174.0,177.0,180.0,183.0,186.0,189.0,192.0,195.0,198.0,201.0,204.0,207.0,210.0,213.0,216.0,219.0,222.0,225.0,228.0,231.0,234.0,237.0,240.0,243.0,246.0,249.0,252.0,255.0,258.0,261.0,264.0,267.0,270.0,273.0,276.0,279.0,282.0,285.0,288.0,291.0,294.0,297.0,300.0],"times":[8770437.0,2042194.0,3078596.0,4811986.0,5783805.0,7877207.0,9233292.0,10715157.0,13596289.0,13637367.0,28675033.0,9451837.0,10565163.0,27081208.0,48942056.0,18608443.0,37888318.0,29990913.0,27292627.0,36786372.0,33593490.0,30471262.0,37176120.0,30264361.0,40919715.0,44165577.0,36104281.0,35218015.0,63814741.0,50651972.0,43510808.0,48832979.0,52739412.0,53454143.0,47550212.0,62449226.0,51286583.0,51504325.0,59551783.0,54950516.0,60807039.0,59380068.0,64605246.0,69803513.0,63002233.0,61043325.0,63977999.0,66019632.0,75392359.0,75750867.0,83016687.0,71508139.0,79213089.0,79288803.0,76777781.0,83296747.0,91365836.0,78159376.0,70809628.0,77625656.0,94547567.0,99691792.0,94994914.0,89303093.0,90937286.0,92873700.0,98954337.0,93878943.0,95295433.0,116751616.0,94187687.0,94215339.0,108154718.0,100447713.0,113474344.0,113421755.0,116403477.0,121030413.0,108521552.0,105852561.0,117116607.0,116926446.0,129178633.0,123345625.0,112254786.0,129996290.0,113808957.0,119533801.0,115393507.0,125917783.0,124143915.0,144254742.0,165461815.0,142425030.0,128261137.0,126164078.0,126710052.0,149182869.0,153638000.0,138000848.0]} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/50/new/tukey.json: -------------------------------------------------------------------------------- 1 | [247580.3290423078,348703.7954800166,618366.3726472401,719489.8390849489] -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/50/report/both/regression.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | async/mpsc_integer/ThingBuf/50 4 | 5 | 6 | Total sample time (ms) 7 | 8 | 9 | Iterations 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 20.0 27 | 28 | 29 | 30 | 40.0 31 | 32 | 33 | 34 | 60.0 35 | 36 | 37 | 38 | 80.0 39 | 40 | 41 | 42 | 100.0 43 | 44 | 45 | 46 | 120.0 47 | 48 | 49 | 50 | 140.0 51 | 52 | 53 | 54 | 55 | 50 56 | 57 | 58 | 59 | 100 60 | 61 | 62 | 63 | 150 64 | 65 | 66 | 67 | 200 68 | 69 | 70 | 71 | 250 72 | 73 | 74 | 75 | 300 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | Base Sample 84 | 85 | 86 | New Sample 87 | 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/50/report/relative_regression_small.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | Total sample time (ms) 4 | 5 | 6 | Iterations 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 20.0 24 | 25 | 26 | 27 | 40.0 28 | 29 | 30 | 31 | 60.0 32 | 33 | 34 | 35 | 80.0 36 | 37 | 38 | 39 | 100.0 40 | 41 | 42 | 43 | 120.0 44 | 45 | 46 | 47 | 140.0 48 | 49 | 50 | 51 | 52 | 50 53 | 54 | 55 | 56 | 100 57 | 58 | 59 | 60 | 150 61 | 62 | 63 | 64 | 200 65 | 66 | 67 | 68 | 250 69 | 70 | 71 | 72 | 300 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/report/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | async/mpsc_integer/ThingBuf Summary - Criterion.rs 7 | 50 | 51 | 52 | 53 |
54 |

async/mpsc_integer/ThingBuf

55 |

Violin Plot

56 | 57 | Violin Plot 58 | 59 |

This chart shows the relationship between function/parameter and iteration time. The thickness of the shaded 60 | region indicates the probability that a measurement of the given function/parameter would take a particular 61 | length of time.

62 |

Line Chart

63 | Line Chart 64 |

This chart shows the mean measured time for each function as the input (or the size of the input) increases.

65 |
66 | 67 |

async/mpsc_integer/ThingBuf/10

68 |
69 | 70 | 71 | 72 | 78 | 84 | 85 | 86 |
73 | 74 | PDF of Slope 76 | 77 | 79 | 80 | Regression 82 | 83 |
87 |
88 |
89 | 90 |

async/mpsc_integer/ThingBuf/50

91 |
92 | 93 | 94 | 95 | 101 | 107 | 108 | 109 |
96 | 97 | PDF of Slope 99 | 100 | 102 | 103 | Regression 105 | 106 |
110 |
111 |
112 | 113 |

async/mpsc_integer/ThingBuf/100

114 |
115 | 116 | 117 | 118 | 124 | 130 | 131 | 132 |
119 | 120 | PDF of Slope 122 | 123 | 125 | 126 | Regression 128 | 129 |
133 |
134 |
135 | 140 | 141 | 142 | -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/ThingBuf/report/lines.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | async/mpsc_integer/ThingBuf: Comparison 4 | 5 | 6 | Average time (us) 7 | 8 | 9 | Input 10 | 11 | 12 | 13 | 250.0 14 | 15 | 16 | 17 | 300.0 18 | 19 | 20 | 21 | 350.0 22 | 23 | 24 | 25 | 400.0 26 | 27 | 28 | 29 | 450.0 30 | 31 | 32 | 33 | 500.0 34 | 35 | 36 | 37 | 550.0 38 | 39 | 40 | 41 | 600.0 42 | 43 | 44 | 45 | 46 | 20.0 47 | 48 | 49 | 50 | 30.0 51 | 52 | 53 | 54 | 40.0 55 | 56 | 57 | 58 | 50.0 59 | 60 | 61 | 62 | 60.0 63 | 64 | 65 | 66 | 70.0 67 | 68 | 69 | 70 | 80.0 71 | 72 | 73 | 74 | 90.0 75 | 76 | 77 | 78 | 100.0 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | ThingBuf 87 | 88 | 89 | 90 | -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/async_std__channel__bounded/10/base/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"async/mpsc_integer","function_id":"async_std::channel::bounded","value_str":"10","throughput":null,"full_id":"async/mpsc_integer/async_std::channel::bounded/10","directory_name":"async_mpsc_integer/async_std__channel__bounded/10","title":"async/mpsc_integer/async_std::channel::bounded/10"} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/async_std__channel__bounded/10/base/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":221125.18724280037,"upper_bound":234186.7748237371},"point_estimate":227602.8554548231,"standard_error":3324.8503028792416},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":215856.6672624054,"upper_bound":233388.90057920408},"point_estimate":224809.76040296053,"standard_error":4481.845279186062},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":29561.190225183964,"upper_bound":45777.63575365736},"point_estimate":36879.13015987031,"standard_error":4102.382961681215},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":220997.8704433368,"upper_bound":235866.13934450436},"point_estimate":228395.95902246196,"standard_error":3792.827674719923},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":29448.27448964744,"upper_bound":37053.56297673523},"point_estimate":33460.67035356077,"standard_error":1943.309360075494}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/async_std__channel__bounded/10/base/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[4.0,8.0,12.0,16.0,20.0,24.0,28.0,32.0,36.0,40.0,44.0,48.0,52.0,56.0,60.0,64.0,68.0,72.0,76.0,80.0,84.0,88.0,92.0,96.0,100.0,104.0,108.0,112.0,116.0,120.0,124.0,128.0,132.0,136.0,140.0,144.0,148.0,152.0,156.0,160.0,164.0,168.0,172.0,176.0,180.0,184.0,188.0,192.0,196.0,200.0,204.0,208.0,212.0,216.0,220.0,224.0,228.0,232.0,236.0,240.0,244.0,248.0,252.0,256.0,260.0,264.0,268.0,272.0,276.0,280.0,284.0,288.0,292.0,296.0,300.0,304.0,308.0,312.0,316.0,320.0,324.0,328.0,332.0,336.0,340.0,344.0,348.0,352.0,356.0,360.0,364.0,368.0,372.0,376.0,380.0,384.0,388.0,392.0,396.0,400.0],"times":[733738.0,1793524.0,2291977.0,3256282.0,3465017.0,5949088.0,8571600.0,9066907.0,6160808.0,8974423.0,8865406.0,12455810.0,10749581.0,9141228.0,12455240.0,14899014.0,13604764.0,17963142.0,16832041.0,15243596.0,17696608.0,19636950.0,18105652.0,25064941.0,27890418.0,28439737.0,24454476.0,31795087.0,25356082.0,24928824.0,30741363.0,29318851.0,26351065.0,33039332.0,22707059.0,38364358.0,38025176.0,35114649.0,30511879.0,40012768.0,34952733.0,33340161.0,37820570.0,42671539.0,49893195.0,44662576.0,46252405.0,53846847.0,43170132.0,54584772.0,40759240.0,43751553.0,66060418.0,44612862.0,61463520.0,40514166.0,63191780.0,48739542.0,62806100.0,44199099.0,44860952.0,46311647.0,59739226.0,69780368.0,51173427.0,61121853.0,66187910.0,66647700.0,51878922.0,53541599.0,55515554.0,80326985.0,51425535.0,60127261.0,72408171.0,74656024.0,64786437.0,79938871.0,80932111.0,74158403.0,71366710.0,67311837.0,75600512.0,64300869.0,81097444.0,75008272.0,79836899.0,95378128.0,96875962.0,75937260.0,72094297.0,71258416.0,86222482.0,101162694.0,85317219.0,86438601.0,91178811.0,72009306.0,101181961.0,96567689.0]} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/async_std__channel__bounded/10/base/tukey.json: -------------------------------------------------------------------------------- 1 | [51102.335049019486,125552.46409313718,324086.1415441177,398536.2705882354] -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/async_std__channel__bounded/10/new/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"async/mpsc_integer","function_id":"async_std::channel::bounded","value_str":"10","throughput":null,"full_id":"async/mpsc_integer/async_std::channel::bounded/10","directory_name":"async_mpsc_integer/async_std__channel__bounded/10","title":"async/mpsc_integer/async_std::channel::bounded/10"} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/async_std__channel__bounded/10/new/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":221125.18724280037,"upper_bound":234186.7748237371},"point_estimate":227602.8554548231,"standard_error":3324.8503028792416},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":215856.6672624054,"upper_bound":233388.90057920408},"point_estimate":224809.76040296053,"standard_error":4481.845279186062},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":29561.190225183964,"upper_bound":45777.63575365736},"point_estimate":36879.13015987031,"standard_error":4102.382961681215},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":220997.8704433368,"upper_bound":235866.13934450436},"point_estimate":228395.95902246196,"standard_error":3792.827674719923},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":29448.27448964744,"upper_bound":37053.56297673523},"point_estimate":33460.67035356077,"standard_error":1943.309360075494}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/async_std__channel__bounded/10/new/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[4.0,8.0,12.0,16.0,20.0,24.0,28.0,32.0,36.0,40.0,44.0,48.0,52.0,56.0,60.0,64.0,68.0,72.0,76.0,80.0,84.0,88.0,92.0,96.0,100.0,104.0,108.0,112.0,116.0,120.0,124.0,128.0,132.0,136.0,140.0,144.0,148.0,152.0,156.0,160.0,164.0,168.0,172.0,176.0,180.0,184.0,188.0,192.0,196.0,200.0,204.0,208.0,212.0,216.0,220.0,224.0,228.0,232.0,236.0,240.0,244.0,248.0,252.0,256.0,260.0,264.0,268.0,272.0,276.0,280.0,284.0,288.0,292.0,296.0,300.0,304.0,308.0,312.0,316.0,320.0,324.0,328.0,332.0,336.0,340.0,344.0,348.0,352.0,356.0,360.0,364.0,368.0,372.0,376.0,380.0,384.0,388.0,392.0,396.0,400.0],"times":[733738.0,1793524.0,2291977.0,3256282.0,3465017.0,5949088.0,8571600.0,9066907.0,6160808.0,8974423.0,8865406.0,12455810.0,10749581.0,9141228.0,12455240.0,14899014.0,13604764.0,17963142.0,16832041.0,15243596.0,17696608.0,19636950.0,18105652.0,25064941.0,27890418.0,28439737.0,24454476.0,31795087.0,25356082.0,24928824.0,30741363.0,29318851.0,26351065.0,33039332.0,22707059.0,38364358.0,38025176.0,35114649.0,30511879.0,40012768.0,34952733.0,33340161.0,37820570.0,42671539.0,49893195.0,44662576.0,46252405.0,53846847.0,43170132.0,54584772.0,40759240.0,43751553.0,66060418.0,44612862.0,61463520.0,40514166.0,63191780.0,48739542.0,62806100.0,44199099.0,44860952.0,46311647.0,59739226.0,69780368.0,51173427.0,61121853.0,66187910.0,66647700.0,51878922.0,53541599.0,55515554.0,80326985.0,51425535.0,60127261.0,72408171.0,74656024.0,64786437.0,79938871.0,80932111.0,74158403.0,71366710.0,67311837.0,75600512.0,64300869.0,81097444.0,75008272.0,79836899.0,95378128.0,96875962.0,75937260.0,72094297.0,71258416.0,86222482.0,101162694.0,85317219.0,86438601.0,91178811.0,72009306.0,101181961.0,96567689.0]} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/async_std__channel__bounded/10/new/tukey.json: -------------------------------------------------------------------------------- 1 | [51102.335049019486,125552.46409313718,324086.1415441177,398536.2705882354] -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/async_std__channel__bounded/100/base/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"async/mpsc_integer","function_id":"async_std::channel::bounded","value_str":"100","throughput":null,"full_id":"async/mpsc_integer/async_std::channel::bounded/100","directory_name":"async_mpsc_integer/async_std__channel__bounded/100","title":"async/mpsc_integer/async_std::channel::bounded/100"} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/async_std__channel__bounded/100/base/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":366219.5909669554,"upper_bound":406173.27593894483},"point_estimate":384488.4732498381,"standard_error":10234.761800775937},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":358438.06382978725,"upper_bound":376348.92307692306},"point_estimate":362223.7827329903,"standard_error":5051.043413665123},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":22973.34893428754,"upper_bound":45004.01638018279},"point_estimate":35678.17621665436,"standard_error":5808.093197330673},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":345276.1594363308,"upper_bound":372442.23805925244},"point_estimate":358975.9573045663,"standard_error":6879.560902384209},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":56908.66488801341,"upper_bound":145528.31111664386},"point_estimate":102856.51754787176,"standard_error":23196.485338746133}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/async_std__channel__bounded/100/base/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[3.0,6.0,9.0,12.0,15.0,18.0,21.0,24.0,27.0,30.0,33.0,36.0,39.0,42.0,45.0,48.0,51.0,54.0,57.0,60.0,63.0,66.0,69.0,72.0,75.0,78.0,81.0,84.0,87.0,90.0,93.0,96.0,99.0,102.0,105.0,108.0,111.0,114.0,117.0,120.0,123.0,126.0,129.0,132.0,135.0,138.0,141.0,144.0,147.0,150.0,153.0,156.0,159.0,162.0,165.0,168.0,171.0,174.0,177.0,180.0,183.0,186.0,189.0,192.0,195.0,198.0,201.0,204.0,207.0,210.0,213.0,216.0,219.0,222.0,225.0,228.0,231.0,234.0,237.0,240.0,243.0,246.0,249.0,252.0,255.0,258.0,261.0,264.0,267.0,270.0,273.0,276.0,279.0,282.0,285.0,288.0,291.0,294.0,297.0,300.0],"times":[975246.0,2788477.0,3180129.0,12525455.0,5383328.0,14331282.0,13398196.0,8601298.0,9616208.0,18586465.0,13428434.0,13797031.0,14677608.0,20845530.0,16776200.0,24710235.0,19306948.0,19096430.0,22895139.0,23175219.0,24760209.0,23915310.0,27203133.0,25633210.0,27085971.0,27866658.0,28714382.0,32274159.0,34203039.0,39754986.0,39305255.0,43053820.0,35347195.0,36537037.0,44912657.0,40199478.0,40074441.0,41013008.0,41738380.0,46358774.0,48416318.0,44746032.0,47695945.0,50298520.0,48403154.0,53692955.0,50539767.0,50854423.0,43522326.0,53446117.0,59828906.0,56396891.0,57573007.0,60443730.0,72308856.0,54357532.0,60575159.0,66131034.0,60664458.0,57628353.0,49343553.0,49781603.0,82920899.0,62402227.0,122734016.0,66207599.0,46293450.0,65766154.0,77343283.0,75869534.0,91565408.0,78410694.0,69273321.0,70783759.0,64731415.0,32647506.0,74283763.0,92325026.0,92063742.0,97297577.0,88394568.0,95955307.0,73983735.0,88141318.0,78601424.0,97614517.0,87833125.0,89340398.0,112412612.0,106624418.0,95017101.0,102282000.0,100971200.0,99520996.0,111651593.0,111989492.0,102953011.0,111402932.0,105212477.0,107366913.0]} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/async_std__channel__bounded/100/base/tukey.json: -------------------------------------------------------------------------------- 1 | [238036.1068504596,295800.60898078536,449839.28132832074,507603.7834586465] -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/async_std__channel__bounded/100/new/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"async/mpsc_integer","function_id":"async_std::channel::bounded","value_str":"100","throughput":null,"full_id":"async/mpsc_integer/async_std::channel::bounded/100","directory_name":"async_mpsc_integer/async_std__channel__bounded/100","title":"async/mpsc_integer/async_std::channel::bounded/100"} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/async_std__channel__bounded/100/new/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":366219.5909669554,"upper_bound":406173.27593894483},"point_estimate":384488.4732498381,"standard_error":10234.761800775937},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":358438.06382978725,"upper_bound":376348.92307692306},"point_estimate":362223.7827329903,"standard_error":5051.043413665123},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":22973.34893428754,"upper_bound":45004.01638018279},"point_estimate":35678.17621665436,"standard_error":5808.093197330673},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":345276.1594363308,"upper_bound":372442.23805925244},"point_estimate":358975.9573045663,"standard_error":6879.560902384209},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":56908.66488801341,"upper_bound":145528.31111664386},"point_estimate":102856.51754787176,"standard_error":23196.485338746133}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/async_std__channel__bounded/100/new/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[3.0,6.0,9.0,12.0,15.0,18.0,21.0,24.0,27.0,30.0,33.0,36.0,39.0,42.0,45.0,48.0,51.0,54.0,57.0,60.0,63.0,66.0,69.0,72.0,75.0,78.0,81.0,84.0,87.0,90.0,93.0,96.0,99.0,102.0,105.0,108.0,111.0,114.0,117.0,120.0,123.0,126.0,129.0,132.0,135.0,138.0,141.0,144.0,147.0,150.0,153.0,156.0,159.0,162.0,165.0,168.0,171.0,174.0,177.0,180.0,183.0,186.0,189.0,192.0,195.0,198.0,201.0,204.0,207.0,210.0,213.0,216.0,219.0,222.0,225.0,228.0,231.0,234.0,237.0,240.0,243.0,246.0,249.0,252.0,255.0,258.0,261.0,264.0,267.0,270.0,273.0,276.0,279.0,282.0,285.0,288.0,291.0,294.0,297.0,300.0],"times":[975246.0,2788477.0,3180129.0,12525455.0,5383328.0,14331282.0,13398196.0,8601298.0,9616208.0,18586465.0,13428434.0,13797031.0,14677608.0,20845530.0,16776200.0,24710235.0,19306948.0,19096430.0,22895139.0,23175219.0,24760209.0,23915310.0,27203133.0,25633210.0,27085971.0,27866658.0,28714382.0,32274159.0,34203039.0,39754986.0,39305255.0,43053820.0,35347195.0,36537037.0,44912657.0,40199478.0,40074441.0,41013008.0,41738380.0,46358774.0,48416318.0,44746032.0,47695945.0,50298520.0,48403154.0,53692955.0,50539767.0,50854423.0,43522326.0,53446117.0,59828906.0,56396891.0,57573007.0,60443730.0,72308856.0,54357532.0,60575159.0,66131034.0,60664458.0,57628353.0,49343553.0,49781603.0,82920899.0,62402227.0,122734016.0,66207599.0,46293450.0,65766154.0,77343283.0,75869534.0,91565408.0,78410694.0,69273321.0,70783759.0,64731415.0,32647506.0,74283763.0,92325026.0,92063742.0,97297577.0,88394568.0,95955307.0,73983735.0,88141318.0,78601424.0,97614517.0,87833125.0,89340398.0,112412612.0,106624418.0,95017101.0,102282000.0,100971200.0,99520996.0,111651593.0,111989492.0,102953011.0,111402932.0,105212477.0,107366913.0]} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/async_std__channel__bounded/100/new/tukey.json: -------------------------------------------------------------------------------- 1 | [238036.1068504596,295800.60898078536,449839.28132832074,507603.7834586465] -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/async_std__channel__bounded/50/base/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"async/mpsc_integer","function_id":"async_std::channel::bounded","value_str":"50","throughput":null,"full_id":"async/mpsc_integer/async_std::channel::bounded/50","directory_name":"async_mpsc_integer/async_std__channel__bounded/50","title":"async/mpsc_integer/async_std::channel::bounded/50"} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/async_std__channel__bounded/50/base/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":286562.3901931605,"upper_bound":310304.23288494936},"point_estimate":296414.5861715364,"standard_error":6175.919947828773},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":281264.01515151514,"upper_bound":287757.8333333333},"point_estimate":285487.0441889045,"standard_error":1683.046786427955},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9315.04573228998,"upper_bound":15937.606496493912},"point_estimate":12210.332715911174,"standard_error":1710.9584488548514},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":282817.64731407183,"upper_bound":289488.16127429076},"point_estimate":285964.98725136695,"standard_error":1694.6273429238174},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":22641.389445849683,"upper_bound":98693.82478525826},"point_estimate":62213.40278445319,"standard_error":23021.03368075731}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/async_std__channel__bounded/50/base/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[4.0,8.0,12.0,16.0,20.0,24.0,28.0,32.0,36.0,40.0,44.0,48.0,52.0,56.0,60.0,64.0,68.0,72.0,76.0,80.0,84.0,88.0,92.0,96.0,100.0,104.0,108.0,112.0,116.0,120.0,124.0,128.0,132.0,136.0,140.0,144.0,148.0,152.0,156.0,160.0,164.0,168.0,172.0,176.0,180.0,184.0,188.0,192.0,196.0,200.0,204.0,208.0,212.0,216.0,220.0,224.0,228.0,232.0,236.0,240.0,244.0,248.0,252.0,256.0,260.0,264.0,268.0,272.0,276.0,280.0,284.0,288.0,292.0,296.0,300.0,304.0,308.0,312.0,316.0,320.0,324.0,328.0,332.0,336.0,340.0,344.0,348.0,352.0,356.0,360.0,364.0,368.0,372.0,376.0,380.0,384.0,388.0,392.0,396.0,400.0],"times":[800184.0,2194633.0,3556471.0,4221770.0,5777914.0,19822202.0,12737175.0,9214458.0,15762429.0,10518095.0,12044263.0,16999039.0,14779699.0,16026990.0,16050775.0,22371687.0,25246487.0,20101009.0,26894816.0,21794504.0,24306048.0,30475211.0,32007642.0,26656887.0,27853671.0,28614160.0,31022498.0,32139311.0,32660888.0,33377855.0,33892399.0,35205033.0,37126850.0,39670062.0,41089809.0,39913413.0,43154186.0,44588991.0,44497538.0,44805982.0,44814728.0,49656240.0,44936298.0,58530264.0,51796410.0,53406608.0,52137306.0,55407294.0,55070306.0,55323595.0,56199422.0,57138561.0,62031881.0,69948582.0,62496771.0,64914506.0,65836771.0,66434873.0,64150540.0,66370692.0,66779194.0,71742909.0,71281635.0,72277941.0,71202075.0,76369012.0,77639237.0,78135025.0,76267932.0,84172660.0,77484343.0,85081169.0,84652619.0,97915598.0,82470319.0,82869555.0,88894215.0,92571104.0,103108214.0,91291853.0,99422120.0,91251858.0,88538192.0,92022315.0,93237525.0,103062699.0,101019171.0,102710852.0,101704589.0,96748529.0,105935095.0,98746040.0,104109309.0,106991544.0,109027818.0,110294515.0,111567874.0,106763092.0,110996513.0,113769530.0]} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/async_std__channel__bounded/50/base/tukey.json: -------------------------------------------------------------------------------- 1 | [226769.25768160704,251084.4091009845,315924.8128859911,340239.9643053686] -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/async_std__channel__bounded/50/new/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"async/mpsc_integer","function_id":"async_std::channel::bounded","value_str":"50","throughput":null,"full_id":"async/mpsc_integer/async_std::channel::bounded/50","directory_name":"async_mpsc_integer/async_std__channel__bounded/50","title":"async/mpsc_integer/async_std::channel::bounded/50"} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/async_std__channel__bounded/50/new/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":286562.3901931605,"upper_bound":310304.23288494936},"point_estimate":296414.5861715364,"standard_error":6175.919947828773},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":281264.01515151514,"upper_bound":287757.8333333333},"point_estimate":285487.0441889045,"standard_error":1683.046786427955},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9315.04573228998,"upper_bound":15937.606496493912},"point_estimate":12210.332715911174,"standard_error":1710.9584488548514},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":282817.64731407183,"upper_bound":289488.16127429076},"point_estimate":285964.98725136695,"standard_error":1694.6273429238174},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":22641.389445849683,"upper_bound":98693.82478525826},"point_estimate":62213.40278445319,"standard_error":23021.03368075731}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/async_std__channel__bounded/50/new/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[4.0,8.0,12.0,16.0,20.0,24.0,28.0,32.0,36.0,40.0,44.0,48.0,52.0,56.0,60.0,64.0,68.0,72.0,76.0,80.0,84.0,88.0,92.0,96.0,100.0,104.0,108.0,112.0,116.0,120.0,124.0,128.0,132.0,136.0,140.0,144.0,148.0,152.0,156.0,160.0,164.0,168.0,172.0,176.0,180.0,184.0,188.0,192.0,196.0,200.0,204.0,208.0,212.0,216.0,220.0,224.0,228.0,232.0,236.0,240.0,244.0,248.0,252.0,256.0,260.0,264.0,268.0,272.0,276.0,280.0,284.0,288.0,292.0,296.0,300.0,304.0,308.0,312.0,316.0,320.0,324.0,328.0,332.0,336.0,340.0,344.0,348.0,352.0,356.0,360.0,364.0,368.0,372.0,376.0,380.0,384.0,388.0,392.0,396.0,400.0],"times":[800184.0,2194633.0,3556471.0,4221770.0,5777914.0,19822202.0,12737175.0,9214458.0,15762429.0,10518095.0,12044263.0,16999039.0,14779699.0,16026990.0,16050775.0,22371687.0,25246487.0,20101009.0,26894816.0,21794504.0,24306048.0,30475211.0,32007642.0,26656887.0,27853671.0,28614160.0,31022498.0,32139311.0,32660888.0,33377855.0,33892399.0,35205033.0,37126850.0,39670062.0,41089809.0,39913413.0,43154186.0,44588991.0,44497538.0,44805982.0,44814728.0,49656240.0,44936298.0,58530264.0,51796410.0,53406608.0,52137306.0,55407294.0,55070306.0,55323595.0,56199422.0,57138561.0,62031881.0,69948582.0,62496771.0,64914506.0,65836771.0,66434873.0,64150540.0,66370692.0,66779194.0,71742909.0,71281635.0,72277941.0,71202075.0,76369012.0,77639237.0,78135025.0,76267932.0,84172660.0,77484343.0,85081169.0,84652619.0,97915598.0,82470319.0,82869555.0,88894215.0,92571104.0,103108214.0,91291853.0,99422120.0,91251858.0,88538192.0,92022315.0,93237525.0,103062699.0,101019171.0,102710852.0,101704589.0,96748529.0,105935095.0,98746040.0,104109309.0,106991544.0,109027818.0,110294515.0,111567874.0,106763092.0,110996513.0,113769530.0]} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/async_std__channel__bounded/50/new/tukey.json: -------------------------------------------------------------------------------- 1 | [226769.25768160704,251084.4091009845,315924.8128859911,340239.9643053686] -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/async_std__channel__bounded/report/lines.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | async/mpsc_integer/async_std::channel::bounded: Comparison 4 | 5 | 6 | Average time (us) 7 | 8 | 9 | Input 10 | 11 | 12 | 13 | 240.0 14 | 15 | 16 | 17 | 260.0 18 | 19 | 20 | 21 | 280.0 22 | 23 | 24 | 25 | 300.0 26 | 27 | 28 | 29 | 320.0 30 | 31 | 32 | 33 | 340.0 34 | 35 | 36 | 37 | 360.0 38 | 39 | 40 | 41 | 380.0 42 | 43 | 44 | 45 | 46 | 20.0 47 | 48 | 49 | 50 | 30.0 51 | 52 | 53 | 54 | 40.0 55 | 56 | 57 | 58 | 50.0 59 | 60 | 61 | 62 | 60.0 63 | 64 | 65 | 66 | 70.0 67 | 68 | 69 | 70 | 80.0 71 | 72 | 73 | 74 | 90.0 75 | 76 | 77 | 78 | 100.0 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | async_std::channel::bounded 87 | 88 | 89 | 90 | -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/futures__channel__mpsc/10/base/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"async/mpsc_integer","function_id":"futures::channel::mpsc","value_str":"10","throughput":null,"full_id":"async/mpsc_integer/futures::channel::mpsc/10","directory_name":"async_mpsc_integer/futures__channel__mpsc/10","title":"async/mpsc_integer/futures::channel::mpsc/10"} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/futures__channel__mpsc/10/base/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":579755.3210578993,"upper_bound":615436.9651656272},"point_estimate":598074.1832864066,"standard_error":9077.29676621801},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":582717.5,"upper_bound":629128.18125},"point_estimate":608961.3090062111,"standard_error":10583.941328054527},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":69462.25357532362,"upper_bound":104423.81376398048},"point_estimate":89403.76497182394,"standard_error":8846.52491713957},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":583158.0646827724,"upper_bound":629937.3054888838},"point_estimate":606870.1609886213,"standard_error":11953.94440535812},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":72444.89766540828,"upper_bound":109837.74023865156},"point_estimate":91186.99309976785,"standard_error":9666.75156089054}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/futures__channel__mpsc/10/base/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[2.0,4.0,6.0,8.0,10.0,12.0,14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,38.0,40.0,42.0,44.0,46.0,48.0,50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0,74.0,76.0,78.0,80.0,82.0,84.0,86.0,88.0,90.0,92.0,94.0,96.0,98.0,100.0,102.0,104.0,106.0,108.0,110.0,112.0,114.0,116.0,118.0,120.0,122.0,124.0,126.0,128.0,130.0,132.0,134.0,136.0,138.0,140.0,142.0,144.0,146.0,148.0,150.0,152.0,154.0,156.0,158.0,160.0,162.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,180.0,182.0,184.0,186.0,188.0,190.0,192.0,194.0,196.0,198.0,200.0],"times":[1165435.0,2234629.0,3326284.0,3851969.0,4456653.0,7677829.0,8523709.0,3612275.0,11652360.0,10895116.0,14617310.0,15197738.0,17046958.0,13705104.0,16255530.0,20326814.0,19622161.0,24079726.0,20063687.0,25213702.0,26770037.0,27510988.0,25884591.0,32051010.0,35875697.0,31804002.0,22283928.0,29888427.0,30761851.0,30836922.0,48007704.0,32713033.0,43584414.0,41277168.0,40925032.0,35881428.0,40063962.0,46210093.0,41668689.0,47012351.0,55281819.0,56250211.0,52247508.0,53368789.0,49801820.0,56035936.0,51343206.0,69157717.0,70024857.0,28100575.0,72230702.0,64599121.0,75612671.0,74136778.0,71564611.0,70326347.0,70858875.0,69181983.0,68436962.0,73488852.0,82248469.0,89670082.0,79130267.0,69539239.0,66549611.0,89090255.0,90272792.0,72118720.0,74918137.0,98178272.0,90340842.0,102262411.0,81167613.0,105110780.0,101427210.0,101064964.0,100833947.0,90748433.0,100686128.0,83979674.0,77033469.0,80605089.0,93058465.0,90589512.0,85244307.0,121302520.0,111482779.0,100864866.0,116195887.0,110596060.0,76718424.0,111606102.0,115826177.0,131312683.0,138494423.0,135132020.0,106758298.0,142073856.0,111450809.0,88613533.0]} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/futures__channel__mpsc/10/base/tukey.json: -------------------------------------------------------------------------------- 1 | [179082.99648570223,361130.3688412433,846590.0284560196,1028637.4008115607] -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/futures__channel__mpsc/10/new/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"async/mpsc_integer","function_id":"futures::channel::mpsc","value_str":"10","throughput":null,"full_id":"async/mpsc_integer/futures::channel::mpsc/10","directory_name":"async_mpsc_integer/futures__channel__mpsc/10","title":"async/mpsc_integer/futures::channel::mpsc/10"} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/futures__channel__mpsc/10/new/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":579755.3210578993,"upper_bound":615436.9651656272},"point_estimate":598074.1832864066,"standard_error":9077.29676621801},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":582717.5,"upper_bound":629128.18125},"point_estimate":608961.3090062111,"standard_error":10583.941328054527},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":69462.25357532362,"upper_bound":104423.81376398048},"point_estimate":89403.76497182394,"standard_error":8846.52491713957},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":583158.0646827724,"upper_bound":629937.3054888838},"point_estimate":606870.1609886213,"standard_error":11953.94440535812},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":72444.89766540828,"upper_bound":109837.74023865156},"point_estimate":91186.99309976785,"standard_error":9666.75156089054}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/futures__channel__mpsc/10/new/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[2.0,4.0,6.0,8.0,10.0,12.0,14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,38.0,40.0,42.0,44.0,46.0,48.0,50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0,74.0,76.0,78.0,80.0,82.0,84.0,86.0,88.0,90.0,92.0,94.0,96.0,98.0,100.0,102.0,104.0,106.0,108.0,110.0,112.0,114.0,116.0,118.0,120.0,122.0,124.0,126.0,128.0,130.0,132.0,134.0,136.0,138.0,140.0,142.0,144.0,146.0,148.0,150.0,152.0,154.0,156.0,158.0,160.0,162.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,180.0,182.0,184.0,186.0,188.0,190.0,192.0,194.0,196.0,198.0,200.0],"times":[1165435.0,2234629.0,3326284.0,3851969.0,4456653.0,7677829.0,8523709.0,3612275.0,11652360.0,10895116.0,14617310.0,15197738.0,17046958.0,13705104.0,16255530.0,20326814.0,19622161.0,24079726.0,20063687.0,25213702.0,26770037.0,27510988.0,25884591.0,32051010.0,35875697.0,31804002.0,22283928.0,29888427.0,30761851.0,30836922.0,48007704.0,32713033.0,43584414.0,41277168.0,40925032.0,35881428.0,40063962.0,46210093.0,41668689.0,47012351.0,55281819.0,56250211.0,52247508.0,53368789.0,49801820.0,56035936.0,51343206.0,69157717.0,70024857.0,28100575.0,72230702.0,64599121.0,75612671.0,74136778.0,71564611.0,70326347.0,70858875.0,69181983.0,68436962.0,73488852.0,82248469.0,89670082.0,79130267.0,69539239.0,66549611.0,89090255.0,90272792.0,72118720.0,74918137.0,98178272.0,90340842.0,102262411.0,81167613.0,105110780.0,101427210.0,101064964.0,100833947.0,90748433.0,100686128.0,83979674.0,77033469.0,80605089.0,93058465.0,90589512.0,85244307.0,121302520.0,111482779.0,100864866.0,116195887.0,110596060.0,76718424.0,111606102.0,115826177.0,131312683.0,138494423.0,135132020.0,106758298.0,142073856.0,111450809.0,88613533.0]} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/futures__channel__mpsc/10/new/tukey.json: -------------------------------------------------------------------------------- 1 | [179082.99648570223,361130.3688412433,846590.0284560196,1028637.4008115607] -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/futures__channel__mpsc/100/base/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"async/mpsc_integer","function_id":"futures::channel::mpsc","value_str":"100","throughput":null,"full_id":"async/mpsc_integer/futures::channel::mpsc/100","directory_name":"async_mpsc_integer/futures__channel__mpsc/100","title":"async/mpsc_integer/futures::channel::mpsc/100"} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/futures__channel__mpsc/100/base/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":792713.7528520569,"upper_bound":828687.659635876},"point_estimate":810734.4778666857,"standard_error":9172.589584111622},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":795034.9023025264,"upper_bound":830383.3881578947},"point_estimate":815817.8087121212,"standard_error":8646.821975916217},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":65650.41169219614,"upper_bound":107450.15220975348},"point_estimate":86545.63657887149,"standard_error":10605.447373918343},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":801970.702852826,"upper_bound":843758.6488892044},"point_estimate":822446.502065908,"standard_error":10619.70878625302},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":78131.7492038381,"upper_bound":105283.37743230452},"point_estimate":92405.6255181546,"standard_error":6917.732552397609}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/futures__channel__mpsc/100/base/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[2.0,4.0,6.0,8.0,10.0,12.0,14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,38.0,40.0,42.0,44.0,46.0,48.0,50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0,74.0,76.0,78.0,80.0,82.0,84.0,86.0,88.0,90.0,92.0,94.0,96.0,98.0,100.0,102.0,104.0,106.0,108.0,110.0,112.0,114.0,116.0,118.0,120.0,122.0,124.0,126.0,128.0,130.0,132.0,134.0,136.0,138.0,140.0,142.0,144.0,146.0,148.0,150.0,152.0,154.0,156.0,158.0,160.0,162.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,180.0,182.0,184.0,186.0,188.0,190.0,192.0,194.0,196.0,198.0,200.0],"times":[1428614.0,3456571.0,5030039.0,6006878.0,8570238.0,9405159.0,10718284.0,16724240.0,15871406.0,16460911.0,17963856.0,20088116.0,16300749.0,18463842.0,26857918.0,23199924.0,31292731.0,28640400.0,26852387.0,34702292.0,30556868.0,33834120.0,47050912.0,39413658.0,36763934.0,40153810.0,52438268.0,45269601.0,33764609.0,42914704.0,42682105.0,37506700.0,58121353.0,60263026.0,60526134.0,58686963.0,53733640.0,63980541.0,69644420.0,61198286.0,76199255.0,71821680.0,62163914.0,68507187.0,72505674.0,57587001.0,73842304.0,63280045.0,79155960.0,88505293.0,68565327.0,91454665.0,84430722.0,98878805.0,95217215.0,79562960.0,78156939.0,80884882.0,93639320.0,89832956.0,94206462.0,101732324.0,101620954.0,123723242.0,112328107.0,106998912.0,114374329.0,104393291.0,108118572.0,140507897.0,118041400.0,126390209.0,117809210.0,139569180.0,113517488.0,126218275.0,141517568.0,142185672.0,130601169.0,105496248.0,135852948.0,134628149.0,129522618.0,150589727.0,149919759.0,129379106.0,156247333.0,133426286.0,148841148.0,133988339.0,149576991.0,150384319.0,193549047.0,150027894.0,162670820.0,147795309.0,159126052.0,180224540.0,141551032.0,166356425.0]} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/futures__channel__mpsc/100/base/tukey.json: -------------------------------------------------------------------------------- 1 | [424261.03737843526,589949.751770613,1031786.3234830869,1197475.0378752644] -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/futures__channel__mpsc/100/new/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"async/mpsc_integer","function_id":"futures::channel::mpsc","value_str":"100","throughput":null,"full_id":"async/mpsc_integer/futures::channel::mpsc/100","directory_name":"async_mpsc_integer/futures__channel__mpsc/100","title":"async/mpsc_integer/futures::channel::mpsc/100"} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/futures__channel__mpsc/100/new/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":792713.7528520569,"upper_bound":828687.659635876},"point_estimate":810734.4778666857,"standard_error":9172.589584111622},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":795034.9023025264,"upper_bound":830383.3881578947},"point_estimate":815817.8087121212,"standard_error":8646.821975916217},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":65650.41169219614,"upper_bound":107450.15220975348},"point_estimate":86545.63657887149,"standard_error":10605.447373918343},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":801970.702852826,"upper_bound":843758.6488892044},"point_estimate":822446.502065908,"standard_error":10619.70878625302},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":78131.7492038381,"upper_bound":105283.37743230452},"point_estimate":92405.6255181546,"standard_error":6917.732552397609}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/futures__channel__mpsc/100/new/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[2.0,4.0,6.0,8.0,10.0,12.0,14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,38.0,40.0,42.0,44.0,46.0,48.0,50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0,74.0,76.0,78.0,80.0,82.0,84.0,86.0,88.0,90.0,92.0,94.0,96.0,98.0,100.0,102.0,104.0,106.0,108.0,110.0,112.0,114.0,116.0,118.0,120.0,122.0,124.0,126.0,128.0,130.0,132.0,134.0,136.0,138.0,140.0,142.0,144.0,146.0,148.0,150.0,152.0,154.0,156.0,158.0,160.0,162.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,180.0,182.0,184.0,186.0,188.0,190.0,192.0,194.0,196.0,198.0,200.0],"times":[1428614.0,3456571.0,5030039.0,6006878.0,8570238.0,9405159.0,10718284.0,16724240.0,15871406.0,16460911.0,17963856.0,20088116.0,16300749.0,18463842.0,26857918.0,23199924.0,31292731.0,28640400.0,26852387.0,34702292.0,30556868.0,33834120.0,47050912.0,39413658.0,36763934.0,40153810.0,52438268.0,45269601.0,33764609.0,42914704.0,42682105.0,37506700.0,58121353.0,60263026.0,60526134.0,58686963.0,53733640.0,63980541.0,69644420.0,61198286.0,76199255.0,71821680.0,62163914.0,68507187.0,72505674.0,57587001.0,73842304.0,63280045.0,79155960.0,88505293.0,68565327.0,91454665.0,84430722.0,98878805.0,95217215.0,79562960.0,78156939.0,80884882.0,93639320.0,89832956.0,94206462.0,101732324.0,101620954.0,123723242.0,112328107.0,106998912.0,114374329.0,104393291.0,108118572.0,140507897.0,118041400.0,126390209.0,117809210.0,139569180.0,113517488.0,126218275.0,141517568.0,142185672.0,130601169.0,105496248.0,135852948.0,134628149.0,129522618.0,150589727.0,149919759.0,129379106.0,156247333.0,133426286.0,148841148.0,133988339.0,149576991.0,150384319.0,193549047.0,150027894.0,162670820.0,147795309.0,159126052.0,180224540.0,141551032.0,166356425.0]} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/futures__channel__mpsc/100/new/tukey.json: -------------------------------------------------------------------------------- 1 | [424261.03737843526,589949.751770613,1031786.3234830869,1197475.0378752644] -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/futures__channel__mpsc/50/base/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"async/mpsc_integer","function_id":"futures::channel::mpsc","value_str":"50","throughput":null,"full_id":"async/mpsc_integer/futures::channel::mpsc/50","directory_name":"async_mpsc_integer/futures__channel__mpsc/50","title":"async/mpsc_integer/futures::channel::mpsc/50"} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/futures__channel__mpsc/50/base/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":688758.1479414296,"upper_bound":731148.7342757848},"point_estimate":710448.086365937,"standard_error":10823.07061631629},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":683594.5966435185,"upper_bound":721572.9657842158},"point_estimate":704136.1630434783,"standard_error":9315.074348482896},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":59459.594770920754,"upper_bound":112256.81245886786},"point_estimate":83340.4972981999,"standard_error":13812.96917249536},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":650489.4581178486,"upper_bound":729565.7367504037},"point_estimate":692058.2675764741,"standard_error":20227.583089168133},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":83851.27909658436,"upper_bound":133264.84998785667},"point_estimate":108623.06437739484,"standard_error":12788.30061237802}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/futures__channel__mpsc/50/base/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[2.0,4.0,6.0,8.0,10.0,12.0,14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,38.0,40.0,42.0,44.0,46.0,48.0,50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0,74.0,76.0,78.0,80.0,82.0,84.0,86.0,88.0,90.0,92.0,94.0,96.0,98.0,100.0,102.0,104.0,106.0,108.0,110.0,112.0,114.0,116.0,118.0,120.0,122.0,124.0,126.0,128.0,130.0,132.0,134.0,136.0,138.0,140.0,142.0,144.0,146.0,148.0,150.0,152.0,154.0,156.0,158.0,160.0,162.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,180.0,182.0,184.0,186.0,188.0,190.0,192.0,194.0,196.0,198.0,200.0],"times":[1400310.0,2807844.0,3708327.0,4752994.0,5624664.0,8129544.0,8264370.0,11535700.0,13531196.0,14326271.0,14519827.0,16802747.0,18956272.0,24708567.0,23457751.0,20934767.0,20840038.0,26651394.0,27079925.0,26848347.0,27988625.0,38720383.0,32671336.0,31929112.0,34075153.0,33937081.0,50063028.0,33666139.0,39037954.0,42830571.0,45892526.0,40781925.0,53264537.0,54879413.0,58324292.0,57732462.0,54911673.0,53160640.0,56470734.0,62691015.0,75834257.0,64831346.0,56827419.0,62451672.0,72533762.0,66767810.0,59043853.0,77592625.0,59908891.0,75864274.0,74659414.0,83563814.0,75504353.0,73580161.0,72094019.0,74409681.0,78166040.0,107743401.0,110762164.0,71312260.0,73139678.0,99608648.0,88400437.0,87794100.0,85772144.0,105191682.0,113599203.0,90776123.0,97470963.0,117090710.0,112843012.0,123348012.0,96956830.0,102543432.0,85109200.0,119630897.0,110750973.0,117673984.0,96191541.0,126484517.0,102804736.0,146987426.0,110229907.0,148007497.0,105709673.0,140129860.0,124052996.0,117891927.0,114242952.0,137863301.0,116246894.0,136011637.0,88143522.0,130863925.0,122781410.0,127477447.0,47649541.0,63192825.0,135506761.0,152888424.0]} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/futures__channel__mpsc/50/base/tukey.json: -------------------------------------------------------------------------------- 1 | [292702.5415428319,476321.53729239496,965972.1926245631,1149591.188374126] -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/futures__channel__mpsc/50/new/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"async/mpsc_integer","function_id":"futures::channel::mpsc","value_str":"50","throughput":null,"full_id":"async/mpsc_integer/futures::channel::mpsc/50","directory_name":"async_mpsc_integer/futures__channel__mpsc/50","title":"async/mpsc_integer/futures::channel::mpsc/50"} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/futures__channel__mpsc/50/new/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":688758.1479414296,"upper_bound":731148.7342757848},"point_estimate":710448.086365937,"standard_error":10823.07061631629},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":683594.5966435185,"upper_bound":721572.9657842158},"point_estimate":704136.1630434783,"standard_error":9315.074348482896},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":59459.594770920754,"upper_bound":112256.81245886786},"point_estimate":83340.4972981999,"standard_error":13812.96917249536},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":650489.4581178486,"upper_bound":729565.7367504037},"point_estimate":692058.2675764741,"standard_error":20227.583089168133},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":83851.27909658436,"upper_bound":133264.84998785667},"point_estimate":108623.06437739484,"standard_error":12788.30061237802}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/futures__channel__mpsc/50/new/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[2.0,4.0,6.0,8.0,10.0,12.0,14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,38.0,40.0,42.0,44.0,46.0,48.0,50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0,74.0,76.0,78.0,80.0,82.0,84.0,86.0,88.0,90.0,92.0,94.0,96.0,98.0,100.0,102.0,104.0,106.0,108.0,110.0,112.0,114.0,116.0,118.0,120.0,122.0,124.0,126.0,128.0,130.0,132.0,134.0,136.0,138.0,140.0,142.0,144.0,146.0,148.0,150.0,152.0,154.0,156.0,158.0,160.0,162.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,180.0,182.0,184.0,186.0,188.0,190.0,192.0,194.0,196.0,198.0,200.0],"times":[1400310.0,2807844.0,3708327.0,4752994.0,5624664.0,8129544.0,8264370.0,11535700.0,13531196.0,14326271.0,14519827.0,16802747.0,18956272.0,24708567.0,23457751.0,20934767.0,20840038.0,26651394.0,27079925.0,26848347.0,27988625.0,38720383.0,32671336.0,31929112.0,34075153.0,33937081.0,50063028.0,33666139.0,39037954.0,42830571.0,45892526.0,40781925.0,53264537.0,54879413.0,58324292.0,57732462.0,54911673.0,53160640.0,56470734.0,62691015.0,75834257.0,64831346.0,56827419.0,62451672.0,72533762.0,66767810.0,59043853.0,77592625.0,59908891.0,75864274.0,74659414.0,83563814.0,75504353.0,73580161.0,72094019.0,74409681.0,78166040.0,107743401.0,110762164.0,71312260.0,73139678.0,99608648.0,88400437.0,87794100.0,85772144.0,105191682.0,113599203.0,90776123.0,97470963.0,117090710.0,112843012.0,123348012.0,96956830.0,102543432.0,85109200.0,119630897.0,110750973.0,117673984.0,96191541.0,126484517.0,102804736.0,146987426.0,110229907.0,148007497.0,105709673.0,140129860.0,124052996.0,117891927.0,114242952.0,137863301.0,116246894.0,136011637.0,88143522.0,130863925.0,122781410.0,127477447.0,47649541.0,63192825.0,135506761.0,152888424.0]} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/futures__channel__mpsc/50/new/tukey.json: -------------------------------------------------------------------------------- 1 | [292702.5415428319,476321.53729239496,965972.1926245631,1149591.188374126] -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/futures__channel__mpsc/report/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | async/mpsc_integer/futures::channel::mpsc Summary - Criterion.rs 7 | 50 | 51 | 52 | 53 |
54 |

async/mpsc_integer/futures::channel::mpsc

55 |

Violin Plot

56 | 57 | Violin Plot 58 | 59 |

This chart shows the relationship between function/parameter and iteration time. The thickness of the shaded 60 | region indicates the probability that a measurement of the given function/parameter would take a particular 61 | length of time.

62 |

Line Chart

63 | Line Chart 64 |

This chart shows the mean measured time for each function as the input (or the size of the input) increases.

65 |
66 | 67 |

async/mpsc_integer/futures::channel::mpsc/10

68 |
69 | 70 | 71 | 72 | 78 | 84 | 85 | 86 |
73 | 74 | PDF of Slope 76 | 77 | 79 | 80 | Regression 82 | 83 |
87 |
88 |
89 | 90 |

async/mpsc_integer/futures::channel::mpsc/50

91 |
92 | 93 | 94 | 95 | 101 | 107 | 108 | 109 |
96 | 97 | PDF of Slope 99 | 100 | 102 | 103 | Regression 105 | 106 |
110 |
111 |
112 | 113 |

async/mpsc_integer/futures::channel::mpsc/100

114 |
115 | 116 | 117 | 118 | 124 | 130 | 131 | 132 |
119 | 120 | PDF of Slope 122 | 123 | 125 | 126 | Regression 128 | 129 |
133 |
134 |
135 | 140 | 141 | 142 | -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/futures__channel__mpsc/report/lines.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | async/mpsc_integer/futures::channel::mpsc: Comparison 4 | 5 | 6 | Average time (us) 7 | 8 | 9 | Input 10 | 11 | 12 | 13 | 600.0 14 | 15 | 16 | 17 | 650.0 18 | 19 | 20 | 21 | 700.0 22 | 23 | 24 | 25 | 750.0 26 | 27 | 28 | 29 | 800.0 30 | 31 | 32 | 33 | 34 | 20.0 35 | 36 | 37 | 38 | 30.0 39 | 40 | 41 | 42 | 40.0 43 | 44 | 45 | 46 | 50.0 47 | 48 | 49 | 50 | 60.0 51 | 52 | 53 | 54 | 70.0 55 | 56 | 57 | 58 | 80.0 59 | 60 | 61 | 62 | 90.0 63 | 64 | 65 | 66 | 100.0 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | futures::channel::mpsc 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/tokio__sync__mpsc/10/base/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"async/mpsc_integer","function_id":"tokio::sync::mpsc","value_str":"10","throughput":null,"full_id":"async/mpsc_integer/tokio::sync::mpsc/10","directory_name":"async_mpsc_integer/tokio__sync__mpsc/10","title":"async/mpsc_integer/tokio::sync::mpsc/10"} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/tokio__sync__mpsc/10/base/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":482936.92126860406,"upper_bound":504825.65395575925},"point_estimate":493913.15062202024,"standard_error":5588.501270150244},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":470905.73986486485,"upper_bound":523054.3617021277},"point_estimate":493125.10361426766,"standard_error":11652.562956237389},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":56110.3677722242,"upper_bound":80254.34693732174},"point_estimate":68598.94554076495,"standard_error":6149.141424727244},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":487559.9122965969,"upper_bound":513414.84688169084},"point_estimate":500803.6196660263,"standard_error":6599.3864791515525},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":50367.362903224144,"upper_bound":61261.123866906826},"point_estimate":56156.81436047248,"standard_error":2785.087948686928}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/tokio__sync__mpsc/10/base/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[2.0,4.0,6.0,8.0,10.0,12.0,14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,38.0,40.0,42.0,44.0,46.0,48.0,50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0,74.0,76.0,78.0,80.0,82.0,84.0,86.0,88.0,90.0,92.0,94.0,96.0,98.0,100.0,102.0,104.0,106.0,108.0,110.0,112.0,114.0,116.0,118.0,120.0,122.0,124.0,126.0,128.0,130.0,132.0,134.0,136.0,138.0,140.0,142.0,144.0,146.0,148.0,150.0,152.0,154.0,156.0,158.0,160.0,162.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,180.0,182.0,184.0,186.0,188.0,190.0,192.0,194.0,196.0,198.0,200.0],"times":[995544.0,1699516.0,3080339.0,3414802.0,4474076.0,6851344.0,7887236.0,6886932.0,9368127.0,11044790.0,11680443.0,10851514.0,12848574.0,13185741.0,17838406.0,17249651.0,15181438.0,16376479.0,14074543.0,15264496.0,25579805.0,23090003.0,19197748.0,25476860.0,23344545.0,27255826.0,23502624.0,26889894.0,25596737.0,34180801.0,33862077.0,31588235.0,29771347.0,29196729.0,30667252.0,32467899.0,41692855.0,31352479.0,44214558.0,43795685.0,36400231.0,47018694.0,46465807.0,47089728.0,39113514.0,43171023.0,40477766.0,40390852.0,37204813.0,48641305.0,53716759.0,60770447.0,43969894.0,47305978.0,62095273.0,50361941.0,59826822.0,64994600.0,57495840.0,64785013.0,68790383.0,62274172.0,55151525.0,51196871.0,74436978.0,60128462.0,67842620.0,61770049.0,62097899.0,68511856.0,77681758.0,67644324.0,78676982.0,69864766.0,77579214.0,82822327.0,76396446.0,70936785.0,77587109.0,83899233.0,88931286.0,78059774.0,75127395.0,88658430.0,83030901.0,74897601.0,73474958.0,102102451.0,100997830.0,96030800.0,83490881.0,83264413.0,78962362.0,98334220.0,110408869.0,100459812.0,103451804.0,109847757.0,97551439.0,109850071.0]} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/tokio__sync__mpsc/10/base/tukey.json: -------------------------------------------------------------------------------- 1 | [176444.10770348855,312770.5741642443,676307.818059593,812634.2845203487] -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/tokio__sync__mpsc/10/new/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"async/mpsc_integer","function_id":"tokio::sync::mpsc","value_str":"10","throughput":null,"full_id":"async/mpsc_integer/tokio::sync::mpsc/10","directory_name":"async_mpsc_integer/tokio__sync__mpsc/10","title":"async/mpsc_integer/tokio::sync::mpsc/10"} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/tokio__sync__mpsc/10/new/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":482936.92126860406,"upper_bound":504825.65395575925},"point_estimate":493913.15062202024,"standard_error":5588.501270150244},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":470905.73986486485,"upper_bound":523054.3617021277},"point_estimate":493125.10361426766,"standard_error":11652.562956237389},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":56110.3677722242,"upper_bound":80254.34693732174},"point_estimate":68598.94554076495,"standard_error":6149.141424727244},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":487559.9122965969,"upper_bound":513414.84688169084},"point_estimate":500803.6196660263,"standard_error":6599.3864791515525},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":50367.362903224144,"upper_bound":61261.123866906826},"point_estimate":56156.81436047248,"standard_error":2785.087948686928}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/tokio__sync__mpsc/10/new/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[2.0,4.0,6.0,8.0,10.0,12.0,14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,38.0,40.0,42.0,44.0,46.0,48.0,50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0,74.0,76.0,78.0,80.0,82.0,84.0,86.0,88.0,90.0,92.0,94.0,96.0,98.0,100.0,102.0,104.0,106.0,108.0,110.0,112.0,114.0,116.0,118.0,120.0,122.0,124.0,126.0,128.0,130.0,132.0,134.0,136.0,138.0,140.0,142.0,144.0,146.0,148.0,150.0,152.0,154.0,156.0,158.0,160.0,162.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,180.0,182.0,184.0,186.0,188.0,190.0,192.0,194.0,196.0,198.0,200.0],"times":[995544.0,1699516.0,3080339.0,3414802.0,4474076.0,6851344.0,7887236.0,6886932.0,9368127.0,11044790.0,11680443.0,10851514.0,12848574.0,13185741.0,17838406.0,17249651.0,15181438.0,16376479.0,14074543.0,15264496.0,25579805.0,23090003.0,19197748.0,25476860.0,23344545.0,27255826.0,23502624.0,26889894.0,25596737.0,34180801.0,33862077.0,31588235.0,29771347.0,29196729.0,30667252.0,32467899.0,41692855.0,31352479.0,44214558.0,43795685.0,36400231.0,47018694.0,46465807.0,47089728.0,39113514.0,43171023.0,40477766.0,40390852.0,37204813.0,48641305.0,53716759.0,60770447.0,43969894.0,47305978.0,62095273.0,50361941.0,59826822.0,64994600.0,57495840.0,64785013.0,68790383.0,62274172.0,55151525.0,51196871.0,74436978.0,60128462.0,67842620.0,61770049.0,62097899.0,68511856.0,77681758.0,67644324.0,78676982.0,69864766.0,77579214.0,82822327.0,76396446.0,70936785.0,77587109.0,83899233.0,88931286.0,78059774.0,75127395.0,88658430.0,83030901.0,74897601.0,73474958.0,102102451.0,100997830.0,96030800.0,83490881.0,83264413.0,78962362.0,98334220.0,110408869.0,100459812.0,103451804.0,109847757.0,97551439.0,109850071.0]} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/tokio__sync__mpsc/10/new/tukey.json: -------------------------------------------------------------------------------- 1 | [176444.10770348855,312770.5741642443,676307.818059593,812634.2845203487] -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/tokio__sync__mpsc/100/base/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"async/mpsc_integer","function_id":"tokio::sync::mpsc","value_str":"100","throughput":null,"full_id":"async/mpsc_integer/tokio::sync::mpsc/100","directory_name":"async_mpsc_integer/tokio__sync__mpsc/100","title":"async/mpsc_integer/tokio::sync::mpsc/100"} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/tokio__sync__mpsc/100/base/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1059589.8953534456,"upper_bound":1088354.4897151156},"point_estimate":1074437.5203615164,"standard_error":7322.81358653824},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1073623.3134328357,"upper_bound":1102856.4666666666},"point_estimate":1090855.3465982028,"standard_error":6759.089837450624},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":38585.20211684615,"upper_bound":65570.56956088952},"point_estimate":47719.939515524515,"standard_error":6693.505035314197},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1084300.4877183263,"upper_bound":1107267.185097753},"point_estimate":1096406.3621575292,"standard_error":5898.710682687453},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":58775.10053317289,"upper_bound":86777.43872237662},"point_estimate":73608.06516364984,"standard_error":7150.233321908805}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/tokio__sync__mpsc/100/base/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,38.0,39.0,40.0,41.0,42.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,69.0,70.0,71.0,72.0,73.0,74.0,75.0,76.0,77.0,78.0,79.0,80.0,81.0,82.0,83.0,84.0,85.0,86.0,87.0,88.0,89.0,90.0,91.0,92.0,93.0,94.0,95.0,96.0,97.0,98.0,99.0,100.0],"times":[816726.0,1911327.0,3570016.0,3889310.0,4590437.0,7068467.0,6633093.0,7269527.0,7794020.0,8470890.0,11105086.0,11034493.0,13772314.0,13715215.0,17580381.0,15689392.0,17987591.0,17841094.0,20828358.0,20561352.0,20790696.0,23090188.0,22934292.0,26133107.0,26730026.0,32271183.0,26703816.0,31590113.0,33642097.0,33085694.0,34967616.0,34116615.0,36338410.0,38356509.0,38277439.0,38877145.0,37623592.0,42882344.0,42882965.0,42363493.0,44732075.0,43515693.0,45642778.0,46076719.0,47896764.0,51581247.0,52459288.0,53241909.0,56303323.0,53266005.0,54226683.0,57674067.0,57748739.0,55457092.0,63189245.0,64567704.0,62169015.0,66170517.0,64283706.0,65933078.0,67494472.0,68412770.0,68319243.0,72278025.0,72848785.0,70634926.0,71932762.0,73559531.0,73655883.0,77187597.0,75839035.0,80765859.0,80669757.0,80538338.0,82410881.0,87026276.0,81965740.0,89000383.0,88702078.0,91169478.0,88154141.0,93587474.0,92068378.0,98236101.0,94392797.0,94969048.0,96316569.0,97538101.0,100608240.0,100780897.0,95063397.0,89026913.0,99620892.0,106729915.0,107946919.0,95287341.0,108957471.0,107836880.0,104383105.0,110988896.0]} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/tokio__sync__mpsc/100/base/tukey.json: -------------------------------------------------------------------------------- 1 | [848371.5855154807,950770.5920001646,1223834.6092926548,1326233.6157773386] -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/tokio__sync__mpsc/100/new/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"async/mpsc_integer","function_id":"tokio::sync::mpsc","value_str":"100","throughput":null,"full_id":"async/mpsc_integer/tokio::sync::mpsc/100","directory_name":"async_mpsc_integer/tokio__sync__mpsc/100","title":"async/mpsc_integer/tokio::sync::mpsc/100"} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/tokio__sync__mpsc/100/new/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1059589.8953534456,"upper_bound":1088354.4897151156},"point_estimate":1074437.5203615164,"standard_error":7322.81358653824},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1073623.3134328357,"upper_bound":1102856.4666666666},"point_estimate":1090855.3465982028,"standard_error":6759.089837450624},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":38585.20211684615,"upper_bound":65570.56956088952},"point_estimate":47719.939515524515,"standard_error":6693.505035314197},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1084300.4877183263,"upper_bound":1107267.185097753},"point_estimate":1096406.3621575292,"standard_error":5898.710682687453},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":58775.10053317289,"upper_bound":86777.43872237662},"point_estimate":73608.06516364984,"standard_error":7150.233321908805}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/tokio__sync__mpsc/100/new/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,38.0,39.0,40.0,41.0,42.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,69.0,70.0,71.0,72.0,73.0,74.0,75.0,76.0,77.0,78.0,79.0,80.0,81.0,82.0,83.0,84.0,85.0,86.0,87.0,88.0,89.0,90.0,91.0,92.0,93.0,94.0,95.0,96.0,97.0,98.0,99.0,100.0],"times":[816726.0,1911327.0,3570016.0,3889310.0,4590437.0,7068467.0,6633093.0,7269527.0,7794020.0,8470890.0,11105086.0,11034493.0,13772314.0,13715215.0,17580381.0,15689392.0,17987591.0,17841094.0,20828358.0,20561352.0,20790696.0,23090188.0,22934292.0,26133107.0,26730026.0,32271183.0,26703816.0,31590113.0,33642097.0,33085694.0,34967616.0,34116615.0,36338410.0,38356509.0,38277439.0,38877145.0,37623592.0,42882344.0,42882965.0,42363493.0,44732075.0,43515693.0,45642778.0,46076719.0,47896764.0,51581247.0,52459288.0,53241909.0,56303323.0,53266005.0,54226683.0,57674067.0,57748739.0,55457092.0,63189245.0,64567704.0,62169015.0,66170517.0,64283706.0,65933078.0,67494472.0,68412770.0,68319243.0,72278025.0,72848785.0,70634926.0,71932762.0,73559531.0,73655883.0,77187597.0,75839035.0,80765859.0,80669757.0,80538338.0,82410881.0,87026276.0,81965740.0,89000383.0,88702078.0,91169478.0,88154141.0,93587474.0,92068378.0,98236101.0,94392797.0,94969048.0,96316569.0,97538101.0,100608240.0,100780897.0,95063397.0,89026913.0,99620892.0,106729915.0,107946919.0,95287341.0,108957471.0,107836880.0,104383105.0,110988896.0]} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/tokio__sync__mpsc/100/new/tukey.json: -------------------------------------------------------------------------------- 1 | [848371.5855154807,950770.5920001646,1223834.6092926548,1326233.6157773386] -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/tokio__sync__mpsc/50/base/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"async/mpsc_integer","function_id":"tokio::sync::mpsc","value_str":"50","throughput":null,"full_id":"async/mpsc_integer/tokio::sync::mpsc/50","directory_name":"async_mpsc_integer/tokio__sync__mpsc/50","title":"async/mpsc_integer/tokio::sync::mpsc/50"} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/tokio__sync__mpsc/50/base/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":934302.4256064423,"upper_bound":958103.7947548326},"point_estimate":947000.4504237383,"standard_error":6079.91129231216},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":947017.8275193798,"upper_bound":963763.8421052631},"point_estimate":953667.0030303029,"standard_error":4067.4625624232144},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":28404.986271442936,"upper_bound":46488.62986575492},"point_estimate":39076.04573512384,"standard_error":4743.3795093974895},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":940126.9848908584,"upper_bound":966143.6010965626},"point_estimate":954511.6161696468,"standard_error":6644.8043092619555},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":38718.391791696224,"upper_bound":82047.49735919523},"point_estimate":61026.79598073933,"standard_error":11232.231731965427}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/tokio__sync__mpsc/50/base/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,38.0,39.0,40.0,41.0,42.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,69.0,70.0,71.0,72.0,73.0,74.0,75.0,76.0,77.0,78.0,79.0,80.0,81.0,82.0,83.0,84.0,85.0,86.0,87.0,88.0,89.0,90.0,91.0,92.0,93.0,94.0,95.0,96.0,97.0,98.0,99.0,100.0],"times":[606839.0,1746835.0,2958027.0,3690364.0,4752143.0,4827916.0,6642140.0,7915379.0,8576600.0,8740942.0,9954247.0,10021485.0,12259089.0,13751774.0,13615857.0,16655428.0,16055413.0,17475520.0,18311513.0,19054588.0,17854949.0,21406911.0,22726027.0,23137154.0,23086539.0,24856058.0,25552707.0,26955090.0,26992560.0,28990371.0,28542725.0,29666962.0,32271230.0,31741959.0,34520286.0,35682897.0,34728270.0,37847963.0,35743020.0,37199296.0,39949901.0,39578569.0,39778557.0,41957180.0,43859199.0,45277654.0,49190999.0,46716055.0,45329502.0,49667321.0,46358008.0,51108056.0,51327403.0,51153693.0,57847471.0,55383297.0,54264210.0,57254880.0,57718847.0,57225704.0,55066198.0,56564663.0,62005580.0,66635861.0,62132420.0,54250744.0,64481955.0,66467563.0,68670523.0,62637966.0,66630482.0,67724181.0,72514587.0,70706275.0,71565310.0,69491497.0,75546565.0,53122980.0,71988181.0,75388296.0,80378710.0,78740088.0,77791874.0,79113805.0,82035024.0,81415511.0,84698213.0,89117617.0,87202683.0,91102053.0,82535430.0,86215836.0,91614543.0,94133960.0,90342955.0,90458695.0,93270205.0,96717348.0,93787023.0,95183707.0]} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/tokio__sync__mpsc/50/base/tukey.json: -------------------------------------------------------------------------------- 1 | [778084.517778773,854331.7830273176,1057657.8236901031,1133905.0889386476] -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/tokio__sync__mpsc/50/new/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"async/mpsc_integer","function_id":"tokio::sync::mpsc","value_str":"50","throughput":null,"full_id":"async/mpsc_integer/tokio::sync::mpsc/50","directory_name":"async_mpsc_integer/tokio__sync__mpsc/50","title":"async/mpsc_integer/tokio::sync::mpsc/50"} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/tokio__sync__mpsc/50/new/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":934302.4256064423,"upper_bound":958103.7947548326},"point_estimate":947000.4504237383,"standard_error":6079.91129231216},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":947017.8275193798,"upper_bound":963763.8421052631},"point_estimate":953667.0030303029,"standard_error":4067.4625624232144},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":28404.986271442936,"upper_bound":46488.62986575492},"point_estimate":39076.04573512384,"standard_error":4743.3795093974895},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":940126.9848908584,"upper_bound":966143.6010965626},"point_estimate":954511.6161696468,"standard_error":6644.8043092619555},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":38718.391791696224,"upper_bound":82047.49735919523},"point_estimate":61026.79598073933,"standard_error":11232.231731965427}} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/tokio__sync__mpsc/50/new/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,38.0,39.0,40.0,41.0,42.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,69.0,70.0,71.0,72.0,73.0,74.0,75.0,76.0,77.0,78.0,79.0,80.0,81.0,82.0,83.0,84.0,85.0,86.0,87.0,88.0,89.0,90.0,91.0,92.0,93.0,94.0,95.0,96.0,97.0,98.0,99.0,100.0],"times":[606839.0,1746835.0,2958027.0,3690364.0,4752143.0,4827916.0,6642140.0,7915379.0,8576600.0,8740942.0,9954247.0,10021485.0,12259089.0,13751774.0,13615857.0,16655428.0,16055413.0,17475520.0,18311513.0,19054588.0,17854949.0,21406911.0,22726027.0,23137154.0,23086539.0,24856058.0,25552707.0,26955090.0,26992560.0,28990371.0,28542725.0,29666962.0,32271230.0,31741959.0,34520286.0,35682897.0,34728270.0,37847963.0,35743020.0,37199296.0,39949901.0,39578569.0,39778557.0,41957180.0,43859199.0,45277654.0,49190999.0,46716055.0,45329502.0,49667321.0,46358008.0,51108056.0,51327403.0,51153693.0,57847471.0,55383297.0,54264210.0,57254880.0,57718847.0,57225704.0,55066198.0,56564663.0,62005580.0,66635861.0,62132420.0,54250744.0,64481955.0,66467563.0,68670523.0,62637966.0,66630482.0,67724181.0,72514587.0,70706275.0,71565310.0,69491497.0,75546565.0,53122980.0,71988181.0,75388296.0,80378710.0,78740088.0,77791874.0,79113805.0,82035024.0,81415511.0,84698213.0,89117617.0,87202683.0,91102053.0,82535430.0,86215836.0,91614543.0,94133960.0,90342955.0,90458695.0,93270205.0,96717348.0,93787023.0,95183707.0]} -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/tokio__sync__mpsc/50/new/tukey.json: -------------------------------------------------------------------------------- 1 | [778084.517778773,854331.7830273176,1057657.8236901031,1133905.0889386476] -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/tokio__sync__mpsc/report/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | async/mpsc_integer/tokio::sync::mpsc Summary - Criterion.rs 7 | 50 | 51 | 52 | 53 |
54 |

async/mpsc_integer/tokio::sync::mpsc

55 |

Violin Plot

56 | 57 | Violin Plot 58 | 59 |

This chart shows the relationship between function/parameter and iteration time. The thickness of the shaded 60 | region indicates the probability that a measurement of the given function/parameter would take a particular 61 | length of time.

62 |

Line Chart

63 | Line Chart 64 |

This chart shows the mean measured time for each function as the input (or the size of the input) increases.

65 |
66 | 67 |

async/mpsc_integer/tokio::sync::mpsc/10

68 |
69 | 70 | 71 | 72 | 78 | 84 | 85 | 86 |
73 | 74 | PDF of Slope 76 | 77 | 79 | 80 | Regression 82 | 83 |
87 |
88 |
89 | 90 |

async/mpsc_integer/tokio::sync::mpsc/50

91 |
92 | 93 | 94 | 95 | 101 | 107 | 108 | 109 |
96 | 97 | PDF of Slope 99 | 100 | 102 | 103 | Regression 105 | 106 |
110 |
111 |
112 | 113 |

async/mpsc_integer/tokio::sync::mpsc/100

114 |
115 | 116 | 117 | 118 | 124 | 130 | 131 | 132 |
119 | 120 | PDF of Slope 122 | 123 | 125 | 126 | Regression 128 | 129 |
133 |
134 |
135 | 140 | 141 | 142 | -------------------------------------------------------------------------------- /assets/async-mpsc-integer-8c882b0/tokio__sync__mpsc/report/lines.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | async/mpsc_integer/tokio::sync::mpsc: Comparison 4 | 5 | 6 | Average time (ms) 7 | 8 | 9 | Input 10 | 11 | 12 | 13 | 0.5 14 | 15 | 16 | 17 | 0.6 18 | 19 | 20 | 21 | 0.7 22 | 23 | 24 | 25 | 0.8 26 | 27 | 28 | 29 | 0.9 30 | 31 | 32 | 33 | 1.0 34 | 35 | 36 | 37 | 38 | 20.0 39 | 40 | 41 | 42 | 30.0 43 | 44 | 45 | 46 | 40.0 47 | 48 | 49 | 50 | 50.0 51 | 52 | 53 | 54 | 60.0 55 | 56 | 57 | 58 | 70.0 59 | 60 | 61 | 62 | 80.0 63 | 64 | 65 | 66 | 90.0 67 | 68 | 69 | 70 | 100.0 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | tokio::sync::mpsc 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /bench/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "bench" 3 | version = "0.1.0" 4 | edition = "2021" 5 | publish = false 6 | 7 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 8 | 9 | [features] 10 | default = [] 11 | # These feature flags can be disabled if we don't want to run comparison 12 | # benchmarks, such as when just comparing two `thingbuf` versions. 13 | comparisons = ["crossbeam", "async-std", "futures", "tokio-sync", "std-sync"] 14 | tokio-sync = ["tokio/sync"] 15 | std-sync = [] 16 | 17 | 18 | [dependencies] 19 | thingbuf = { path = ".." } 20 | criterion = { version = "0.3.5", features = ["async_tokio"] } 21 | 22 | # for comparison benchmarks 23 | tokio = { version = "1.14.0", features = ["rt", "rt-multi-thread", "sync", "parking_lot"] } 24 | crossbeam = { version = "0.8.1", optional = true } 25 | async-std = { version = "1", optional = true } 26 | futures = { version = "0.3", optional = true } 27 | 28 | [[bench]] 29 | name = "sync_spsc" 30 | harness = false 31 | 32 | [[bench]] 33 | name = "async_mpsc" 34 | harness = false 35 | 36 | [[bench]] 37 | name = "async_mpsc_nowait" 38 | harness = false 39 | 40 | [[bench]] 41 | name = "async_spsc" 42 | harness = false -------------------------------------------------------------------------------- /bench/benches/async_mpsc.rs: -------------------------------------------------------------------------------- 1 | mod async_mpsc_utils; 2 | use criterion::{criterion_group, criterion_main, Criterion}; 3 | 4 | fn bench_mpsc_reusable(c: &mut Criterion) { 5 | let group = c.benchmark_group("async/mpsc_reusable"); 6 | async_mpsc_utils::bench_mpsc_reusable(group, 200, 50); 7 | } 8 | 9 | fn bench_mpsc_integer(c: &mut Criterion) { 10 | let group = c.benchmark_group("async/mpsc_integer"); 11 | async_mpsc_utils::bench_mpsc_integer(group, 1000, 100); 12 | } 13 | 14 | criterion_group!(benches, bench_mpsc_reusable, bench_mpsc_integer,); 15 | criterion_main!(benches); 16 | -------------------------------------------------------------------------------- /bench/benches/async_mpsc_nowait.rs: -------------------------------------------------------------------------------- 1 | mod async_mpsc_utils; 2 | use criterion::{criterion_group, criterion_main, Criterion}; 3 | 4 | fn bench_mpsc_reusable(c: &mut Criterion) { 5 | let group = c.benchmark_group("async/nowait/mpsc_reusable"); 6 | async_mpsc_utils::bench_mpsc_reusable(group, 200, 256); 7 | } 8 | 9 | fn bench_mpsc_integer(c: &mut Criterion) { 10 | let group = c.benchmark_group("async/nowait/mpsc_integer"); 11 | async_mpsc_utils::bench_mpsc_integer(group, 200, 256); 12 | } 13 | 14 | criterion_group!(benches, bench_mpsc_reusable, bench_mpsc_integer,); 15 | criterion_main!(benches); 16 | -------------------------------------------------------------------------------- /bench/src/lib.rs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /bin/loom: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Runs `loom` tests, using `cargo nextest` if it's available, or `cargo test` 4 | # otherwise. 5 | # 6 | # Usage: 7 | # All environment variables honored by `loom` can be used to configure `loom` 8 | # test behavior. Default values are set for `LOOM_LOG` and 9 | # `LOOM_MAX_PREEMPTIONS`, if those variables are unset when the script is 10 | # invoked. 11 | # 12 | # Any command-line arguments are passed through to the test invocation. 13 | set -euo pipefail 14 | set -x 15 | 16 | cd "$(dirname "$0")"/.. 17 | TESTCMD=(test) 18 | 19 | # if cargo nextest is installed, use it instead! 20 | if cargo list | grep -q "nextest"; then 21 | TESTCMD=(nextest run --cargo-profile loom) 22 | fi 23 | 24 | TESTCMD+=(--profile loom --lib) 25 | # pass through args 26 | TESTCMD+=(${@}) 27 | 28 | RUSTFLAGS="--cfg loom ${RUSTFLAGS:-}" \ 29 | LOOM_LOG="${LOOM_LOG:-info}" \ 30 | LOOM_MAX_PREEMPTIONS="${LOOM_MAX_PREEMPTIONS:-2}" \ 31 | cargo ${TESTCMD[@]} -------------------------------------------------------------------------------- /bin/miri: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Runs `miri` tests 4 | set -euo pipefail 5 | set -x 6 | 7 | cd "$(dirname "$0")"/.. 8 | 9 | MIRIFLAGS="-Zmiri-disable-isolation ${MIRIFLAGS:-}" \ 10 | cargo +nightly miri test --lib "${@}" 11 | -------------------------------------------------------------------------------- /default.nix: -------------------------------------------------------------------------------- 1 | scope@{ pkgs ? import { } }: 2 | 3 | pkgs.buildEnv { 4 | name = "thingbuf"; 5 | paths = with pkgs; [ 6 | git 7 | bash 8 | direnv 9 | binutils 10 | stdenv 11 | bashInteractive 12 | cacert 13 | glibc 14 | gcc 15 | cmake 16 | rustup 17 | pkg-config 18 | (glibcLocales.override { locales = [ "en_US.UTF-8" ]; }) 19 | gnumake 20 | autoconf 21 | ]; 22 | passthru = { 23 | LOCALE_ARCHIVE = "${pkgs.glibcLocales}/lib/locale/locale-archive"; 24 | LC_ALL = "en_US.UTF-8"; 25 | SSL_CERT_FILE = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"; 26 | GIT_SSL_CAINFO = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"; 27 | CURL_CA_BUNDLE = "${pkgs.cacert}/etc/ca-bundle.crt"; 28 | CARGO_TERM_COLOR = "always"; 29 | RUST_BACKTRACE = "1"; 30 | }; 31 | } 32 | -------------------------------------------------------------------------------- /netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | command = """ 3 | rustup install nightly --profile minimal \ 4 | && cargo doc --no-deps --all-features \ 5 | """ 6 | environment = { RUSTDOCFLAGS= "--cfg docsrs -D warnings" } 7 | publish = "target/doc" 8 | 9 | [[redirects]] 10 | from = "/" 11 | to = "/thingbuf" 12 | -------------------------------------------------------------------------------- /shell.nix: -------------------------------------------------------------------------------- 1 | scope@{ pkgs ? import { } }: 2 | 3 | let env = (import ./default.nix scope); 4 | 5 | in pkgs.mkShell { 6 | name = "thingbuf"; 7 | LOCALE_ARCHIVE = "${pkgs.glibcLocales}/lib/locale/locale-archive"; 8 | LC_ALL = "en_US.UTF-8"; 9 | OPENSSL_DIR = "${pkgs.openssl.dev}"; 10 | OPENSSL_LIB_DIR = "${pkgs.openssl.out}/lib"; 11 | SSL_CERT_FILE = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"; 12 | GIT_SSL_CAINFO = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"; 13 | CURL_CA_BUNDLE = "${pkgs.cacert}/etc/ca-bundle.crt"; 14 | CARGO_TERM_COLOR = "always"; 15 | RUST_BACKTRACE = "1"; 16 | buildInputs = [ (import ./default.nix { inherit pkgs; }) ]; 17 | } 18 | -------------------------------------------------------------------------------- /src/macros.rs: -------------------------------------------------------------------------------- 1 | macro_rules! test_println { 2 | ($($arg:tt)*) => { 3 | #[cfg(all(feature = "std", any(thingbuf_trace, test)))] 4 | if crate::util::panic::panicking() { 5 | // getting the thread ID while panicking doesn't seem to play super nicely with loom's 6 | // mock lazy_static... 7 | println!("[PANIC {:>30}:{:<3}] {}", file!(), line!(), format_args!($($arg)*)) 8 | } else { 9 | crate::loom::traceln(format_args!( 10 | "[{:?} {:>30}:{:<3}] {}", 11 | crate::loom::thread::current().id(), 12 | file!(), 13 | line!(), 14 | format_args!($($arg)*), 15 | )); 16 | } 17 | } 18 | } 19 | 20 | macro_rules! test_dbg { 21 | ($e:expr) => { 22 | match $e { 23 | e => { 24 | #[cfg(all(feature = "std", any(thingbuf_trace, test)))] 25 | test_println!("{} = {:?}", stringify!($e), &e); 26 | e 27 | } 28 | } 29 | }; 30 | } 31 | 32 | #[cfg(test)] 33 | macro_rules! assert_dbg { 34 | ($e:expr) => { 35 | assert_dbg!(@ $e, "") 36 | }; 37 | ($e:expr, $($msg:tt)+) => { 38 | assert_dbg!(@ $e, " ({})", format_args!($($msg)+)) 39 | }; 40 | (@$e:expr, $($msg:tt)+) => { 41 | { 42 | #[cfg(all(feature = "std", any(thingbuf_trace, test)))] 43 | test_println!("ASSERT: {}{}", stringify!($e), format_args!($($msg)*)); 44 | assert!($e, $($msg)*); 45 | test_println!("-> ok"); 46 | } 47 | } 48 | } 49 | 50 | #[cfg(test)] 51 | macro_rules! assert_eq_dbg { 52 | ($a:expr, $b:expr) => { 53 | assert_eq_dbg!(@ $a, $b, "") 54 | }; 55 | ($a:expr, $b:expr, $($msg:tt)+) => { 56 | assert_eq_dbg!(@ $a, $b, " ({})", format_args!($($msg)+)) 57 | }; 58 | (@ $a:expr, $b:expr, $($msg:tt)+) => { 59 | { 60 | #[cfg(all(feature = "std", any(thingbuf_trace, test)))] 61 | test_println!("ASSERT: {} == {}{}", stringify!($a), stringify!($b), format_args!($($msg)*)); 62 | assert_eq!($a, $b, $($msg)*); 63 | test_println!("-> ok"); 64 | } 65 | } 66 | } 67 | 68 | macro_rules! feature { 69 | ( 70 | #![$meta:meta] 71 | $($item:item)* 72 | ) => { 73 | $( 74 | #[cfg($meta)] 75 | #[cfg_attr(docsrs, doc(cfg($meta)))] 76 | $item 77 | )* 78 | } 79 | } 80 | 81 | macro_rules! fmt_bits { 82 | ($self: expr, $f: expr, $has_states: ident, $($name: ident),+) => { 83 | $( 84 | if $self.contains(Self::$name) { 85 | if $has_states { 86 | $f.write_str(" | ")?; 87 | } 88 | $f.write_str(stringify!($name))?; 89 | $has_states = true; 90 | } 91 | )+ 92 | 93 | }; 94 | } 95 | 96 | #[allow(unused_macros)] 97 | macro_rules! unreachable_unchecked { 98 | (@inner $msg:expr) => { 99 | { 100 | #[cfg(debug_assertions)] { 101 | panic!( 102 | "internal error: entered unreachable code{}\n\n\ 103 | /!\\ EXTREMELY SERIOUS WARNING /!\\\n 104 | This code should NEVER be entered; in release mode, this would \ 105 | have been an `unreachable_unchecked` hint. The fact that this \ 106 | occurred means something VERY bad is going on. \n\ 107 | Please contact the `thingbuf` maintainers immediately. Sorry!", 108 | $msg, 109 | ); 110 | } 111 | #[cfg(not(debug_assertions))] 112 | unsafe { 113 | core::hint::unreachable_unchecked(); 114 | } 115 | 116 | } 117 | }; 118 | 119 | ($($arg:tt)+) => { 120 | unreachable_unchecked!(@inner format_args!(": {}", format_args!($($arg)*))) 121 | }; 122 | 123 | () => { 124 | unreachable_unchecked!(@inner ".") 125 | }; 126 | } 127 | -------------------------------------------------------------------------------- /src/mpsc/tests.rs: -------------------------------------------------------------------------------- 1 | use super::*; 2 | 3 | mod mpsc_async; 4 | #[cfg(feature = "std")] 5 | mod mpsc_blocking; 6 | -------------------------------------------------------------------------------- /src/thingbuf/tests.rs: -------------------------------------------------------------------------------- 1 | use super::ThingBuf; 2 | use crate::loom::{self, alloc, thread}; 3 | use std::sync::Arc; 4 | 5 | #[test] 6 | fn push_many_mpsc() { 7 | const T1_VALS: &[&str] = &["alice", "bob", "charlie"]; 8 | const T2_VALS: &[&str] = &["dave", "ellen", "francis"]; 9 | 10 | fn producer( 11 | vals: &'static [&'static str], 12 | q: &Arc>>, 13 | ) -> impl FnOnce() { 14 | let q = q.clone(); 15 | move || { 16 | for &val in vals { 17 | if let Ok(mut slot) = test_dbg!(q.push_ref()) { 18 | slot.get_mut().push_str(val); 19 | } else { 20 | return; 21 | } 22 | } 23 | } 24 | } 25 | 26 | loom::model(|| { 27 | let q = Arc::new(ThingBuf::new(6)); 28 | 29 | let t1 = thread::spawn(producer(T1_VALS, &q)); 30 | let t2 = thread::spawn(producer(T2_VALS, &q)); 31 | 32 | let mut all_vals = Vec::new(); 33 | 34 | while Arc::strong_count(&q) > 1 { 35 | if let Some(val) = q.pop_ref() { 36 | all_vals.push(val.get_ref().to_string()); 37 | } 38 | thread::yield_now(); 39 | } 40 | 41 | t1.join().unwrap(); 42 | t2.join().unwrap(); 43 | 44 | while let Some(val) = test_dbg!(q.pop_ref()) { 45 | all_vals.push(val.get_ref().to_string()); 46 | } 47 | 48 | test_dbg!(&all_vals); 49 | for &val in T1_VALS.iter().chain(T2_VALS.iter()) { 50 | assert_dbg!(all_vals.contains(&test_dbg!(val).to_string())) 51 | } 52 | 53 | assert_eq!(all_vals.len(), T1_VALS.len() + T2_VALS.len()); 54 | }) 55 | } 56 | 57 | #[test] 58 | fn spsc() { 59 | const COUNT: usize = 9; 60 | loom::model(|| { 61 | let q = Arc::new(ThingBuf::new(3)); 62 | 63 | let producer = { 64 | let q = q.clone(); 65 | thread::spawn(move || { 66 | for i in 0..COUNT { 67 | loop { 68 | if let Ok(mut val) = q.push_ref() { 69 | *val = i; 70 | break; 71 | } 72 | thread::yield_now(); 73 | } 74 | } 75 | }) 76 | }; 77 | 78 | for i in 0..COUNT { 79 | loop { 80 | if let Some(val) = q.pop_ref() { 81 | assert_eq!(*val, i); 82 | break; 83 | } 84 | thread::yield_now(); 85 | } 86 | } 87 | 88 | producer.join().unwrap(); 89 | }); 90 | } 91 | 92 | #[test] 93 | #[ignore] // this takes about a million years to run 94 | fn linearizable() { 95 | const THREADS: usize = 4; 96 | 97 | fn thread(i: usize, q: &Arc>) -> impl FnOnce() { 98 | let q = q.clone(); 99 | move || { 100 | let mut pushed = false; 101 | while !pushed { 102 | pushed = q 103 | .push_ref() 104 | .map(|mut val| { 105 | *val = i; 106 | }) 107 | .is_ok(); 108 | } 109 | 110 | if let Some(mut val) = q.pop_ref() { 111 | *val = 0; 112 | } 113 | } 114 | } 115 | loom::model(|| { 116 | let q = Arc::new(ThingBuf::new(THREADS)); 117 | let t1 = thread::spawn(thread(1, &q)); 118 | let t2 = thread::spawn(thread(2, &q)); 119 | let t3 = thread::spawn(thread(3, &q)); 120 | thread(4, &q)(); 121 | t1.join().expect("thread 1 panicked!"); 122 | t2.join().expect("thread 2 panicked!"); 123 | t3.join().expect("thread 3 panicked!"); 124 | }) 125 | } 126 | -------------------------------------------------------------------------------- /src/util.rs: -------------------------------------------------------------------------------- 1 | use crate::loom; 2 | use core::{ 3 | fmt, 4 | ops::{Deref, DerefMut}, 5 | }; 6 | 7 | pub(crate) mod mutex; 8 | pub(crate) mod panic; 9 | 10 | #[derive(Debug)] 11 | pub(crate) struct Backoff(u8); 12 | 13 | #[cfg_attr(any(target_arch = "x86_64", target_arch = "aarch64"), repr(align(128)))] 14 | #[cfg_attr( 15 | not(any(target_arch = "x86_64", target_arch = "aarch64")), 16 | repr(align(64)) 17 | )] 18 | #[derive(Clone, Copy, Default, Hash, PartialEq, Eq)] 19 | pub(crate) struct CachePadded(pub(crate) T); 20 | 21 | // === impl Backoff === 22 | 23 | impl Backoff { 24 | const MAX_SPINS: u8 = 3; 25 | const MAX_YIELDS: u8 = 6; 26 | #[inline] 27 | pub(crate) fn new() -> Self { 28 | Self(0) 29 | } 30 | 31 | #[inline(always)] 32 | pub(crate) fn spin(&mut self) { 33 | #[cfg(not(all(loom, test)))] 34 | for _ in 0..test_dbg!(1 << self.0.min(Self::MAX_SPINS)) { 35 | loom::hint::spin_loop(); 36 | } 37 | 38 | #[cfg(all(loom, test))] 39 | { 40 | test_println!("hint::spin_loop() (x{})", 1 << self.0.min(Self::MAX_SPINS)); 41 | loom::hint::spin_loop(); 42 | } 43 | 44 | if self.0 <= Self::MAX_SPINS { 45 | self.0 += 1; 46 | } 47 | } 48 | 49 | #[inline(always)] 50 | pub(crate) fn spin_yield(&mut self) { 51 | if self.0 <= Self::MAX_SPINS || cfg!(not(any(feature = "std", test))) { 52 | #[cfg(not(all(loom, test)))] 53 | for _ in 0..1 << self.0 { 54 | loom::hint::spin_loop(); 55 | } 56 | 57 | test_println!("hint::spin_loop() (x{})", 1 << self.0); 58 | } 59 | 60 | test_println!("thread::yield_now()"); 61 | #[cfg(any(all(loom, test), feature = "std"))] 62 | loom::thread::yield_now(); 63 | 64 | if self.0 <= Self::MAX_YIELDS { 65 | self.0 += 1; 66 | } 67 | } 68 | 69 | pub(crate) fn done_spinning(&self) -> bool { 70 | self.0 >= Self::MAX_SPINS 71 | } 72 | } 73 | 74 | // === impl CachePadded === 75 | 76 | impl Deref for CachePadded { 77 | type Target = T; 78 | 79 | fn deref(&self) -> &T { 80 | &self.0 81 | } 82 | } 83 | 84 | impl DerefMut for CachePadded { 85 | fn deref_mut(&mut self) -> &mut T { 86 | &mut self.0 87 | } 88 | } 89 | 90 | impl fmt::Debug for CachePadded { 91 | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { 92 | self.0.fmt(f) 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /src/util/mutex.rs: -------------------------------------------------------------------------------- 1 | #[cfg(not(any(feature = "std", all(loom, test))))] 2 | pub(crate) use self::spin_impl::*; 3 | 4 | #[cfg(any(not(feature = "std"), test))] 5 | mod spin_impl; 6 | 7 | feature! { 8 | #![all(feature = "std", not(all(loom, test)))] 9 | #[allow(unused_imports)] 10 | pub(crate) use parking_lot::{Mutex, MutexGuard, const_mutex}; 11 | } 12 | 13 | feature! { 14 | #![all(loom, test)] 15 | mod loom_impl; 16 | pub(crate) use self::loom_impl::*; 17 | } 18 | -------------------------------------------------------------------------------- /src/util/mutex/loom_impl.rs: -------------------------------------------------------------------------------- 1 | pub(crate) use crate::loom::sync::MutexGuard; 2 | 3 | use std::sync::PoisonError; 4 | 5 | #[derive(Debug)] 6 | pub(crate) struct Mutex(crate::loom::sync::Mutex); 7 | 8 | impl Mutex { 9 | pub(crate) fn new(data: T) -> Self { 10 | Self(crate::loom::sync::Mutex::new(data)) 11 | } 12 | 13 | #[inline] 14 | pub(crate) fn lock(&self) -> MutexGuard<'_, T> { 15 | test_println!("locking {}...", core::any::type_name::()); 16 | let lock = self.0.lock().unwrap_or_else(PoisonError::into_inner); 17 | test_println!("-> locked {}!", core::any::type_name::()); 18 | lock 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/util/mutex/spin_impl.rs: -------------------------------------------------------------------------------- 1 | #![cfg_attr(feature = "std", allow(dead_code))] 2 | use crate::{ 3 | loom::{ 4 | atomic::{AtomicBool, Ordering::*}, 5 | cell::{MutPtr, UnsafeCell}, 6 | }, 7 | util::Backoff, 8 | }; 9 | use core::{fmt, ops}; 10 | 11 | #[derive(Debug)] 12 | pub(crate) struct Mutex { 13 | locked: AtomicBool, 14 | data: UnsafeCell, 15 | } 16 | 17 | pub(crate) struct MutexGuard<'lock, T> { 18 | locked: &'lock AtomicBool, 19 | data: MutPtr, 20 | } 21 | 22 | #[cfg(not(loom))] 23 | pub(crate) const fn const_mutex(data: T) -> Mutex { 24 | Mutex { 25 | locked: AtomicBool::new(false), 26 | data: UnsafeCell::new(data), 27 | } 28 | } 29 | 30 | impl Mutex { 31 | #[cfg(loom)] 32 | pub(crate) fn new(data: T) -> Self { 33 | Self { 34 | locked: AtomicBool::new(false), 35 | data: UnsafeCell::new(data), 36 | } 37 | } 38 | 39 | #[inline] 40 | pub(crate) fn lock(&self) -> MutexGuard<'_, T> { 41 | test_println!("locking {}...", core::any::type_name::()); 42 | let mut backoff = Backoff::new(); 43 | while test_dbg!(self.locked.compare_exchange(false, true, AcqRel, Acquire)).is_err() { 44 | while self.locked.load(Relaxed) { 45 | backoff.spin_yield(); 46 | } 47 | } 48 | 49 | test_println!("-> locked {}!", core::any::type_name::()); 50 | MutexGuard { 51 | locked: &self.locked, 52 | data: self.data.get_mut(), 53 | } 54 | } 55 | } 56 | 57 | impl MutexGuard<'_, T> { 58 | // this is factored out into its own function so that the debug impl is a 59 | // little easier lol 60 | #[inline] 61 | fn get_ref(&self) -> &T { 62 | unsafe { 63 | // Safety: the mutex is locked, so we cannot create a concurrent 64 | // mutable access, and we have a borrow on the lock's state boolean, 65 | // so it will not be dropped while the guard exists. 66 | &*self.data.deref() 67 | } 68 | } 69 | } 70 | 71 | impl ops::Deref for MutexGuard<'_, T> { 72 | type Target = T; 73 | #[inline] 74 | fn deref(&self) -> &T { 75 | self.get_ref() 76 | } 77 | } 78 | 79 | impl ops::DerefMut for MutexGuard<'_, T> { 80 | #[inline] 81 | fn deref_mut(&mut self) -> &mut T { 82 | unsafe { 83 | // Safety: the mutex is locked, so we cannot create a concurrent 84 | // mutable access, and we have a borrow on the lock's state boolean, 85 | // so it will not be dropped while the guard exists. 86 | &mut *self.data.deref() 87 | } 88 | } 89 | } 90 | 91 | impl Drop for MutexGuard<'_, T> { 92 | fn drop(&mut self) { 93 | test_dbg!(self.locked.store(false, Release)); 94 | test_println!("unlocked!"); 95 | } 96 | } 97 | 98 | impl fmt::Debug for MutexGuard<'_, T> { 99 | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { 100 | self.get_ref().fmt(f) 101 | } 102 | } 103 | 104 | unsafe impl Send for Mutex {} 105 | unsafe impl Sync for Mutex {} 106 | unsafe impl Send for MutexGuard<'_, T> {} 107 | unsafe impl Sync for MutexGuard<'_, T> {} 108 | -------------------------------------------------------------------------------- /src/util/panic.rs: -------------------------------------------------------------------------------- 1 | pub(crate) use self::inner::*; 2 | pub(crate) use core::panic::*; 3 | 4 | #[cfg(feature = "std")] 5 | mod inner { 6 | pub(crate) fn panicking() -> bool { 7 | std::thread::panicking() 8 | } 9 | 10 | pub use std::panic::{catch_unwind, resume_unwind}; 11 | } 12 | 13 | #[cfg(not(feature = "std"))] 14 | mod inner { 15 | use super::*; 16 | pub(crate) fn panicking() -> bool { 17 | false 18 | } 19 | 20 | pub(crate) fn catch_unwind R + UnwindSafe, R>(f: F) -> Result { 21 | Ok(f()) 22 | } 23 | 24 | pub(crate) fn resume_unwind(_: ()) -> ! { 25 | unreachable_unchecked!("code compiled with no_std cannot unwind!") 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/wait.rs: -------------------------------------------------------------------------------- 1 | //! Waiter cells and queues to allow threads/tasks to wait for notifications. 2 | //! 3 | //! The MPSC channel enhance a ThingBuf --- which implements a non-blocking 4 | //! queue --- with the capacity to wait. A `ThingBuf` only has `try_send` and 5 | //! `try_recv`-like operations, which immediately return in the case where the 6 | //! queue is full or empty, respectively. In a MPSC channel, the sender is 7 | //! provided with the ability to *wait* until there is capacity in the queue to 8 | //! send its message. Similarly, a receiver can wait until the channel has 9 | //! messages to receive. 10 | //! 11 | //! This module implements two types of structure for waiting: a wait *cell*, 12 | //! which stores a *single* waiting thread or task, and a wait *queue*, which 13 | //! stores a queue of waiting tasks. Since the channel is a MPSC (multiple 14 | //! producer, single consumer) channel, the wait queue is used to store waiting 15 | //! senders, while the wait cell is used to store a waiting receiver (as there 16 | //! is only ever one thread/task waiting to receive from a channel). 17 | //! 18 | //! This module is generic over the _type_ of the waiter; they may either be 19 | //! [`core::task::Waker`]s, for the async MPSC, or [`std::thread::Thread`]s, for 20 | //! the blocking MPSC. In either case, the role played by these types is fairly 21 | //! analogous. 22 | use core::{fmt, task::Waker}; 23 | 24 | mod cell; 25 | pub(crate) mod queue; 26 | pub(crate) use self::{cell::WaitCell, queue::WaitQueue}; 27 | 28 | #[cfg(feature = "std")] 29 | use crate::loom::thread; 30 | 31 | /// What happened while trying to register to wait. 32 | #[derive(Debug, Eq, PartialEq)] 33 | pub(crate) enum WaitResult { 34 | /// The waiter was registered, and the calling thread/task can now wait. 35 | Wait, 36 | /// The channel is closed. 37 | /// 38 | /// When registering a sender, this means the receiver was dropped; when 39 | /// registering a receiver, this means that all senders have been dropped. 40 | /// In this case, the waiting thread/task should *not* wait, because it will 41 | /// never be woken back up. 42 | /// 43 | /// If this is returned, the waiter (`Thread`/`Waker`) was *not* registered. 44 | Closed, 45 | /// We were notified while trying to register a waiter. 46 | /// 47 | /// This means that, while we were trying to access the wait cell or wait 48 | /// queue, the other side of the channel sent a notification. In this case, 49 | /// we don't need to wait, and we can try the operation we were attempting 50 | /// again, as it may now be ready. 51 | /// 52 | /// If this is returned, the waiter (`Thread`/`Waker`) was *not* registered. 53 | Notified, 54 | } 55 | 56 | pub(crate) trait Notify: fmt::Debug + Clone { 57 | fn notify(self); 58 | 59 | fn same(&self, other: &Self) -> bool; 60 | } 61 | 62 | #[cfg(feature = "std")] 63 | impl Notify for thread::Thread { 64 | #[inline] 65 | fn notify(self) { 66 | test_println!("NOTIFYING {:?} (from {:?})", self, thread::current()); 67 | self.unpark(); 68 | } 69 | 70 | #[inline] 71 | fn same(&self, other: &Self) -> bool { 72 | other.id() == self.id() 73 | } 74 | } 75 | 76 | impl Notify for Waker { 77 | #[inline] 78 | fn notify(self) { 79 | test_println!("WAKING TASK {:?} (from {:?})", self, thread::current()); 80 | self.wake(); 81 | } 82 | 83 | #[inline] 84 | fn same(&self, other: &Self) -> bool { 85 | other.will_wake(self) 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /tests/debug.rs: -------------------------------------------------------------------------------- 1 | use thingbuf::mpsc; 2 | 3 | #[test] 4 | fn mpsc_debug() { 5 | let (tx, rx) = mpsc::channel(4); 6 | println!("tx={:#?}", tx); 7 | println!("rx={:#?}", rx); 8 | let _ = tx.try_send(1); 9 | println!("rx={:#?}", rx); 10 | drop(tx); 11 | println!("rx={:#?}", rx); 12 | } 13 | -------------------------------------------------------------------------------- /tests/mpsc_async.rs: -------------------------------------------------------------------------------- 1 | use thingbuf::mpsc; 2 | 3 | #[tokio::test(flavor = "multi_thread")] 4 | async fn basically_works() { 5 | use std::collections::HashSet; 6 | 7 | const N_SENDS: usize = 10; 8 | const N_PRODUCERS: usize = 10; 9 | 10 | async fn do_producer(tx: mpsc::Sender, n: usize) { 11 | let tag = n * N_SENDS; 12 | for i in 0..N_SENDS { 13 | let msg = i + tag; 14 | println!("sending {}...", msg); 15 | tx.send(msg).await.unwrap(); 16 | println!("sent {}!", msg); 17 | } 18 | println!("PRODUCER {} DONE!", n); 19 | } 20 | 21 | let (tx, rx) = mpsc::channel(N_SENDS / 2); 22 | for n in 0..N_PRODUCERS { 23 | tokio::spawn(do_producer(tx.clone(), n)); 24 | } 25 | drop(tx); 26 | 27 | let mut results = HashSet::new(); 28 | while let Some(val) = { 29 | println!("receiving..."); 30 | rx.recv().await 31 | } { 32 | println!("received {}!", val); 33 | results.insert(val); 34 | } 35 | 36 | let results = dbg!(results); 37 | 38 | for n in 0..N_PRODUCERS { 39 | let tag = n * N_SENDS; 40 | for i in 0..N_SENDS { 41 | let msg = i + tag; 42 | assert!(results.contains(&msg), "missing message {:?}", msg); 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /tests/mpsc_blocking.rs: -------------------------------------------------------------------------------- 1 | use std::thread; 2 | use thingbuf::mpsc::blocking; 3 | use thingbuf::mpsc::errors::{TryRecvError, TrySendError}; 4 | 5 | #[test] 6 | fn basically_works() { 7 | use std::collections::HashSet; 8 | 9 | const N_SENDS: usize = 10; 10 | const N_PRODUCERS: usize = 10; 11 | 12 | fn start_producer(tx: blocking::Sender, n: usize) -> thread::JoinHandle<()> { 13 | let tag = n * N_SENDS; 14 | thread::Builder::new() 15 | .name(format!("producer {}", n)) 16 | .spawn(move || { 17 | for i in 0..N_SENDS { 18 | let msg = i + tag; 19 | println!("[producer {}] sending {}...", n, msg); 20 | tx.send(msg).unwrap(); 21 | println!("[producer {}] sent {}!", n, msg); 22 | } 23 | println!("[producer {}] DONE!", n); 24 | }) 25 | .expect("spawning threads should succeed") 26 | } 27 | 28 | let (tx, rx) = blocking::channel(N_SENDS / 2); 29 | for n in 0..N_PRODUCERS { 30 | start_producer(tx.clone(), n); 31 | } 32 | drop(tx); 33 | 34 | let mut results = HashSet::new(); 35 | while let Some(val) = { 36 | println!("receiving..."); 37 | rx.recv() 38 | } { 39 | println!("received {}!", val); 40 | results.insert(val); 41 | } 42 | 43 | let results = dbg!(results); 44 | 45 | for n in 0..N_PRODUCERS { 46 | let tag = n * N_SENDS; 47 | for i in 0..N_SENDS { 48 | let msg = i + tag; 49 | assert!(results.contains(&msg), "missing message {:?}", msg); 50 | } 51 | } 52 | } 53 | 54 | #[test] 55 | fn tx_close_drains_queue() { 56 | const LEN: usize = 4; 57 | for i in 0..10000 { 58 | println!("\n\n--- iteration {} ---\n\n", i); 59 | 60 | let (tx, rx) = blocking::channel(LEN); 61 | let producer = thread::spawn(move || { 62 | for i in 0..LEN { 63 | tx.send(i).unwrap(); 64 | } 65 | }); 66 | 67 | for i in 0..LEN { 68 | assert_eq!(rx.recv(), Some(i)) 69 | } 70 | 71 | producer.join().unwrap(); 72 | } 73 | } 74 | 75 | #[test] 76 | fn spsc_skip_slot() { 77 | let (tx, rx) = blocking::channel::(3); 78 | // 0 lap 79 | tx.send(0).unwrap(); 80 | assert_eq!(rx.recv(), Some(0)); 81 | tx.send(1).unwrap(); 82 | let msg_ref = rx.try_recv_ref().unwrap(); 83 | tx.send(2).unwrap(); 84 | assert_eq!(rx.recv(), Some(2)); 85 | // 1 lap 86 | tx.send(3).unwrap(); 87 | assert_eq!(rx.recv(), Some(3)); 88 | tx.send(4).unwrap(); 89 | assert_eq!(rx.recv(), Some(4)); 90 | drop(msg_ref); 91 | // 2 lap 92 | tx.send(5).unwrap(); 93 | tx.send(6).unwrap(); 94 | tx.send(7).unwrap(); 95 | assert!(matches!(tx.try_send_ref(), Err(TrySendError::Full(_)))); 96 | assert_eq!(rx.recv(), Some(5)); 97 | assert_eq!(rx.recv(), Some(6)); 98 | assert_eq!(rx.recv(), Some(7)); 99 | } 100 | 101 | #[test] 102 | fn spsc_full_after_skipped() { 103 | let (tx, rx) = blocking::channel::(3); 104 | // 0 lap 105 | tx.send(0).unwrap(); 106 | assert_eq!(rx.recv(), Some(0)); 107 | tx.send(1).unwrap(); 108 | let _msg_ref = rx.try_recv_ref().unwrap(); 109 | tx.send(2).unwrap(); 110 | // lap 1 111 | tx.send(3).unwrap(); 112 | assert!(matches!(tx.try_send_ref(), Err(TrySendError::Full(_)))); 113 | } 114 | 115 | #[test] 116 | fn spsc_empty_after_skipped() { 117 | let (tx, rx) = blocking::channel::(2); 118 | // 0 lap 119 | tx.send(0).unwrap(); 120 | tx.send(1).unwrap(); 121 | let _msg_ref = rx.try_recv_ref().unwrap(); 122 | assert_eq!(rx.recv(), Some(1)); 123 | assert!(matches!(rx.try_recv_ref(), Err(TryRecvError::Empty))); 124 | } 125 | -------------------------------------------------------------------------------- /tests/static_storage.rs: -------------------------------------------------------------------------------- 1 | #![cfg(feature = "static")] 2 | use std::{ 3 | fmt::Write, 4 | sync::atomic::{AtomicBool, Ordering}, 5 | thread, 6 | }; 7 | use thingbuf::{recycling, StaticThingBuf}; 8 | 9 | #[test] 10 | fn static_storage_thingbuf() { 11 | static BUF: StaticThingBuf = StaticThingBuf::new(); 12 | static PRODUCER_LIVE: AtomicBool = AtomicBool::new(true); 13 | 14 | let producer = thread::spawn(move || { 15 | for i in 0..32 { 16 | let mut thing = 'write: loop { 17 | match BUF.push_ref() { 18 | Ok(thing) => break 'write thing, 19 | _ => thread::yield_now(), 20 | } 21 | }; 22 | *thing = i; 23 | } 24 | PRODUCER_LIVE.store(false, Ordering::Release); 25 | }); 26 | 27 | let mut i = 0; 28 | 29 | // While the producer is writing to the queue, push each entry to the 30 | // results string. 31 | while PRODUCER_LIVE.load(Ordering::Acquire) { 32 | match BUF.pop_ref() { 33 | Some(thing) => { 34 | assert_eq!(*thing, i); 35 | i += 1; 36 | } 37 | None => thread::yield_now(), 38 | } 39 | } 40 | 41 | producer.join().unwrap(); 42 | 43 | // drain the queue. 44 | while let Some(thing) = BUF.pop_ref() { 45 | assert_eq!(*thing, i); 46 | i += 1; 47 | } 48 | } 49 | 50 | #[test] 51 | fn static_storage_stringbuf() { 52 | use recycling::WithCapacity; 53 | 54 | static BUF: StaticThingBuf = 55 | StaticThingBuf::with_recycle(WithCapacity::new().with_max_capacity(8)); 56 | static PRODUCER_LIVE: AtomicBool = AtomicBool::new(true); 57 | 58 | let producer = thread::spawn(move || { 59 | for i in 0..16 { 60 | let mut string = 'write: loop { 61 | match BUF.push_ref() { 62 | Ok(string) => break 'write string, 63 | _ => thread::yield_now(), 64 | } 65 | }; 66 | 67 | write!(&mut string, "{:?}", i).unwrap(); 68 | } 69 | 70 | PRODUCER_LIVE.store(false, Ordering::Release); 71 | println!("producer done"); 72 | }); 73 | 74 | let mut results = String::new(); 75 | 76 | // While the producer is writing to the queue, push each entry to the 77 | // results string. 78 | while PRODUCER_LIVE.load(Ordering::Acquire) { 79 | if let Some(string) = BUF.pop_ref() { 80 | writeln!(results, "{}", string).unwrap(); 81 | } 82 | thread::yield_now(); 83 | } 84 | 85 | producer.join().unwrap(); 86 | println!("producer done..."); 87 | 88 | // drain the queue. 89 | while let Some(string) = BUF.pop_ref() { 90 | writeln!(results, "{}", string).unwrap(); 91 | } 92 | 93 | println!("results:\n{}", results); 94 | 95 | for (n, ln) in results.lines().enumerate() { 96 | assert_eq!(ln.parse::(), Ok(n)); 97 | } 98 | } 99 | 100 | #[tokio::test] 101 | async fn static_async_channel() { 102 | use std::collections::HashSet; 103 | use thingbuf::mpsc; 104 | 105 | const N_PRODUCERS: usize = 8; 106 | const N_SENDS: usize = N_PRODUCERS * 2; 107 | 108 | static CHANNEL: mpsc::StaticChannel = mpsc::StaticChannel::new(); 109 | 110 | async fn do_producer(tx: mpsc::StaticSender, n: usize) { 111 | let tag = n * N_SENDS; 112 | for i in 0..N_SENDS { 113 | let msg = i + tag; 114 | println!("sending {}...", msg); 115 | tx.send(msg).await.unwrap(); 116 | println!("sent {}!", msg); 117 | } 118 | println!("PRODUCER {} DONE!", n); 119 | } 120 | 121 | let (tx, rx) = CHANNEL.split(); 122 | for n in 0..N_PRODUCERS { 123 | tokio::spawn(do_producer(tx.clone(), n)); 124 | } 125 | drop(tx); 126 | 127 | let mut results = HashSet::new(); 128 | while let Some(val) = { 129 | println!("receiving..."); 130 | rx.recv().await 131 | } { 132 | println!("received {}!", val); 133 | results.insert(val); 134 | } 135 | 136 | let results = dbg!(results); 137 | 138 | for n in 0..N_PRODUCERS { 139 | let tag = n * N_SENDS; 140 | for i in 0..N_SENDS { 141 | let msg = i + tag; 142 | assert!(results.contains(&msg), "missing message {:?}", msg); 143 | } 144 | } 145 | } 146 | 147 | #[test] 148 | fn static_blocking_channel() { 149 | use std::collections::HashSet; 150 | use thingbuf::mpsc::blocking; 151 | 152 | const N_PRODUCERS: usize = 8; 153 | const N_SENDS: usize = N_PRODUCERS * 2; 154 | 155 | static CHANNEL: blocking::StaticChannel = blocking::StaticChannel::new(); 156 | 157 | fn do_producer(tx: blocking::StaticSender, n: usize) -> impl FnOnce() { 158 | move || { 159 | let tag = n * N_SENDS; 160 | for i in 0..N_SENDS { 161 | let msg = i + tag; 162 | println!("sending {}...", msg); 163 | tx.send(msg).unwrap(); 164 | println!("sent {}!", msg); 165 | } 166 | println!("PRODUCER {} DONE!", n); 167 | } 168 | } 169 | 170 | let (tx, rx) = CHANNEL.split(); 171 | for n in 0..N_PRODUCERS { 172 | std::thread::spawn(do_producer(tx.clone(), n)); 173 | } 174 | drop(tx); 175 | 176 | let mut results = HashSet::new(); 177 | while let Some(val) = { 178 | println!("receiving..."); 179 | rx.recv() 180 | } { 181 | println!("received {}!", val); 182 | results.insert(val); 183 | } 184 | 185 | let results = dbg!(results); 186 | 187 | for n in 0..N_PRODUCERS { 188 | let tag = n * N_SENDS; 189 | for i in 0..N_SENDS { 190 | let msg = i + tag; 191 | assert!(results.contains(&msg), "missing message {:?}", msg); 192 | } 193 | } 194 | } 195 | --------------------------------------------------------------------------------