Repository: nu11ptr/flexstr Branch: master Commit: 93b11ac10b3c Files: 1295 Total size: 3.2 MB Directory structure: gitextract_r1r8d2us/ ├── .cargo/ │ └── config.toml ├── .github/ │ └── workflows/ │ └── ci.yml ├── .gitignore ├── Cargo.toml ├── LICENSE ├── README.md ├── benchmarks/ │ ├── Cargo.toml │ ├── README.md │ ├── archive/ │ │ ├── 0.8.0/ │ │ │ └── README.md │ │ └── 0.8.1/ │ │ ├── README.md │ │ ├── clone.json │ │ ├── convert.json │ │ └── create.json │ ├── benches/ │ │ ├── clone.rs │ │ └── import.rs │ ├── criterion.toml │ └── src/ │ └── lib.rs ├── boxed_flexstr/ │ ├── Cargo.toml │ └── src/ │ ├── boxed.rs │ ├── bytes.rs │ ├── cstr.rs │ ├── lib.rs │ ├── osstr.rs │ ├── path.rs │ ├── small_box.rs │ └── str.rs ├── docs/ │ └── criterion/ │ ├── Clone/ │ │ ├── 0/ │ │ │ └── report/ │ │ │ └── index.html │ │ ├── 10/ │ │ │ └── report/ │ │ │ └── index.html │ │ ├── 100/ │ │ │ └── report/ │ │ │ └── index.html │ │ ├── 20/ │ │ │ └── report/ │ │ │ └── index.html │ │ ├── 500/ │ │ │ └── report/ │ │ │ └── index.html │ │ ├── Arc_str_/ │ │ │ ├── 0/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 10/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 100/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 20/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 500/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ └── report/ │ │ │ └── index.html │ │ ├── FlexStr 0.10 (LocalStr - Boxed)/ │ │ │ ├── 0/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 10/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 100/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 20/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 500/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ └── report/ │ │ │ └── index.html │ │ ├── FlexStr 0.10 (LocalStr - Optimized)/ │ │ │ ├── 0/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 10/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 100/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 20/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 500/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ └── report/ │ │ │ └── index.html │ │ ├── FlexStr 0.10 (SharedStr - Boxed)/ │ │ │ ├── 0/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 10/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 100/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 20/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 500/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ └── report/ │ │ │ └── index.html │ │ ├── FlexStr 0.10 (SharedStr - Optimized)/ │ │ │ ├── 0/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 10/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 100/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 20/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 500/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ └── report/ │ │ │ └── index.html │ │ ├── FlexStr 0.9 (LocalStr)/ │ │ │ ├── 0/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 10/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 100/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 20/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 500/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ └── report/ │ │ │ └── index.html │ │ ├── FlexStr 0.9 (SharedStr)/ │ │ │ ├── 0/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 10/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 100/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 20/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 500/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ └── report/ │ │ │ └── index.html │ │ ├── InlineFlexStr 0.1 (InlineStr)/ │ │ │ ├── 0/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 10/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 100/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 20/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 500/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ └── report/ │ │ │ └── index.html │ │ ├── Rc_str_/ │ │ │ ├── 0/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 10/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 100/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 20/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 500/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ └── report/ │ │ │ └── index.html │ │ ├── String/ │ │ │ ├── 0/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 10/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 100/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 20/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 500/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ └── report/ │ │ │ └── index.html │ │ └── report/ │ │ └── index.html │ ├── Import as borrowed, own and destroy/ │ │ ├── 0/ │ │ │ └── report/ │ │ │ └── index.html │ │ ├── 10/ │ │ │ └── report/ │ │ │ └── index.html │ │ ├── 100/ │ │ │ └── report/ │ │ │ └── index.html │ │ ├── 20/ │ │ │ └── report/ │ │ │ └── index.html │ │ ├── 500/ │ │ │ └── report/ │ │ │ └── index.html │ │ ├── Cow_'_, str_/ │ │ │ ├── 0/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 10/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 100/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 20/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 500/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ └── report/ │ │ │ └── index.html │ │ ├── FlexStr 0.10 (LocalStr)/ │ │ │ ├── 0/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 10/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 100/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 20/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 500/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ └── report/ │ │ │ └── index.html │ │ ├── FlexStr 0.10 (SharedStr)/ │ │ │ ├── 0/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 10/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 100/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 20/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 500/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ └── report/ │ │ │ └── index.html │ │ └── report/ │ │ └── index.html │ ├── Import as owned and destroy/ │ │ ├── 0/ │ │ │ └── report/ │ │ │ └── index.html │ │ ├── 10/ │ │ │ └── report/ │ │ │ └── index.html │ │ ├── 100/ │ │ │ └── report/ │ │ │ └── index.html │ │ ├── 20/ │ │ │ └── report/ │ │ │ └── index.html │ │ ├── 500/ │ │ │ └── report/ │ │ │ └── index.html │ │ ├── Arc_str_/ │ │ │ ├── 0/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 10/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 100/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 20/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 500/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ └── report/ │ │ │ └── index.html │ │ ├── Cow_'_, str_/ │ │ │ ├── 0/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 10/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 100/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 20/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 500/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ └── report/ │ │ │ └── index.html │ │ ├── FlexStr 0.10 (LocalStr - As is)/ │ │ │ ├── 0/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 10/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 100/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 20/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 500/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ └── report/ │ │ │ └── index.html │ │ ├── FlexStr 0.10 (LocalStr - Optimized)/ │ │ │ ├── 0/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 10/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 100/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 20/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 500/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ └── report/ │ │ │ └── index.html │ │ ├── FlexStr 0.10 (SharedStr - As is)/ │ │ │ ├── 0/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 10/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 100/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 20/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 500/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ └── report/ │ │ │ └── index.html │ │ ├── FlexStr 0.10 (SharedStr - Optimized)/ │ │ │ ├── 0/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 10/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 100/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 20/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 500/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ └── report/ │ │ │ └── index.html │ │ ├── FlexStr 0.9 (LocalStr)/ │ │ │ ├── 0/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 10/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 100/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 20/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 500/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ └── report/ │ │ │ └── index.html │ │ ├── FlexStr 0.9 (SharedStr)/ │ │ │ ├── 0/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 10/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 100/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 20/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 500/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ └── report/ │ │ │ └── index.html │ │ ├── InlineFlexStr 0.1 (InlineStr)/ │ │ │ ├── 0/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 10/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 100/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 20/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 500/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ └── report/ │ │ │ └── index.html │ │ ├── Rc_str_/ │ │ │ ├── 0/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 10/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 100/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 20/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ ├── 500/ │ │ │ │ ├── base/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ ├── change/ │ │ │ │ │ └── estimates.json │ │ │ │ ├── new/ │ │ │ │ │ ├── benchmark.json │ │ │ │ │ ├── estimates.json │ │ │ │ │ ├── sample.json │ │ │ │ │ └── tukey.json │ │ │ │ └── report/ │ │ │ │ └── index.html │ │ │ └── report/ │ │ │ └── index.html │ │ └── report/ │ │ └── index.html │ └── report/ │ └── index.html ├── flexstr_support/ │ ├── Cargo.toml │ ├── README.md │ └── src/ │ ├── bytes.rs │ ├── cstr.rs │ ├── lib.rs │ ├── osstr.rs │ ├── path.rs │ ├── str.rs │ └── traits.rs ├── inline_flexstr/ │ ├── Cargo.toml │ ├── README.md │ ├── src/ │ │ ├── bytes.rs │ │ ├── cstr.rs │ │ ├── inline.rs │ │ ├── lib.rs │ │ ├── osstr.rs │ │ ├── path.rs │ │ └── str.rs │ └── tests/ │ ├── common/ │ │ ├── as_ref.rs │ │ ├── basic.rs │ │ ├── borrow.rs │ │ ├── comparison.rs │ │ ├── conversion.rs │ │ ├── cstr_specific.rs │ │ ├── display.rs │ │ ├── edge_cases.rs │ │ ├── errors.rs │ │ ├── from_str.rs │ │ ├── index.rs │ │ ├── mod.rs │ │ ├── serialize.rs │ │ ├── socket.rs │ │ ├── stringlike.rs │ │ ├── try_from.rs │ │ └── zeroize.rs │ ├── test_bytes.rs │ ├── test_cstr.rs │ ├── test_osstr.rs │ ├── test_path.rs │ └── test_str.rs ├── justfile ├── src/ │ ├── bytes.rs │ ├── cstr.rs │ ├── flex.rs │ ├── lib.rs │ ├── osstr.rs │ ├── path.rs │ └── str.rs └── tests/ ├── common/ │ ├── as_ref.rs │ ├── basic.rs │ ├── borrow.rs │ ├── comparison.rs │ ├── conversion.rs │ ├── cstr_specific.rs │ ├── display.rs │ ├── edge_cases.rs │ ├── errors.rs │ ├── from.rs │ ├── from_str.rs │ ├── index.rs │ ├── inline_edge_cases.rs │ ├── mod.rs │ ├── mutate.rs │ ├── mutate_fallback.rs │ ├── prost.rs │ ├── serialize.rs │ ├── socket.rs │ ├── storage.rs │ ├── stringlike.rs │ ├── try_from.rs │ ├── utoipa.rs │ └── zeroize.rs ├── test_bytes.rs ├── test_cstr.rs ├── test_osstr.rs ├── test_path.rs └── test_str.rs ================================================ FILE CONTENTS ================================================ ================================================ FILE: .cargo/config.toml ================================================ [target.wasm32-wasip1] runner = "wasmtime run --" [target.wasm32-wasip2] runner = "wasmtime run --" ================================================ FILE: .github/workflows/ci.yml ================================================ name: CI on: push: branches: - master pull_request: branches: - master schedule: # Run every night at 8:30 AM UTC - cron: '30 8 * * *' env: RUST_BACKTRACE: 1 jobs: test: name: Test - ${{ matrix.build }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: build: - linux - macos - windows include: - build: linux label: linux_x64 os: ubuntu-latest - build: macos label: macos_arm64 os: macos-latest - build: windows label: windows_x64 os: windows-latest steps: - name: Checkout source code uses: actions/checkout@v5 - name: Cache Rust uses: actions/cache@v4 with: path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo-test-${{ hashFiles('crates/Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo-test- - name: Install Rust Tools uses: taiki-e/install-action@v2 with: tool: cargo-nextest, just - name: Run tests run: just test - name: Run tests (no std) run: just test_nostd - name: Run tests (safe) run: just test_safe - name: Run tests (no std, safe) run: just test_nostd_safe miri: name: Miri runs-on: ubuntu-latest env: MIRIFLAGS: -Zmiri-tag-raw-pointers steps: - name: Checkout source code uses: actions/checkout@v5 - name: Setup Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: components: miri toolchain: nightly - name: Cache Rust uses: actions/cache@v4 with: path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo-miri-${{ hashFiles('crates/Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo-miri-${{ hashFiles('crates/Cargo.lock') }} - name: Install Rust Tools uses: taiki-e/install-action@v2 with: tool: cargo-nextest, just - name: Run Miri run: just miri clippy: name: Clippy runs-on: ubuntu-latest steps: - name: Checkout source code uses: actions/checkout@v5 - name: Cache Rust uses: actions/cache@v4 with: path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo-clippy-${{ hashFiles('crates/Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo-clippy- - name: Install Rust Tools uses: taiki-e/install-action@v2 with: tool: cargo-nextest, just - name: Run Clippy run: just clippy wasi_test: name: WASI Test runs-on: ubuntu-latest steps: - name: Checkout source code uses: actions/checkout@v5 - name: Setup Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: target: wasm32-wasip1 - name: Cache Rust uses: actions/cache@v4 with: path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo-wasi-test-${{ hashFiles('crates/Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo-wasi-test- - name: Install Rust Tools uses: taiki-e/install-action@v2 with: tool: cargo-nextest, just - name: Setup `wasmtime` uses: bytecodealliance/actions/wasmtime/setup@v1 # Serde doesn't work on WASI yet when using OsStr/Path (https://github.com/serde-rs/serde/issues/3020) - name: Run tests run: just std_features=bytes,cstr,osstr,path,sqlx test --target wasm32-wasip1 - name: Run tests (serde) run: just std_features=bytes,cstr,serde,sqlx test --target wasm32-wasip1 - name: Run tests (no std) run: just test_nostd --target wasm32-wasip1 - name: Run tests (safe) run: just std_features=bytes,cstr,osstr,path,sqlx test_safe --target wasm32-wasip1 - name: Run tests (safe, serde) run: just std_features=bytes,cstr,serde,sqlx test_safe --target wasm32-wasip1 - name: Run tests (no std, safe) run: just test_nostd_safe --target wasm32-wasip1 coverage: name: Code Coverage runs-on: ubuntu-latest steps: - name: Checkout source code uses: actions/checkout@v5 - name: Setup Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: components: llvm-tools-preview - name: Cache Rust uses: actions/cache@v4 with: path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo-coverage-${{ hashFiles('crates/Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo-coverage- - name: Install Rust Tools uses: taiki-e/install-action@v2 with: tool: cargo-nextest, cargo-llvm-cov, just - name: Run tests with coverage run: just cover_report - name: Upload coverage reports to Codecov uses: codecov/codecov-action@v5 with: files: codecov.json token: ${{ secrets.CODECOV_TOKEN }} ================================================ FILE: .gitignore ================================================ target/ /Cargo.lock /.idea tarpaulin-report.html **/*.rs.bk .DS_Store ================================================ FILE: Cargo.toml ================================================ [workspace] members = ["boxed_flexstr", "flexstr_support", "inline_flexstr"] exclude = ["benchmarks"] [package] name = "flexstr" version = "0.11.7" authors = ["Scott Meeuwsen "] license = "MIT OR Apache-2.0" description = "A flexible, simple to use, clone-efficient string type for Rust" repository = "https://github.com/nu11ptr/flexstr" documentation = "https://docs.rs/flexstr" keywords = ["string", "rc_str", "arc_str", "refcount", "inline"] categories = [ "data-structures", "memory-management", "no-std", "text-processing", ] readme = "README.md" edition = "2024" exclude = ["docs/**"] [features] default = ["std", "str"] prost = ["dep:prost", "inline_flexstr/prost"] sqlx_pg_arrays = ["sqlx", "sqlx/postgres"] utoipa = ["dep:utoipa", "inline_flexstr/utoipa"] zeroize = ["dep:zeroize", "inline_flexstr/zeroize"] # Does not use and forbids all unsafe code (unless windows_min_unsafe is also enabled, but that only impacts Windows) safe = ["flexstr_support/safe", "inline_flexstr/safe"] std = ["flexstr_support/std", "inline_flexstr/std", "serde?/std", "prost?/std"] # Uses the minimum unsafe code possible to support OsStr/Path on Windows. Doesn't impact any other string types or operating systems. win_min_unsafe = [ "flexstr_support/win_min_unsafe", "inline_flexstr/win_min_unsafe", "safe", ] # String type features bytes = ["flexstr_support/bytes", "inline_flexstr/bytes"] cstr = ["flexstr_support/cstr", "inline_flexstr/cstr"] osstr = ["flexstr_support/osstr", "inline_flexstr/osstr", "std"] path = ["flexstr_support/path", "inline_flexstr/path", "osstr"] str = ["flexstr_support/str", "inline_flexstr/str"] [dependencies.serde] version = "1" default-features = false optional = true [dependencies.prost] version = "0.14" default-features = false optional = true [dependencies.sqlx] version = "0.8" default-features = false optional = true [dependencies.utoipa] version = "5" optional = true [dependencies.zeroize] version = "1" default-features = false optional = true [dependencies.inline_flexstr] path = "inline_flexstr" version = "0.1.9" default-features = false [dependencies.flexstr_support] path = "flexstr_support" version = "0.1.4" default-features = false [dev-dependencies.serde_json] version = "1" [package.metadata.docs.rs] features = ["bytes", "cstr", "osstr", "path", "prost", "serde", "std", "str", "utoipa", "zeroize"] rustdoc-args = ["--cfg", "docsrs"] ================================================ FILE: LICENSE ================================================ Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ================================================ FILE: README.md ================================================ # flexstr [![Crate](https://img.shields.io/crates/v/flexstr)](https://crates.io/crates/flexstr) [![Docs](https://docs.rs/flexstr/badge.svg)](https://docs.rs/flexstr) [![Build](https://github.com/nu11ptr/flexstr/workflows/CI/badge.svg)](https://github.com/nu11ptr/flexstr/actions) [![codecov](https://codecov.io/gh/nu11ptr/flexstr/branch/master/graph/badge.svg?token=yUZ8v2tKPd)](https://codecov.io/gh/nu11ptr/flexstr) A flexible, simple to use, clone-efficient `String` replacement for Rust. It unifies borrowed, inlined, referenced counted and boxed strings into a single type. ## Overview If you've used `Cow`, but you wish cloning owned strings was more performant and that being owned didn't always imply heap allocation, this crate might be what you are looking for. The operations are "lazy" (like `Cow`), and it tries not to do work the user is not expecting. > **Users of previous versions:** you should be aware this new version is a ground up rewrite with a solidly different thought process, API and design. Even if the previous versions didn't match your needs, this one might. *Users should be aware that nearly all the string construction code is not yet present in this version.* The new way to do this (workaround?) is to do the work as a `String` and then import it into a `LocalStr` or `SharedStr`. Moving into and out of the boxed variant (`from_owned`) should be near zero cost. ## Features * Simple: just an enum. You mostly already know how to use it. * Borrowed, inlined, reference counted, and boxed strings in a single type * O(1) clone * NOTE: first `clone` when variant is `Boxed` is O(n) * Mutable (Copy-on-write under the hood, if necessary) * Inlined string type can be used on its own * Same size a a `String` (3 words wide, even inside an `Option`) * Lazy instantiation (no unexpected allocations) * No external dependencies * NOTE: `serde`/`sqlx`/`prost` optional for serialization/deserialization/encode/decode * Optional `no_std` * Optional `safe` feature that forbids any `unsafe` usage * NOTE: This does induce a performance penalty, as would be expected * NOTE 2: `OsStr`/`Path` support on Windows requires at least one unsafe call (`win_min_unsafe` feature). * Handles all Rust string types (`str`, `CStr`, `OsStr`, `Path`, `[u8]`) ## Cargo Features * **prost** = Enable `prost::Message` implementation for protobuf encoding/decoding * **safe** = Use all safe functions and add `forbid(unsafe_code)` (performance penalty) * **sqlx** = Enable sqlx encode/decode/type support * **sqlx_pg_arrays** = Enable sqlx Postgres array support (implies `sqlx` feature) * **std** = Use `std` (default) * **serde** = add `serde` dependency and adds serialization/deserialization * **utoipa** = Enable `utoipa::ToSchema` implementation for OpenAPI schema generation * **zeroize** = Enable `zeroize::Zeroize` for secure memory erasure (incompatible with `safe` feature) * **win_min_unsafe** = enables the minimum necessary unsafe code on Windows to support `OsStr`/`Path`. No other string types or operating systems are impacted (implies `safe` feature). * NOTE: The code will refuse to compile if this is not specified when ALL the following conditions are true: * The `safe` feature is enabled * The `osstr` and/or `path` feature(s) are enabled * Compiling for Windows ### String Type Features: * **str** = Enable `str`-based strings (default) * **bytes** = Enable byte-based strings (`[u8]`) * **cstr** = Enable `CStr`-based strings * **osstr** = Enable `OsStr`-based strings * **path** = Enable `Path`-based strings (implies `osstr` feature) ## Example It is just an enum that looks like this - you can probably guess much of how it works just by looking at it: ```rust,ignore // `S` is just the raw string type (typically `str`) // `R` is just an `Arc` or an `Rc`. pub enum FlexStr<'s, S, R> { Borrowed(&'s S), Inlined(InlineFlexStr), RefCounted(R), Boxed(Box), } // You would typically use it via one of the type aliases, for example: pub type LocalStr<'s> = FlexStr<'s, str, Rc>; pub type SharedStr<'s> = FlexStr<'s, str, Arc>; ``` Even that you don't really need to concern yourself with. You can just use it how you would expect a simple wrapper to behave. ```rust use flexstr::*; // This will be a "Borrowed" variant let hello: SharedStr = "hello".into(); assert!(hello.is_borrowed()); // This will be a "Boxed" variant let world: SharedStr = "world".to_string().into(); assert!(world.is_boxed()); // This is now "Inlined" (since it is short) let hello = hello.into_owned(); assert!(hello.is_inlined()); // This is now "Inlined" as well (since it is short) let world = world.optimize(); assert!(world.is_inlined()); println!("{hello} {world}"); ``` ## Performance / Efficiency There is no single ideal variant in the enum. They all perform different roles. A naive usage of this crate may or may not result in increased performance/efficiency, but a strategic one, that understands which variant is holding the string at all times, will almost certainly improve memory efficiency and/or performance in string heavy code. | Enum Variant | | Clone | Memory Efficiency | Mutation | `String` Conversion | `&str` Access | | -------------- | :-: | :-------------------------------------------------------------------------------------: | :-------------------------------: | :---------------------------: | :---------------------: | :--------------: | | | | | | | | | | **Borrowed** | | ✅ Fastest, O(1), copy 2 words | ✅ **Highest**
(reference) | ❌ Slow, maybe allocate + copy | ❌ Slow, allocate + copy | ✅ Fast, in place | | **Inlined** | | ✅ Fastest, O(1), copy 3 words | ✅ **Highest**
(inline) | ✅ Fast, in place | ❌ Slow, allocate + copy | ✅ Fast, in place | | **RefCounted** | | ✅ Local = Very fast, O(1), inc ref count
✅ Shared = Fast, O(1), inc atomic ref count | ✅ **Good**
(heap, single copy) | ❌ Slow, maybe allocate + copy | ❌ Slow, allocate + copy | ✅ Fast, in place | | **Boxed** | | ❌ Slower, O(n), maybe allocate + copy | ❌ **Lowest**
(heap, per copy) | ✅ Fast, in place | ✅ Fast, headers only* | ✅ Fast, in place | *In the current version, the usage of `Box` implies that a `String` to `Box` conversion may require an allocation/copy, if there is excess capacity. A new `BoxStr` type is in progress to fix this situation (by maintaining both capacity and length, not just length). ### Benchmarks In general, it performs quite well given that it is mostly just a thin wrapper over the stdlib. See the [benchmarks](benchmarks/README.md) page for more details. ## AI Usage The code was written by hand with care (although AI tab completion was used). Any contributions should be completely understood by the contributor, whether AI assisted or not. The tests on the otherhand were 90%+ generated by AI under my instruction. I've done a cursory review for sanity, but they need more work. Volunteers welcome. ## Status This is currently experimental, however, I will be using this at a startup in production code, so it will become production ready at some point. ## Contributions Contributions are welcome so long as they align to my vision for this crate. Currently, it does most of what I want it to do (outside of string construction and mutation, but I'm not ready to start on that yet). ## License This project is licensed optionally under either: * Apache License, Version 2.0, (LICENSE-APACHE or ) * MIT license (LICENSE-MIT or ) ================================================ FILE: benchmarks/Cargo.toml ================================================ [package] name = "benchmarks" version = "0.1.0" edition = "2024" [profile.bench] debug = true [[bench]] name = "import" harness = false [[bench]] name = "clone" harness = false [dev-dependencies] criterion = { version = "0.8", features = ["html_reports"] } flexstr = { path = "../" } inline_flexstr = { path = "../inline_flexstr" } flexstr09 = { package = "flexstr", git = "https://github.com/nu11ptr/flexstr", rev = "fe86d0a8c8f83676b93653e8627edbc5a634b898" } ================================================ FILE: benchmarks/README.md ================================================ # Benchmarks ## Environment The benchmarks were run on a Macbook Pro M1 Max with 32GB of RAM: ```bash % cargo version -v cargo 1.92.0 (344c4567c 2025-10-21) release: 1.92.0 commit-hash: 344c4567c634a25837e3c3476aac08af84cf9203 commit-date: 2025-10-21 host: aarch64-apple-darwin libgit2: 1.9.1 (sys:0.20.2 vendored) libcurl: 8.7.1 (sys:0.4.83+curl-8.15.0 system ssl:(SecureTransport) LibreSSL/3.3.6) ssl: OpenSSL 3.5.4 30 Sep 2025 os: Mac OS 15.7.1 [64-bit] ``` ## Overview At present, FlexStr is mostly just an enum wrapper (the exception being the inline string) that forwards its real world mostly to the stdlib. As such, the primary objective we looking for is: 1. That it does not add too much overhead to importing/instantiation over raw stdlib 1. That clone performance is fast enough to justify that extra overhead The benchmark results meet these goals for me currently. The results are published at the link below. ## Results The Criterion benchmark report can be found [here](https://nu11ptr.github.io/flexstr/criterion/report/) ================================================ FILE: benchmarks/archive/0.8.0/README.md ================================================ # Benchmarks ## Table of Contents - [Environment](#environment) - [Third Party Crates](#third-party-crates) - [Benchmark Pitfalls](#benchmark-pitfalls) - [Benchmark Results](#benchmark-results) - [Create and Destroy - Literal](#create-and-destroy---literal) - [Create and Destroy - Computed](#create-and-destroy---computed) - [Clone - Literal](#clone---literal) - [Clone - Computed](#clone---computed) - [Convert](#convert) ## Environment Benchmarks were run on: ```bash $ cargo +nightly version -v cargo 1.61.0-nightly (65c8266 2022-03-09) release: 1.61.0-nightly commit-hash: 65c82664263feddc5fe2d424be0993c28d46377a commit-date: 2022-03-09 host: x86_64-unknown-linux-gnu libgit2: 1.4.1 (sys:0.14.1 vendored) libcurl: 7.80.0-DEV (sys:0.4.51+curl-7.80.0 vendored ssl:OpenSSL/1.1.1m) os: Pop!_OS 20.04 (focal) [64-bit] ``` ## Third Party Crates I decided to include some popular 3rd party crates to include in the create/clone benchmarks. I try to be as fair as possible, but I'm obviously inherently biased and even the choice of tests is biased. I'm primarily doing this as yet another measuring stick on whether `FlexStr` is performing adequately or not (and now I see some places it is not). Here are the 3rd party crates and their versions under test: ``` compact_str v0.3.1 flexstr v0.8.0 kstring v1.0.6 smartstring v1.0.0 smol_str v0.1.21 ``` ## Benchmark Pitfalls The more testing I do, the more I'm convinced that microbenchmarks are nearly impossible to do accurately. I find that simply moving the order of the benchmarks can make LARGE differences. I also see sudden large jumps and drop offs even without doing anything at all. Using `black_box` seems just as sketchy, and without writing a book, find it creates the same problems just skewed slightly differently. Nevermind `nightly` vs `stable`. Due to all this, please take these with a grain of salt (maybe 5). Many of these are inaccurate or just plain wrong. That said, they are not totally worthless. We can look for trends and patterns, and benchmarking has revealed some performance surprises that resulted in beneficial code changes. The key things to watch for are (these will also give clues when benchmarks are impossibly wrong): * At size 0, we would expect "empty string" detection to kick in - should be as fast as a constant more or less * For literal tests, we are just testing how fast we can return the item - all work done at compile time * For sizes 22 and under (on 64-bit), these are all inlined - we would expect these to be faster than heap allocations * For static and inlining, there are zero code differences between `FlexStr` and `AFlexStr` and we shouldn't expect any performance difference at all (even though large differences are shown often!) ## Benchmark Results ### Create and Destroy - Literal This just demonstrates the benefits of having a constant vs. heap allocating the constant as `String` is forced to do | | `String` | `AFlexStr` | `FlexStr` | |:---------|:------------------------|:-------------------------------|:-------------------------------- | | **`40`** | `8.21 ns` (1.00x) | `1.06 ns` (✅ **7.74x faster**) | `0.57 ns` (✅ **14.31x faster**) | ### Create and Destroy - Computed * String sizes of 10 and 20 are inlining, so gets a boost * An ever so slight penalty for the wrapper on heap allocations * String sizes of 0 are just empty string constants and any variation here is likely not meaningful * Overall I'm happy with how `FlexStr` performs here on inline string creation. I suspect the difference, however, to `CompactStr` and probably `SmartString` is just noise | | `String` | `Rc` | `Arc` | `FlexStr` | `AFlexStr` | `CompactStr` | `KString` | `SmartString` | `SmolStr` | |:------------|:--------------------------|:---------------------------------|:---------------------------------|:---------------------------------|:---------------------------------|:---------------------------------|:---------------------------------|:---------------------------------|:--------------------------------- | | **`0`** | `0.43 ns` (1.00x) | `10.15 ns` (❌ *23.78x slower*) | `10.62 ns` (❌ *24.87x slower*) | `1.05 ns` (❌ *2.47x slower*) | `0.64 ns` (❌ *1.50x slower*) | `1.27 ns` (❌ *2.99x slower*) | `6.79 ns` (❌ *15.91x slower*) | `7.19 ns` (❌ *16.84x slower*) | `11.02 ns` (❌ *25.82x slower*) | | **`10`** | `9.47 ns` (1.00x) | `9.96 ns` (❌ *1.05x slower*) | `10.58 ns` (❌ *1.12x slower*) | `4.87 ns` (✅ **1.94x faster**) | `6.59 ns` (✅ **1.44x faster**) | `7.15 ns` (✅ **1.32x faster**) | `7.46 ns` (✅ **1.27x faster**) | `9.33 ns` (✅ **1.02x faster**) | `13.59 ns` (❌ *1.43x slower*) | | **`20`** | `9.38 ns` (1.00x) | `9.70 ns` (❌ *1.03x slower*) | `10.35 ns` (❌ *1.10x slower*) | `6.27 ns` (✅ **1.49x faster**) | `6.57 ns` (✅ **1.43x faster**) | `6.27 ns` (✅ **1.50x faster**) | `9.79 ns` (❌ *1.04x slower*) | `9.20 ns` (✅ **1.02x faster**) | `13.83 ns` (❌ *1.47x slower*) | | **`100`** | `9.81 ns` (1.00x) | `10.21 ns` (❌ *1.04x slower*) | `10.99 ns` (❌ *1.12x slower*) | `10.55 ns` (❌ *1.08x slower*) | `10.76 ns` (❌ *1.10x slower*) | `12.40 ns` (❌ *1.26x slower*) | `10.42 ns` (❌ *1.06x slower*) | `16.40 ns` (❌ *1.67x slower*) | `20.04 ns` (❌ *2.04x slower*) | | **`1000`** | `13.28 ns` (1.00x) | `13.94 ns` (❌ *1.05x slower*) | `14.40 ns` (❌ *1.08x slower*) | `14.24 ns` (❌ *1.07x slower*) | `14.34 ns` (❌ *1.08x slower*) | `14.97 ns` (❌ *1.13x slower*) | `13.70 ns` (❌ *1.03x slower*) | `22.58 ns` (❌ *1.70x slower*) | `25.00 ns` (❌ *1.88x slower*) | | **`16384`** | `135.56 ns` (1.00x) | `136.80 ns` (❌ *1.01x slower*) | `316.11 ns` (❌ *2.33x slower*) | `142.12 ns` (❌ *1.05x slower*) | `194.22 ns` (❌ *1.43x slower*) | `188.73 ns` (❌ *1.39x slower*) | `136.72 ns` (❌ *1.01x slower*) | `197.77 ns` (❌ *1.46x slower*) | `200.70 ns` (❌ *1.48x slower*) | ### Clone - Literal This again just demonstrates the benefits of having a constant vs. heap allocating the constant as `String` is forced to do. `AFlexStr` being much slower here is likely not correct in the real world as the code is identical to `FlexStr` | | `String` | `FlexStr` | `AFlexStr` | |:---------|:-------------------------|:-------------------------------|:-------------------------------- | | **`40`** | `11.85 ns` (1.00x) | `4.29 ns` (✅ **2.76x faster**) | `11.93 ns` (❌ *1.01x slower*) | ### Clone - Computed * The benefits of simply copying a wrapper and possibly a ref count increment are apparent in `FlexStr` * The 10 and 20 sizes being 4x slower makes zero sense - this is compiler derived `Clone` code that literally does one less step than `Rc` derived `Clone` code, so we would expect it to be the same or faster. We also don't see this deviation in `AFlexStr` * `AFlexStr` is nothing more than an enum wrapper over `Arc` for sizes 100 and above, so it being ~5x slower than a plain `Arc` is very odd to say the least * `FlexStr` falls pretty hard to `CompactStr` and `SmartString` on inline cloning. I'm not sure why, but I will be looking into this * At higher string sizes, the benefits of `Rc` and `Arc` used in `FlexStr` is very benefitical | | `String` | `Rc` | `Arc` | `FlexStr` | `AFlexStr` | `CompactStr` | `KString` | `SmartString` | `SmolStr` | |:------------|:--------------------------|:--------------------------------|:--------------------------------|:---------------------------------|:---------------------------------|:---------------------------------|:---------------------------------|:---------------------------------|:--------------------------------- | | **`0`** | `5.83 ns` (1.00x) | `0.69 ns` (✅ **8.47x faster**) | `4.46 ns` (✅ **1.31x faster**) | `8.01 ns` (❌ *1.37x slower*) | `12.33 ns` (❌ *2.12x slower*) | `3.56 ns` (✅ **1.64x faster**) | `14.96 ns` (❌ *2.57x slower*) | `3.64 ns` (✅ **1.60x faster**) | `12.33 ns` (❌ *2.12x slower*) | | **`10`** | `11.62 ns` (1.00x) | `0.77 ns` (✅ **15.07x faster**) | `4.84 ns` (✅ **2.40x faster**) | `8.12 ns` (✅ **1.43x faster**) | `12.40 ns` (❌ *1.07x slower*) | `3.50 ns` (✅ **3.32x faster**) | `14.99 ns` (❌ *1.29x slower*) | `2.47 ns` (✅ **4.71x faster**) | `12.47 ns` (❌ *1.07x slower*) | | **`20`** | `11.42 ns` (1.00x) | `0.84 ns` (✅ **13.66x faster**) | `4.78 ns` (✅ **2.39x faster**) | `8.15 ns` (✅ **1.40x faster**) | `12.39 ns` (❌ *1.08x slower*) | `3.49 ns` (✅ **3.27x faster**) | `15.48 ns` (❌ *1.36x slower*) | `2.41 ns` (✅ **4.74x faster**) | `12.42 ns` (❌ *1.09x slower*) | | **`100`** | `12.61 ns` (1.00x) | `1.49 ns` (✅ **8.48x faster**) | `5.11 ns` (✅ **2.47x faster**) | `2.00 ns` (✅ **6.29x faster**) | `12.97 ns` (❌ *1.03x slower*) | `14.63 ns` (❌ *1.16x slower*) | `17.73 ns` (❌ *1.41x slower*) | `16.70 ns` (❌ *1.32x slower*) | `16.76 ns` (❌ *1.33x slower*) | | **`1000`** | `53.93 ns` (1.00x) | `3.06 ns` (✅ **17.61x faster**) | `7.52 ns` (✅ **7.17x faster**) | `2.89 ns` (✅ **18.65x faster**) | `13.02 ns` (✅ **4.14x faster**) | `42.74 ns` (✅ **1.26x faster**) | `56.43 ns` (❌ *1.05x slower*) | `56.79 ns` (❌ *1.05x slower*) | `16.79 ns` (✅ **3.21x faster**) | | **`16384`** | `534.58 ns` (1.00x) | `6.20 ns` (✅ **86.21x faster**) | `7.72 ns` (✅ **69.23x faster**) | `2.60 ns` (✅ **205.65x faster**) | `13.16 ns` (✅ **40.63x faster**) | `467.72 ns` (✅ **1.14x faster**) | `506.98 ns` (✅ **1.05x faster**) | `498.55 ns` (✅ **1.07x faster**) | `18.33 ns` (✅ **29.17x faster**) | ### Convert Thanks mostly to `ryu` and `itoa`, our primitive conversions handily outperforms `String` | | `String` | `AFlexStr` | `FlexStr` | |:-----------|:--------------------------|:--------------------------------|:-------------------------------- | | **`bool`** | `16.58 ns` (1.00x) | `1.06 ns` (✅ **15.63x faster**) | `0.67 ns` (✅ **24.83x faster**) | | **`char`** | `10.67 ns` (1.00x) | `11.46 ns` (❌ *1.07x slower*) | `13.45 ns` (❌ *1.26x slower*) | | **`i8`** | `13.32 ns` (1.00x) | `8.95 ns` (✅ **1.49x faster**) | `10.05 ns` (✅ **1.32x faster**) | | **`i16`** | `20.76 ns` (1.00x) | `18.05 ns` (✅ **1.15x faster**) | `18.10 ns` (✅ **1.15x faster**) | | **`i32`** | `31.73 ns` (1.00x) | `14.64 ns` (✅ **2.17x faster**) | `14.55 ns` (✅ **2.18x faster**) | | **`i64`** | `38.11 ns` (1.00x) | `19.27 ns` (✅ **1.98x faster**) | `19.30 ns` (✅ **1.97x faster**) | | **`i128`** | `65.98 ns` (1.00x) | `37.99 ns` (✅ **1.74x faster**) | `37.86 ns` (✅ **1.74x faster**) | | **`f32`** | `112.65 ns` (1.00x) | `24.85 ns` (✅ **4.53x faster**) | `25.05 ns` (✅ **4.50x faster**) | | **`f64`** | `191.50 ns` (1.00x) | `30.81 ns` (✅ **6.22x faster**) | `30.01 ns` (✅ **6.38x faster**) | --- Made with [criterion-table](https://github.com/nu11ptr/criterion-table) ================================================ FILE: benchmarks/archive/0.8.1/README.md ================================================ # Benchmarks ## Table of Contents - [Environment](#environment) - [Third Party Crates](#third-party-crates) - [Benchmark Pitfalls](#benchmark-pitfalls) - [Benchmark Results](#benchmark-results) - [Create and Destroy - Literal](#create-and-destroy---literal) - [Create and Destroy - Computed](#create-and-destroy---computed) - [Clone - Literal](#clone---literal) - [Clone - Computed](#clone---computed) - [Convert](#convert) ## Environment Benchmarks were run on: ```bash $ cargo +nightly version -v cargo 1.61.0-nightly (65c8266 2022-03-09) release: 1.61.0-nightly commit-hash: 65c82664263feddc5fe2d424be0993c28d46377a commit-date: 2022-03-09 host: x86_64-unknown-linux-gnu libgit2: 1.4.1 (sys:0.14.1 vendored) libcurl: 7.80.0-DEV (sys:0.4.51+curl-7.80.0 vendored ssl:OpenSSL/1.1.1m) os: Pop!_OS 20.04 (focal) [64-bit] ``` ## Third Party Crates I decided to include some popular 3rd party crates to include in the create/clone benchmarks. I try to be as fair as possible, but I'm obviously inherently biased and even the choice of tests is biased. I'm primarily doing this as yet another measuring stick on whether `FlexStr` is performing adequately or not (and now I see some places it is not). Here are the 3rd party crates and their versions under test: ``` compact_str v0.3.1 flexstr v0.8.0 kstring v1.0.6 smartstring v1.0.0 smol_str v0.1.21 ``` ## Benchmark Pitfalls The more testing I do, the more I'm convinced that microbenchmarks are nearly impossible to do accurately. I find that simply moving the order of the benchmarks can make LARGE differences. I also see sudden large jumps and drop offs even without doing anything at all. Using `black_box` seems just as sketchy, and without writing a book, find it creates the same problems just skewed slightly differently. Nevermind `nightly` vs `stable`. Due to all this, please take these with a grain of salt (maybe 5). Many of these are inaccurate or just plain wrong. That said, they are not totally worthless. We can look for trends and patterns, and benchmarking has revealed some performance surprises that resulted in beneficial code changes. The key things to watch for are (these will also give clues when benchmarks are impossibly wrong): * At size 0, we would expect "empty string" detection to kick in - should be as fast as a constant more or less * For literal tests, we are just testing how fast we can return the item - all work done at compile time * For sizes 22 and under (on 64-bit), these are all inlined - we would expect these to be faster than heap allocations * For static and inlining, there are zero code differences between `FlexStr` and `AFlexStr` and we shouldn't expect any performance difference at all (even though large differences are shown often!) ## Benchmark Results ### Create and Destroy - Literal This just demonstrates the benefits of having a constant vs. heap allocating the constant as `String` is forced to do | | `String` | `FlexStr` | `AFlexStr` | |:---------|:------------------------|:--------------------------------|:-------------------------------- | | **`40`** | `7.98 ns` (1.00x) | `0.55 ns` (🚀 **14.39x faster**) | `0.56 ns` (🚀 **14.32x faster**) | ### Create and Destroy - Computed * String sizes of 10 and 20 are inlining, so gets a boost * An ever so slight penalty for the wrapper on heap allocations * String sizes of 0 are just empty string constants and any variation here is likely not meaningful * Overall I'm happy with how `FlexStr` performs here on inline string creation. I suspect the difference, however, to `CompactStr` and probably `SmartString` is just noise | | `String` | `Rc` | `Arc` | `FlexStr` | `AFlexStr` | `CompactStr` | `KString` | `SmartString` | `SmolStr` | |:------------|:--------------------------|:---------------------------------|:---------------------------------|:---------------------------------|:---------------------------------|:---------------------------------|:---------------------------------|:---------------------------------|:--------------------------------- | | **`0`** | `0.43 ns` (1.00x) | `10.05 ns` (❌ *23.57x slower*) | `10.80 ns` (❌ *25.34x slower*) | `0.44 ns` (❌ *1.04x slower*) | `0.43 ns` (❌ *1.02x slower*) | `1.06 ns` (❌ *2.49x slower*) | `6.36 ns` (❌ *14.92x slower*) | `7.20 ns` (❌ *16.89x slower*) | `11.02 ns` (❌ *25.85x slower*) | | **`10`** | `10.04 ns` (1.00x) | `10.09 ns` (❌ *1.01x slower*) | `10.73 ns` (❌ *1.07x slower*) | `6.11 ns` (✅ **1.64x faster**) | `6.08 ns` (✅ **1.65x faster**) | `6.95 ns` (✅ **1.44x faster**) | `8.53 ns` (✅ **1.18x faster**) | `9.26 ns` (✅ **1.08x faster**) | `13.61 ns` (❌ *1.36x slower*) | | **`20`** | `9.59 ns` (1.00x) | `9.83 ns` (❌ *1.02x slower*) | `10.44 ns` (❌ *1.09x slower*) | `4.91 ns` (✅ **1.95x faster**) | `4.90 ns` (✅ **1.96x faster**) | `6.32 ns` (✅ **1.52x faster**) | `9.87 ns` (❌ *1.03x slower*) | `9.26 ns` (✅ **1.04x faster**) | `13.58 ns` (❌ *1.42x slower*) | | **`100`** | `10.58 ns` (1.00x) | `10.60 ns` (❌ *1.00x slower*) | `11.27 ns` (❌ *1.07x slower*) | `11.09 ns` (❌ *1.05x slower*) | `10.98 ns` (❌ *1.04x slower*) | `12.01 ns` (❌ *1.13x slower*) | `10.46 ns` (✅ **1.01x faster**) | `16.78 ns` (❌ *1.59x slower*) | `20.29 ns` (❌ *1.92x slower*) | | **`1000`** | `13.50 ns` (1.00x) | `13.90 ns` (❌ *1.03x slower*) | `14.35 ns` (❌ *1.06x slower*) | `13.91 ns` (❌ *1.03x slower*) | `14.10 ns` (❌ *1.04x slower*) | `14.98 ns` (❌ *1.11x slower*) | `13.44 ns` (✅ **1.00x faster**) | `22.63 ns` (❌ *1.68x slower*) | `25.24 ns` (❌ *1.87x slower*) | | **`16384`** | `135.18 ns` (1.00x) | `135.56 ns` (❌ *1.00x slower*) | `193.03 ns` (❌ *1.43x slower*) | `139.29 ns` (❌ *1.03x slower*) | `193.82 ns` (❌ *1.43x slower*) | `189.21 ns` (❌ *1.40x slower*) | `135.17 ns` (✅ **1.00x faster**) | `195.44 ns` (❌ *1.45x slower*) | `199.77 ns` (❌ *1.48x slower*) | ### Clone - Literal This again just demonstrates the benefits of having a constant vs. heap allocating the constant as `String` is forced to do. `AFlexStr` being much slower here is likely not correct in the real world as the code is identical to `FlexStr` | | `String` | `FlexStr` | `AFlexStr` | |:---------|:-------------------------|:-------------------------------|:------------------------------- | | **`40`** | `11.90 ns` (1.00x) | `1.48 ns` (🚀 **8.04x faster**) | `2.30 ns` (🚀 **5.17x faster**) | ### Clone - Computed * The benefits of simply copying a wrapper and possibly a ref count increment are apparent in `FlexStr` * The 10 and 20 sizes being 4x slower makes zero sense - this is compiler derived `Clone` code that literally does one less step than `Rc` derived `Clone` code, so we would expect it to be the same or faster. We also don't see this deviation in `AFlexStr` * `AFlexStr` is nothing more than an enum wrapper over `Arc` for sizes 100 and above, so it being ~5x slower than a plain `Arc` is very odd to say the least * `FlexStr` falls pretty hard to `CompactStr` and `SmartString` on inline cloning. I'm not sure why, but I will be looking into this * At higher string sizes, the benefits of `Rc` and `Arc` used in `FlexStr` is very benefitical | | `String` | `Rc` | `Arc` | `FlexStr` | `AFlexStr` | `CompactStr` | `KString` | `SmartString` | `SmolStr` | |:------------|:--------------------------|:--------------------------------|:--------------------------------|:---------------------------------|:--------------------------------|:---------------------------------|:---------------------------------|:---------------------------------|:--------------------------------- | | **`0`** | `5.86 ns` (1.00x) | `0.73 ns` (🚀 **8.08x faster**) | `4.49 ns` (✅ **1.30x faster**) | `1.28 ns` (🚀 **4.57x faster**) | `2.47 ns` (🚀 **2.37x faster**) | `3.47 ns` (✅ **1.69x faster**) | `14.71 ns` (❌ *2.51x slower*) | `4.21 ns` (✅ **1.39x faster**) | `12.08 ns` (❌ *2.06x slower*) | | **`10`** | `12.26 ns` (1.00x) | `0.73 ns` (🚀 **16.85x faster**) | `4.71 ns` (🚀 **2.60x faster**) | `1.11 ns` (🚀 **11.02x faster**) | `2.32 ns` (🚀 **5.28x faster**) | `3.43 ns` (🚀 **3.57x faster**) | `14.80 ns` (❌ *1.21x slower*) | `4.12 ns` (🚀 **2.98x faster**) | `12.14 ns` (✅ **1.01x faster**) | | **`20`** | `11.51 ns` (1.00x) | `0.76 ns` (🚀 **15.23x faster**) | `4.73 ns` (🚀 **2.43x faster**) | `0.87 ns` (🚀 **13.19x faster**) | `2.29 ns` (🚀 **5.04x faster**) | `3.44 ns` (🚀 **3.35x faster**) | `15.49 ns` (❌ *1.35x slower*) | `4.02 ns` (🚀 **2.86x faster**) | `12.17 ns` (❌ *1.06x slower*) | | **`100`** | `12.93 ns` (1.00x) | `1.33 ns` (🚀 **9.74x faster**) | `5.12 ns` (🚀 **2.52x faster**) | `1.64 ns` (🚀 **7.86x faster**) | `5.43 ns` (🚀 **2.38x faster**) | `15.12 ns` (❌ *1.17x slower*) | `17.51 ns` (❌ *1.35x slower*) | `16.70 ns` (❌ *1.29x slower*) | `16.27 ns` (❌ *1.26x slower*) | | **`1000`** | `55.12 ns` (1.00x) | `3.05 ns` (🚀 **18.06x faster**) | `7.46 ns` (🚀 **7.38x faster**) | `3.08 ns` (🚀 **17.87x faster**) | `5.77 ns` (🚀 **9.55x faster**) | `40.18 ns` (✅ **1.37x faster**) | `54.93 ns` (✅ **1.00x faster**) | `55.64 ns` (❌ *1.01x slower*) | `16.39 ns` (🚀 **3.36x faster**) | | **`16384`** | `484.42 ns` (1.00x) | `5.73 ns` (🚀 **84.48x faster**) | `7.41 ns` (🚀 **65.36x faster**) | `2.49 ns` (🚀 **194.42x faster**) | `6.29 ns` (🚀 **77.02x faster**) | `452.33 ns` (✅ **1.07x faster**) | `500.87 ns` (❌ *1.03x slower*) | `497.66 ns` (❌ *1.03x slower*) | `17.57 ns` (🚀 **27.56x faster**) | ### Convert Thanks mostly to `ryu` and `itoa`, our primitive conversions handily outperforms `String` | | `String` | `AFlexStr` | `FlexStr` | |:-----------|:--------------------------|:--------------------------------|:-------------------------------- | | **`bool`** | `17.02 ns` (1.00x) | `1.07 ns` (🚀 **15.87x faster**) | `0.86 ns` (🚀 **19.84x faster**) | | **`char`** | `10.55 ns` (1.00x) | `10.04 ns` (✅ **1.05x faster**) | `10.28 ns` (✅ **1.03x faster**) | | **`i8`** | `12.69 ns` (1.00x) | `10.01 ns` (✅ **1.27x faster**) | `10.20 ns` (✅ **1.24x faster**) | | **`i16`** | `21.17 ns` (1.00x) | `10.61 ns` (✅ **1.99x faster**) | `10.63 ns` (✅ **1.99x faster**) | | **`i32`** | `38.49 ns` (1.00x) | `12.68 ns` (🚀 **3.04x faster**) | `12.67 ns` (🚀 **3.04x faster**) | | **`i64`** | `35.91 ns` (1.00x) | `12.10 ns` (🚀 **2.97x faster**) | `12.12 ns` (🚀 **2.96x faster**) | | **`i128`** | `63.06 ns` (1.00x) | `34.05 ns` (✅ **1.85x faster**) | `33.45 ns` (✅ **1.89x faster**) | | **`f32`** | `118.53 ns` (1.00x) | `18.47 ns` (🚀 **6.42x faster**) | `17.36 ns` (🚀 **6.83x faster**) | | **`f64`** | `191.93 ns` (1.00x) | `30.56 ns` (🚀 **6.28x faster**) | `30.14 ns` (🚀 **6.37x faster**) | --- Made with [criterion-table](https://github.com/nu11ptr/criterion-table) ================================================ FILE: benchmarks/archive/0.8.1/clone.json ================================================ {"reason":"benchmark-complete","id":"Clone - Literal/String/40","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Literal/String/40","iteration_count":[24934,49868,74802,99736,124670,149604,174538,199472,224406,249340,274274,299208,324142,349076,374010,398944,423878,448812,473746,498680,523614,548548,573482,598416,623350,648284,673218,698152,723086,748020,772954,797888,822822,847756,872690,897624,922558,947492,972426,997360,1022294,1047228,1072162,1097096,1122030,1146964,1171898,1196832,1221766,1246700,1271634,1296568,1321502,1346436,1371370,1396304,1421238,1446172,1471106,1496040,1520974,1545908,1570842,1595776,1620710,1645644,1670578,1695512,1720446,1745380,1770314,1795248,1820182,1845116,1870050,1894984,1919918,1944852,1969786,1994720,2019654,2044588,2069522,2094456,2119390,2144324,2169258,2194192,2219126,2244060,2268994,2293928,2318862,2343796,2368730,2393664,2418598,2443532,2468466,2493400],"measured_values":[279436.0,564468.0,854638.0,1140008.0,1426290.0,1714496.0,1993685.0,2420595.0,2715723.0,3030166.0,3334484.0,3609795.0,3914762.0,4226463.0,4549953.0,4847309.0,5150302.0,5453937.0,5744027.0,6050646.0,6362147.0,6640112.0,6958378.0,7248406.0,7543563.0,7859143.0,8132952.0,8463764.0,8785926.0,9079192.0,9350456.0,9668126.0,9994175.0,10241544.0,10590774.0,10924500.0,11221649.0,11464576.0,11818640.0,12111615.0,12447360.0,12733269.0,13059366.0,13326244.0,13679822.0,13948133.0,14244123.0,14557307.0,14878595.0,15201054.0,15556326.0,15820777.0,16105295.0,16424181.0,16714660.0,17039274.0,17293921.0,17624293.0,17962331.0,18216021.0,18565457.0,18859562.0,19216867.0,19529180.0,19826061.0,20106182.0,20374622.0,20699336.0,20968534.0,21285779.0,21554134.0,21874622.0,22083152.0,22441213.0,22729739.0,23047282.0,23303516.0,23632449.0,23970910.0,24201239.0,24576027.0,24842081.0,25153219.0,24603990.0,24508368.0,24809427.0,25074509.0,25400025.0,25559869.0,25849258.0,26147483.0,26374851.0,26693925.0,26967325.0,27326454.0,27564416.0,27857869.0,28186473.0,28461112.0,28680910.0],"unit":"ns","throughput":[],"typical":{"estimate":11.902444601701795,"lower_bound":11.81730573263665,"upper_bound":11.994809480915421,"unit":"ns"},"mean":{"estimate":11.999432528227308,"lower_bound":11.940696115255294,"upper_bound":12.053317286752927,"unit":"ns"},"median":{"estimate":12.148499822235802,"lower_bound":12.132649695195315,"upper_bound":12.15412013015566,"unit":"ns"},"median_abs_dev":{"estimate":0.05983839867660231,"lower_bound":0.0409081654753639,"upper_bound":0.08440585315350069,"unit":"ns"},"slope":{"estimate":11.902444601701795,"lower_bound":11.81730573263665,"upper_bound":11.994809480915421,"unit":"ns"},"change":{"mean":{"estimate":0.05158150462402333,"lower_bound":0.04581983627468528,"upper_bound":0.057008133519848514,"unit":"%"},"median":{"estimate":0.06738783300162665,"lower_bound":0.0649805143949639,"upper_bound":0.06868499408919959,"unit":"%"},"change":"Regressed"}} {"reason":"benchmark-complete","id":"Clone - Literal/FlexStr/40","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Literal/FlexStr/40","iteration_count":[69309,138618,207927,277236,346545,415854,485163,554472,623781,693090,762399,831708,901017,970326,1039635,1108944,1178253,1247562,1316871,1386180,1455489,1524798,1594107,1663416,1732725,1802034,1871343,1940652,2009961,2079270,2148579,2217888,2287197,2356506,2425815,2495124,2564433,2633742,2703051,2772360,2841669,2910978,2980287,3049596,3118905,3188214,3257523,3326832,3396141,3465450,3534759,3604068,3673377,3742686,3811995,3881304,3950613,4019922,4089231,4158540,4227849,4297158,4366467,4435776,4505085,4574394,4643703,4713012,4782321,4851630,4920939,4990248,5059557,5128866,5198175,5267484,5336793,5406102,5475411,5544720,5614029,5683338,5752647,5821956,5891265,5960574,6029883,6099192,6168501,6237810,6307119,6376428,6445737,6515046,6584355,6653664,6722973,6792282,6861591,6930900],"measured_values":[54063.0,118925.0,172586.0,195840.0,373488.0,342629.0,381221.0,410788.0,411681.0,450303.0,496670.0,549983.0,598734.0,634542.0,777061.0,731534.0,942393.0,878483.0,924090.0,1167503.0,1087239.0,1114120.0,1159685.0,1240286.0,1294030.0,1313438.0,1394540.0,1438423.0,1463051.0,1521280.0,1554673.0,1606283.0,1789578.0,1965914.0,1866514.0,1910909.0,2046497.0,2090479.0,2136827.0,2141246.0,2373043.0,2261522.0,2367284.0,2548866.0,2576548.0,2788510.0,2872669.0,2966099.0,3053203.0,3395459.0,3415767.0,3287744.0,3519376.0,3678674.0,3856642.0,3798384.0,6531588.0,4764522.0,4370195.0,4487840.0,4736198.0,4822826.0,5097512.0,6988983.0,5641501.0,5875405.0,5948684.0,6580982.0,6329525.0,6432693.0,6625257.0,7470245.0,7109374.0,7319350.0,7872778.0,8476761.0,8009906.0,8118121.0,9838279.0,9064093.0,8734319.0,9432711.0,9399548.0,9619386.0,10215604.0,9962196.0,9984827.0,10855376.0,10668402.0,10955405.0,10973219.0,11134024.0,11728570.0,11564652.0,11988073.0,12582243.0,12296303.0,12534875.0,12717270.0,12827099.0],"unit":"ns","throughput":[],"typical":{"estimate":1.479977825864615,"lower_bound":1.392470717828956,"upper_bound":1.5514824200986956,"unit":"ns"},"mean":{"estimate":1.1259874426765237,"lower_bound":1.0463826315218845,"upper_bound":1.209224549530087,"unit":"ns"},"median":{"estimate":0.9622065264549247,"lower_bound":0.835087760045241,"upper_bound":1.1438303759455721,"unit":"ns"},"median_abs_dev":{"estimate":0.35040554392521617,"lower_bound":0.1921657544343657,"upper_bound":0.5728248787711901,"unit":"ns"},"slope":{"estimate":1.479977825864615,"lower_bound":1.392470717828956,"upper_bound":1.5514824200986956,"unit":"ns"},"change":{"mean":{"estimate":0.004743495730573644,"lower_bound":-0.08551213393274673,"upper_bound":0.11260227724083198,"unit":"%"},"median":{"estimate":0.011203811158840837,"lower_bound":-0.2022015072630199,"upper_bound":0.2413153912250574,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Literal/AFlexStr/40","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Literal/AFlexStr/40","iteration_count":[66296,132592,198888,265184,331480,397776,464072,530368,596664,662960,729256,795552,861848,928144,994440,1060736,1127032,1193328,1259624,1325920,1392216,1458512,1524808,1591104,1657400,1723696,1789992,1856288,1922584,1988880,2055176,2121472,2187768,2254064,2320360,2386656,2452952,2519248,2585544,2651840,2718136,2784432,2850728,2917024,2983320,3049616,3115912,3182208,3248504,3314800,3381096,3447392,3513688,3579984,3646280,3712576,3778872,3845168,3911464,3977760,4044056,4110352,4176648,4242944,4309240,4375536,4441832,4508128,4574424,4640720,4707016,4773312,4839608,4905904,4972200,5038496,5104792,5171088,5237384,5303680,5369976,5436272,5502568,5568864,5635160,5701456,5767752,5834048,5900344,5966640,6032936,6099232,6165528,6231824,6298120,6364416,6430712,6497008,6563304,6629600],"measured_values":[145345.0,282053.0,406861.0,557977.0,722567.0,844018.0,989393.0,1073354.0,1196508.0,1350218.0,1489509.0,1684149.0,1744524.0,1891522.0,2062787.0,2149971.0,2347595.0,2475438.0,2596805.0,2742854.0,2983900.0,3124506.0,3219237.0,3404938.0,3541955.0,3681529.0,3886770.0,3923709.0,4095656.0,4242361.0,4390631.0,4521270.0,4603328.0,4806079.0,4933982.0,5068438.0,5236045.0,5519494.0,5509766.0,5600233.0,5837374.0,6009521.0,6177237.0,6327382.0,6355163.0,6579519.0,6768055.0,6825707.0,6979777.0,7129140.0,7306594.0,7405222.0,7602367.0,7806503.0,7896293.0,7999018.0,8191309.0,8785035.0,8437247.0,11035575.0,8881447.0,9374160.0,9212826.0,9434936.0,9630926.0,9701820.0,9799175.0,10059006.0,10364467.0,10443514.0,10520200.0,10861293.0,10920780.0,11053030.0,11227109.0,11398092.0,11531925.0,11846022.0,12021162.0,12357651.0,12390120.0,12535687.0,12922459.0,13027528.0,13062846.0,13165021.0,13531462.0,13935238.0,13871616.0,14061166.0,14179097.0,14634953.0,14550933.0,14962244.0,15502083.0,15361848.0,15597013.0,16184705.0,16077815.0,16224762.0],"unit":"ns","throughput":[],"typical":{"estimate":2.302687399975488,"lower_bound":2.2738405151589567,"upper_bound":2.3289008291382967,"unit":"ns"},"mean":{"estimate":2.2075977417907993,"lower_bound":2.1839125851477594,"upper_bound":2.2328546347679534,"unit":"ns"},"median":{"estimate":2.167278944862444,"lower_bound":2.1486127152683205,"upper_bound":2.2057942158400707,"unit":"ns"},"median_abs_dev":{"estimate":0.09428729365130939,"lower_bound":0.06002434983758474,"upper_bound":0.13534959171853317,"unit":"ns"},"slope":{"estimate":2.302687399975488,"lower_bound":2.2738405151589567,"upper_bound":2.3289008291382967,"unit":"ns"},"change":{"mean":{"estimate":-0.009913700873851905,"lower_bound":-0.026725340108296185,"upper_bound":0.005047831086856107,"unit":"%"},"median":{"estimate":-0.001550169098323062,"lower_bound":-0.014891686775725277,"upper_bound":0.012805571965028184,"unit":"%"},"change":"NoChange"}} {"reason":"group-complete","group_name":"Clone - Literal","benchmarks":["Clone - Literal/String/40","Clone - Literal/FlexStr/40","Clone - Literal/AFlexStr/40"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Literal"} {"reason":"benchmark-complete","id":"Clone - Computed/String/0","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/String/0","iteration_count":[49208,98416,147624,196832,246040,295248,344456,393664,442872,492080,541288,590496,639704,688912,738120,787328,836536,885744,934952,984160,1033368,1082576,1131784,1180992,1230200,1279408,1328616,1377824,1427032,1476240,1525448,1574656,1623864,1673072,1722280,1771488,1820696,1869904,1919112,1968320,2017528,2066736,2115944,2165152,2214360,2263568,2312776,2361984,2411192,2460400,2509608,2558816,2608024,2657232,2706440,2755648,2804856,2854064,2903272,2952480,3001688,3050896,3100104,3149312,3198520,3247728,3296936,3346144,3395352,3444560,3493768,3542976,3592184,3641392,3690600,3739808,3789016,3838224,3887432,3936640,3985848,4035056,4084264,4133472,4182680,4231888,4281096,4330304,4379512,4428720,4477928,4527136,4576344,4625552,4674760,4723968,4773176,4822384,4871592,4920800],"measured_values":[290510.0,579650.0,870970.0,1152643.0,1441169.0,1747829.0,2022720.0,2322258.0,2599894.0,2863372.0,3192205.0,3435847.0,3720462.0,4033498.0,4324380.0,4593269.0,4878929.0,5193906.0,5445571.0,5788923.0,6059576.0,6402296.0,6634853.0,6944619.0,7200483.0,7524186.0,7761918.0,8064651.0,8366793.0,8650691.0,8951532.0,9247410.0,9485855.0,9811258.0,10107791.0,10368634.0,10641892.0,10925888.0,11208473.0,11508332.0,11832256.0,12167478.0,12413106.0,12653750.0,12919884.0,13258165.0,13509101.0,13781626.0,14093528.0,14425705.0,14794616.0,15121973.0,15331731.0,15575133.0,15860802.0,16178515.0,16445241.0,16697590.0,17041338.0,17305169.0,17632796.0,18015484.0,18139799.0,18476455.0,18699538.0,19058859.0,19336474.0,19541362.0,19957019.0,20221471.0,20398087.0,20812389.0,21031555.0,21397587.0,21580957.0,21771525.0,22266793.0,22481401.0,22776007.0,22994723.0,23411803.0,23656164.0,23889967.0,24214741.0,24458534.0,24780144.0,25086946.0,25356174.0,25618160.0,25935672.0,26170446.0,26535194.0,26843219.0,27220232.0,27330841.0,27586936.0,28039606.0,28303715.0,28614032.0,28790756.0],"unit":"ns","throughput":[],"typical":{"estimate":5.8597604961361425,"lower_bound":5.855992534192237,"upper_bound":5.863511764230378,"unit":"ns"},"mean":{"estimate":5.86136670988279,"lower_bound":5.857335978319129,"upper_bound":5.86548598007893,"unit":"ns"},"median":{"estimate":5.860812281693541,"lower_bound":5.85624559692191,"upper_bound":5.863941937856625,"unit":"ns"},"median_abs_dev":{"estimate":0.01909485732730849,"lower_bound":0.013705239686151881,"upper_bound":0.022366455308869042,"unit":"ns"},"slope":{"estimate":5.8597604961361425,"lower_bound":5.855992534192237,"upper_bound":5.863511764230378,"unit":"ns"},"change":{"mean":{"estimate":-0.00023767274052255427,"lower_bound":-0.0013029065493513374,"upper_bound":0.000838347110767895,"unit":"%"},"median":{"estimate":-0.00018047129936815676,"lower_bound":-0.001211630720827639,"upper_bound":0.0008727567644331025,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/Rc/0","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/Rc_str_/0","iteration_count":[34014,68028,102042,136056,170070,204084,238098,272112,306126,340140,374154,408168,442182,476196,510210,544224,578238,612252,646266,680280,714294,748308,782322,816336,850350,884364,918378,952392,986406,1020420,1054434,1088448,1122462,1156476,1190490,1224504,1258518,1292532,1326546,1360560,1394574,1428588,1462602,1496616,1530630,1564644,1598658,1632672,1666686,1700700,1734714,1768728,1802742,1836756,1870770,1904784,1938798,1972812,2006826,2040840,2074854,2108868,2142882,2176896,2210910,2244924,2278938,2312952,2346966,2380980,2414994,2449008,2483022,2517036,2551050,2585064,2619078,2653092,2687106,2721120,2755134,2789148,2823162,2857176,2891190,2925204,2959218,2993232,3027246,3061260,3095274,3129288,3163302,3197316,3231330,3265344,3299358,3333372,3367386,3401400],"measured_values":[22852.0,45344.0,68361.0,90531.0,113043.0,134314.0,157791.0,178219.0,200449.0,223282.0,258140.0,273435.0,288876.0,313795.0,351037.0,369340.0,374850.0,395932.0,419436.0,452156.0,467305.0,503225.0,510648.0,532197.0,571361.0,573406.0,589986.0,621325.0,654127.0,672884.0,684578.0,709465.0,749058.0,760301.0,789464.0,800798.0,815837.0,892880.0,873583.0,898491.0,930281.0,952572.0,987711.0,985967.0,1011967.0,1047143.0,1094523.0,1093032.0,1095122.0,1148034.0,1115602.0,1210653.0,1176797.0,1187309.0,1217485.0,1224278.0,1271557.0,1349665.0,1381766.0,1340600.0,1343585.0,1380125.0,1448812.0,1419898.0,1436010.0,1459815.0,1572075.0,1574773.0,1518644.0,1666256.0,1560908.0,1635990.0,1680864.0,1662098.0,1668509.0,1842719.0,1821680.0,1798706.0,1775863.0,1992232.0,1837819.0,1864379.0,2009857.0,2139431.0,2325824.0,2040634.0,2129193.0,2296038.0,2039001.0,2368926.0,2496817.0,2239652.0,2344248.0,2351694.0,2282702.0,2476622.0,2794913.0,2371760.0,5063068.0,2583141.0],"unit":"ns","throughput":[],"typical":{"estimate":0.7255766559982443,"lower_bound":0.6911471366251802,"upper_bound":0.7773730144517748,"unit":"ns"},"mean":{"estimate":0.6868353322887493,"lower_bound":0.6730124828340195,"upper_bound":0.7072133467777215,"unit":"ns"},"median":{"estimate":0.6666708666179473,"lower_bound":0.6603832245545952,"upper_bound":0.6708744928558829,"unit":"ns"},"median_abs_dev":{"estimate":0.020842431622020024,"lower_bound":0.014233441592107831,"upper_bound":0.026831198893860358,"unit":"ns"},"slope":{"estimate":0.7255766559982443,"lower_bound":0.6911471366251802,"upper_bound":0.7773730144517748,"unit":"ns"},"change":{"mean":{"estimate":0.008552409586426002,"lower_bound":-0.026443856580031906,"upper_bound":0.04243387586086957,"unit":"%"},"median":{"estimate":0.006821525205982892,"lower_bound":-0.004320984705528441,"upper_bound":0.014045114899369215,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/Arc/0","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/Arc_str_/0","iteration_count":[30507,61014,91521,122028,152535,183042,213549,244056,274563,305070,335577,366084,396591,427098,457605,488112,518619,549126,579633,610140,640647,671154,701661,732168,762675,793182,823689,854196,884703,915210,945717,976224,1006731,1037238,1067745,1098252,1128759,1159266,1189773,1220280,1250787,1281294,1311801,1342308,1372815,1403322,1433829,1464336,1494843,1525350,1555857,1586364,1616871,1647378,1677885,1708392,1738899,1769406,1799913,1830420,1860927,1891434,1921941,1952448,1982955,2013462,2043969,2074476,2104983,2135490,2165997,2196504,2227011,2257518,2288025,2318532,2349039,2379546,2410053,2440560,2471067,2501574,2532081,2562588,2593095,2623602,2654109,2684616,2715123,2745630,2776137,2806644,2837151,2867658,2898165,2928672,2959179,2989686,3020193,3050700],"measured_values":[140726.0,262348.0,411862.0,562315.0,683313.0,827037.0,971912.0,1114981.0,1222777.0,1358593.0,1527493.0,1626528.0,1784128.0,1961472.0,2062164.0,2194527.0,2342477.0,2478252.0,2617074.0,2750701.0,2900363.0,3010410.0,3113766.0,3291022.0,3460241.0,3602192.0,3736354.0,3870398.0,3992571.0,4123027.0,4289841.0,4380253.0,4547902.0,4650807.0,4839104.0,4940558.0,5099905.0,5171672.0,5328732.0,5495287.0,5595706.0,5766450.0,5879242.0,6049776.0,6153833.0,6285841.0,6469573.0,6579168.0,6738602.0,6906559.0,6998965.0,7088332.0,7307245.0,7455658.0,7523456.0,7710072.0,7796383.0,7870152.0,8208513.0,8252319.0,8345181.0,8565288.0,8624651.0,8816957.0,8974113.0,9029066.0,9227191.0,9363770.0,9456016.0,9558079.0,9728141.0,9965050.0,10008731.0,10217938.0,10376852.0,10390094.0,10619347.0,10811011.0,10868099.0,11023102.0,11091191.0,11309776.0,11426425.0,11591567.0,11734357.0,11909474.0,11983705.0,12093259.0,12299321.0,12361817.0,12491305.0,12674290.0,12340677.0,12773680.0,13023341.0,12740102.0,13221397.0,13567991.0,13128571.0,13582329.0],"unit":"ns","throughput":[],"typical":{"estimate":4.492248571090834,"lower_bound":4.476332907932132,"upper_bound":4.50631733708529,"unit":"ns"},"mean":{"estimate":4.500957881559554,"lower_bound":4.491669826749461,"upper_bound":4.509517448723451,"unit":"ns"},"median":{"estimate":4.50744745282767,"lower_bound":4.4986598283874315,"upper_bound":4.513800111449831,"unit":"ns"},"median_abs_dev":{"estimate":0.029935761774453083,"lower_bound":0.021967078708288772,"upper_bound":0.03567288617640738,"unit":"ns"},"slope":{"estimate":4.492248571090834,"lower_bound":4.476332907932132,"upper_bound":4.50631733708529,"unit":"ns"},"change":{"mean":{"estimate":0.00010130240193850781,"lower_bound":-0.007727725439193642,"upper_bound":0.00800257949536578,"unit":"%"},"median":{"estimate":0.0007359648469231761,"lower_bound":-0.005060913576013459,"upper_bound":0.007380855804002495,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/FlexStr/0","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/FlexStr/0","iteration_count":[61906,123812,185718,247624,309530,371436,433342,495248,557154,619060,680966,742872,804778,866684,928590,990496,1052402,1114308,1176214,1238120,1300026,1361932,1423838,1485744,1547650,1609556,1671462,1733368,1795274,1857180,1919086,1980992,2042898,2104804,2166710,2228616,2290522,2352428,2414334,2476240,2538146,2600052,2661958,2723864,2785770,2847676,2909582,2971488,3033394,3095300,3157206,3219112,3281018,3342924,3404830,3466736,3528642,3590548,3652454,3714360,3776266,3838172,3900078,3961984,4023890,4085796,4147702,4209608,4271514,4333420,4395326,4457232,4519138,4581044,4642950,4704856,4766762,4828668,4890574,4952480,5014386,5076292,5138198,5200104,5262010,5323916,5385822,5447728,5509634,5571540,5633446,5695352,5757258,5819164,5881070,5942976,6004882,6066788,6128694,6190600],"measured_values":[48452.0,114917.0,146308.0,176464.0,233683.0,311540.0,349022.0,385311.0,391862.0,430287.0,472236.0,511810.0,570089.0,596217.0,649667.0,825011.0,751804.0,769657.0,1026755.0,898933.0,951892.0,1362560.0,1071690.0,1133305.0,1218226.0,1243716.0,1298036.0,1344377.0,1358010.0,1480264.0,1459485.0,1505869.0,1690793.0,1585912.0,1696113.0,1760584.0,1788284.0,1833573.0,1908884.0,2167336.0,2136033.0,2025464.0,2058119.0,2331063.0,2181630.0,2298099.0,2398622.0,2687438.0,2756739.0,2676277.0,2821212.0,2971585.0,2982619.0,3057592.0,3319256.0,3682956.0,3491470.0,3351725.0,3361074.0,4338093.0,3738759.0,3859346.0,3815314.0,6947365.0,5008923.0,4548773.0,4446621.0,4490351.0,4580921.0,4753383.0,5373274.0,5234202.0,6125799.0,5527587.0,5574766.0,5594964.0,6408144.0,6239015.0,6422552.0,6341307.0,6331329.0,7143937.0,7113111.0,7916671.0,7174845.0,7345398.0,7666086.0,7659564.0,7915809.0,8458187.0,9076047.0,9124369.0,8704552.0,8795885.0,9198986.0,9051490.0,9145605.0,9619045.0,9993674.0,10831488.0],"unit":"ns","throughput":[],"typical":{"estimate":1.2818096644626087,"lower_bound":1.2099945012918387,"upper_bound":1.3441633726127407,"unit":"ns"},"mean":{"estimate":1.0283644331418524,"lower_bound":0.9704428561146541,"upper_bound":1.0882611392613815,"unit":"ns"},"median":{"estimate":0.9118494512870587,"lower_bound":0.8358359515501999,"upper_bound":1.0004611096589258,"unit":"ns"},"median_abs_dev":{"estimate":0.23539940348318908,"lower_bound":0.15191820041611806,"upper_bound":0.35731410894676247,"unit":"ns"},"slope":{"estimate":1.2818096644626087,"lower_bound":1.2099945012918387,"upper_bound":1.3441633726127407,"unit":"ns"},"change":{"mean":{"estimate":-0.030290295808592882,"lower_bound":-0.1075145313606066,"upper_bound":0.05670306828931924,"unit":"%"},"median":{"estimate":-0.005092238820419204,"lower_bound":-0.135282288796855,"upper_bound":0.1438264584271527,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/AFlexStr/0","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/AFlexStr/0","iteration_count":[58313,116626,174939,233252,291565,349878,408191,466504,524817,583130,641443,699756,758069,816382,874695,933008,991321,1049634,1107947,1166260,1224573,1282886,1341199,1399512,1457825,1516138,1574451,1632764,1691077,1749390,1807703,1866016,1924329,1982642,2040955,2099268,2157581,2215894,2274207,2332520,2390833,2449146,2507459,2565772,2624085,2682398,2740711,2799024,2857337,2915650,2973963,3032276,3090589,3148902,3207215,3265528,3323841,3382154,3440467,3498780,3557093,3615406,3673719,3732032,3790345,3848658,3906971,3965284,4023597,4081910,4140223,4198536,4256849,4315162,4373475,4431788,4490101,4548414,4606727,4665040,4723353,4781666,4839979,4898292,4956605,5014918,5073231,5131544,5189857,5248170,5306483,5364796,5423109,5481422,5539735,5598048,5656361,5714674,5772987,5831300],"measured_values":[141988.0,269509.0,404697.0,533380.0,669306.0,810956.0,943105.0,1080327.0,1223739.0,1342483.0,1484441.0,1613524.0,1746227.0,1891644.0,2036196.0,2151252.0,2327607.0,2422187.0,2596058.0,2741420.0,2810103.0,2974599.0,3092665.0,3300990.0,3360885.0,3488579.0,3649352.0,3818480.0,3949877.0,4032174.0,4197398.0,4312905.0,4488027.0,4559152.0,4739055.0,4880994.0,4992114.0,5126727.0,5261716.0,5427387.0,5513739.0,5673313.0,5784855.0,5920422.0,6119430.0,6194909.0,6371576.0,6511520.0,6705276.0,6762045.0,6917318.0,7118720.0,7314779.0,7410443.0,7513318.0,7633985.0,7871075.0,7949883.0,8079780.0,8239208.0,8500678.0,8582372.0,8813668.0,9160415.0,8995734.0,9158482.0,9415817.0,12092488.0,10034872.0,9836957.0,9881359.0,10281978.0,10207860.0,10415452.0,10816059.0,10770302.0,10867298.0,11031238.0,11277433.0,11374641.0,11533297.0,11675450.0,12109742.0,12616510.0,12444332.0,12555674.0,12646014.0,13125591.0,13092992.0,13607377.0,13428256.0,13758904.0,13681494.0,14169922.0,14120158.0,14574789.0,14846605.0,14682540.0,15061170.0,15036964.0],"unit":"ns","throughput":[],"typical":{"estimate":2.472659161694254,"lower_bound":2.4434658825744844,"upper_bound":2.5001303257127203,"unit":"ns"},"mean":{"estimate":2.393913801493878,"lower_bound":2.3731660313278815,"upper_bound":2.4174272875413867,"unit":"ns"},"median":{"estimate":2.3478171279302296,"lower_bound":2.329958442657155,"upper_bound":2.3733285492481557,"unit":"ns"},"median_abs_dev":{"estimate":0.06106504831817239,"lower_bound":0.035467792934139854,"upper_bound":0.0919497883152524,"unit":"ns"},"slope":{"estimate":2.472659161694254,"lower_bound":2.4434658825744844,"upper_bound":2.5001303257127203,"unit":"ns"},"change":{"mean":{"estimate":-0.016322770960656152,"lower_bound":-0.029493156889951817,"upper_bound":-0.0019992801062179394,"unit":"%"},"median":{"estimate":-0.019553026760143477,"lower_bound":-0.030791287258966515,"upper_bound":-0.0026975622918224054,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/CompactStr/0","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/CompactStr/0","iteration_count":[40625,81250,121875,162500,203125,243750,284375,325000,365625,406250,446875,487500,528125,568750,609375,650000,690625,731250,771875,812500,853125,893750,934375,975000,1015625,1056250,1096875,1137500,1178125,1218750,1259375,1300000,1340625,1381250,1421875,1462500,1503125,1543750,1584375,1625000,1665625,1706250,1746875,1787500,1828125,1868750,1909375,1950000,1990625,2031250,2071875,2112500,2153125,2193750,2234375,2275000,2315625,2356250,2396875,2437500,2478125,2518750,2559375,2600000,2640625,2681250,2721875,2762500,2803125,2843750,2884375,2925000,2965625,3006250,3046875,3087500,3128125,3168750,3209375,3250000,3290625,3331250,3371875,3412500,3453125,3493750,3534375,3575000,3615625,3656250,3696875,3737500,3778125,3818750,3859375,3900000,3940625,3981250,4021875,4062500],"measured_values":[140286.0,281461.0,419143.0,556152.0,711054.0,842766.0,969476.0,1105404.0,1252633.0,1377709.0,1603797.0,1670794.0,1794376.0,1952336.0,2073618.0,2248676.0,2389734.0,2495246.0,2626242.0,2750639.0,2899259.0,3042814.0,3180843.0,3320820.0,3471374.0,3630044.0,3742889.0,3871270.0,4002479.0,4144969.0,4317637.0,4495955.0,4567878.0,4690597.0,4822501.0,4973306.0,5160029.0,5288184.0,5415264.0,5550278.0,5701244.0,5810181.0,5954528.0,6083608.0,6260233.0,6365644.0,6554553.0,6616680.0,6806577.0,6922971.0,7057733.0,7234200.0,7318578.0,7511894.0,7614217.0,7908153.0,7877517.0,8047387.0,8146298.0,8338081.0,8465560.0,8648487.0,8725642.0,8898329.0,9023237.0,9163690.0,9317205.0,9431018.0,9533583.0,9699213.0,9866862.0,10015723.0,10119943.0,10276849.0,10462790.0,10553102.0,10785765.0,10887165.0,10980610.0,11068749.0,11261835.0,11309804.0,11652042.0,11822399.0,12204270.0,12298157.0,12471155.0,12540286.0,12796181.0,12923452.0,13065972.0,13341965.0,13330504.0,13571878.0,13662350.0,13789502.0,13989942.0,14585550.0,14568078.0,14238283.0],"unit":"ns","throughput":[],"typical":{"estimate":3.4730378679883143,"lower_bound":3.4525579667748603,"upper_bound":3.492806596481001,"unit":"ns"},"mean":{"estimate":3.441979126553584,"lower_bound":3.431568772860746,"upper_bound":3.4531660143344296,"unit":"ns"},"median":{"estimate":3.421107084493328,"lower_bound":3.41611500630517,"upper_bound":3.424972624381467,"unit":"ns"},"median_abs_dev":{"estimate":0.024774502907139173,"lower_bound":0.018460154208930126,"upper_bound":0.034186687895700875,"unit":"ns"},"slope":{"estimate":3.4730378679883143,"lower_bound":3.4525579667748603,"upper_bound":3.492806596481001,"unit":"ns"},"change":{"mean":{"estimate":-0.006220213675995456,"lower_bound":-0.010534054209096083,"upper_bound":-0.002070022023653695,"unit":"%"},"median":{"estimate":-0.009400285210563686,"lower_bound":-0.011685479209049499,"upper_bound":-0.007813050603676652,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/KString/0","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/KString/0","iteration_count":[25316,50632,75948,101264,126580,151896,177212,202528,227844,253160,278476,303792,329108,354424,379740,405056,430372,455688,481004,506320,531636,556952,582268,607584,632900,658216,683532,708848,734164,759480,784796,810112,835428,860744,886060,911376,936692,962008,987324,1012640,1037956,1063272,1088588,1113904,1139220,1164536,1189852,1215168,1240484,1265800,1291116,1316432,1341748,1367064,1392380,1417696,1443012,1468328,1493644,1518960,1544276,1569592,1594908,1620224,1645540,1670856,1696172,1721488,1746804,1772120,1797436,1822752,1848068,1873384,1898700,1924016,1949332,1974648,1999964,2025280,2050596,2075912,2101228,2126544,2151860,2177176,2202492,2227808,2253124,2278440,2303756,2329072,2354388,2379704,2405020,2430336,2455652,2480968,2506284,2531600],"measured_values":[376954.0,750812.0,1129611.0,1501393.0,1876835.0,2238678.0,2622064.0,3006805.0,3360273.0,3715855.0,4081585.0,4492544.0,4870933.0,5221307.0,5601008.0,5990315.0,6329358.0,6725416.0,7075087.0,7442011.0,7817430.0,8196851.0,8578542.0,8935410.0,9301811.0,9659178.0,10022028.0,10404059.0,10788410.0,11124394.0,11492391.0,11880195.0,12250930.0,12636508.0,12989666.0,13474835.0,13775716.0,14098758.0,14500841.0,14857574.0,15234507.0,15658882.0,15978185.0,16416537.0,16731361.0,17114426.0,17456286.0,17876408.0,18252262.0,18736749.0,18969068.0,19368404.0,19683249.0,20082086.0,20515839.0,20781801.0,21262561.0,21560195.0,21913106.0,22278996.0,22714167.0,23091736.0,23385921.0,23761681.0,24256955.0,24560839.0,24952278.0,25237427.0,25610434.0,26060678.0,26525209.0,26746395.0,27088835.0,27539316.0,28041247.0,28329763.0,28758365.0,29117889.0,29497465.0,29820498.0,30218861.0,30529527.0,30970113.0,31356635.0,31630133.0,32094029.0,32569171.0,32803615.0,33092223.0,33553437.0,33828626.0,34166687.0,34675241.0,34917719.0,35362411.0,35714139.0,36100998.0,36492181.0,36830278.0,37300622.0],"unit":"ns","throughput":[],"typical":{"estimate":14.709160905431247,"lower_bound":14.701149259140447,"upper_bound":14.717247699993054,"unit":"ns"},"mean":{"estimate":14.716608189746042,"lower_bound":14.707012450278931,"upper_bound":14.72675123000666,"unit":"ns"},"median":{"estimate":14.706637726114652,"lower_bound":14.697681110759994,"upper_bound":14.715070391371938,"unit":"ns"},"median_abs_dev":{"estimate":0.045357343111455506,"lower_bound":0.036169187019042655,"upper_bound":0.05339581925330246,"unit":"ns"},"slope":{"estimate":14.709160905431247,"lower_bound":14.701149259140447,"upper_bound":14.717247699993054,"unit":"ns"},"change":{"mean":{"estimate":-0.016640429168531368,"lower_bound":-0.01803156964270149,"upper_bound":-0.01529737229661218,"unit":"%"},"median":{"estimate":-0.01682211205273121,"lower_bound":-0.018188400247741043,"upper_bound":-0.015028072316761731,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Clone - Computed/SmartString/0","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/SmartString/0","iteration_count":[37607,75214,112821,150428,188035,225642,263249,300856,338463,376070,413677,451284,488891,526498,564105,601712,639319,676926,714533,752140,789747,827354,864961,902568,940175,977782,1015389,1052996,1090603,1128210,1165817,1203424,1241031,1278638,1316245,1353852,1391459,1429066,1466673,1504280,1541887,1579494,1617101,1654708,1692315,1729922,1767529,1805136,1842743,1880350,1917957,1955564,1993171,2030778,2068385,2105992,2143599,2181206,2218813,2256420,2294027,2331634,2369241,2406848,2444455,2482062,2519669,2557276,2594883,2632490,2670097,2707704,2745311,2782918,2820525,2858132,2895739,2933346,2970953,3008560,3046167,3083774,3121381,3158988,3196595,3234202,3271809,3309416,3347023,3384630,3422237,3459844,3497451,3535058,3572665,3610272,3647879,3685486,3723093,3760700],"measured_values":[113714.0,226747.0,348680.0,452616.0,566511.0,677725.0,789055.0,905203.0,1010635.0,1122204.0,1235929.0,1498016.0,1777556.0,1918911.0,2033189.0,2172153.0,2326194.0,2482249.0,2588811.0,2735770.0,2862900.0,3020447.0,3150256.0,3265583.0,3444933.0,3556715.0,3672536.0,3815516.0,3939911.0,4094493.0,4228065.0,4370277.0,4501674.0,4621138.0,4783016.0,4889560.0,5026787.0,5218120.0,5322689.0,5463114.0,5577292.0,6631207.0,6888634.0,7062554.0,7228675.0,7368835.0,7496845.0,7725587.0,7875934.0,8042738.0,8191532.0,8340385.0,8517610.0,8660159.0,8808070.0,8992499.0,9149455.0,9270525.0,9475762.0,9587815.0,9767415.0,9947146.0,10064278.0,10285677.0,10416525.0,10561509.0,10694638.0,10945205.0,11073180.0,11199707.0,11352207.0,11591528.0,11702179.0,11849850.0,11959616.0,13790450.0,11159520.0,12556055.0,12668590.0,12786162.0,12955924.0,13129100.0,13295065.0,13395923.0,13623998.0,13741800.0,13963106.0,14075745.0,14252427.0,14438139.0,14539891.0,14745703.0,14977369.0,15147063.0,15276878.0,15401496.0,15499999.0,13812274.0,15987732.0,16101782.0],"unit":"ns","throughput":[],"typical":{"estimate":4.205244210196414,"lower_bound":4.160307408831277,"upper_bound":4.243818103328543,"unit":"ns"},"mean":{"estimate":3.928090242375268,"lower_bound":3.8405864561145533,"upper_bound":4.013719784169734,"unit":"ns"},"median":{"estimate":4.248775415096196,"lower_bound":3.6669429154737743,"upper_bound":4.255946896794086,"unit":"ns"},"median_abs_dev":{"estimate":0.04733018133409243,"lower_bound":0.026358381868620228,"upper_bound":0.8579300633888116,"unit":"ns"},"slope":{"estimate":4.205244210196414,"lower_bound":4.160307408831277,"upper_bound":4.243818103328543,"unit":"ns"},"change":{"mean":{"estimate":0.08067484816088988,"lower_bound":0.039247512110685986,"upper_bound":0.12359812209392479,"unit":"%"},"median":{"estimate":0.16281124584407514,"lower_bound":0.008480868961250776,"upper_bound":0.22021436164646313,"unit":"%"},"change":"Regressed"}} {"reason":"benchmark-complete","id":"Clone - Computed/SmolStr/0","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/SmolStr/0","iteration_count":[25656,51312,76968,102624,128280,153936,179592,205248,230904,256560,282216,307872,333528,359184,384840,410496,436152,461808,487464,513120,538776,564432,590088,615744,641400,667056,692712,718368,744024,769680,795336,820992,846648,872304,897960,923616,949272,974928,1000584,1026240,1051896,1077552,1103208,1128864,1154520,1180176,1205832,1231488,1257144,1282800,1308456,1334112,1359768,1385424,1411080,1436736,1462392,1488048,1513704,1539360,1565016,1590672,1616328,1641984,1667640,1693296,1718952,1744608,1770264,1795920,1821576,1847232,1872888,1898544,1924200,1949856,1975512,2001168,2026824,2052480,2078136,2103792,2129448,2155104,2180760,2206416,2232072,2257728,2283384,2309040,2334696,2360352,2386008,2411664,2437320,2462976,2488632,2514288,2539944,2565600],"measured_values":[314746.0,628410.0,947704.0,1248914.0,1556195.0,1871406.0,2177673.0,2489565.0,2802207.0,3124198.0,3428674.0,3709634.0,4038377.0,4331431.0,4642573.0,4959592.0,5304193.0,5579475.0,5916403.0,6247190.0,6541917.0,6794305.0,7101667.0,7421092.0,7712443.0,8091201.0,8360722.0,8692901.0,9041461.0,9269111.0,9634852.0,9920364.0,10194233.0,10577248.0,10875736.0,11233892.0,11616397.0,11806696.0,12121073.0,12313247.0,12704117.0,13088143.0,13300214.0,13627615.0,13981345.0,14229075.0,14499166.0,14871312.0,15399191.0,15434275.0,15806309.0,16186590.0,16412297.0,16743763.0,17102485.0,17394148.0,17661024.0,17966489.0,18273451.0,18612434.0,18924713.0,19279307.0,19660448.0,19730150.0,20105451.0,20448581.0,20699645.0,21100848.0,21299051.0,21738572.0,21928632.0,22274347.0,22486329.0,22867049.0,23266197.0,23495588.0,23817219.0,24067716.0,24529569.0,24889299.0,25196249.0,25350621.0,25783904.0,25931015.0,26277087.0,26647376.0,26887313.0,27267964.0,27578372.0,27927422.0,28211511.0,28494237.0,28793213.0,29206553.0,29348896.0,30287099.0,29911367.0,30332667.0,30518620.0,30926671.0],"unit":"ns","throughput":[],"typical":{"estimate":12.078850503039638,"lower_bound":12.065895003102398,"upper_bound":12.095443217827462,"unit":"ns"},"mean":{"estimate":12.095748456303724,"lower_bound":12.084227418892624,"upper_bound":12.10791915233861,"unit":"ns"},"median":{"estimate":12.081878183141045,"lower_bound":12.073863880735031,"upper_bound":12.100902323043343,"unit":"ns"},"median_abs_dev":{"estimate":0.0481650439687225,"lower_bound":0.04077425249240631,"upper_bound":0.06240436546251923,"unit":"ns"},"slope":{"estimate":12.078850503039638,"lower_bound":12.065895003102398,"upper_bound":12.095443217827462,"unit":"ns"},"change":{"mean":{"estimate":-0.01033211944047352,"lower_bound":-0.011364633439459895,"upper_bound":-0.009214434815808623,"unit":"%"},"median":{"estimate":-0.011248329404660584,"lower_bound":-0.012351646881107348,"upper_bound":-0.009736257303264328,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/String/10","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/String/10","iteration_count":[15961,31922,47883,63844,79805,95766,111727,127688,143649,159610,175571,191532,207493,223454,239415,255376,271337,287298,303259,319220,335181,351142,367103,383064,399025,414986,430947,446908,462869,478830,494791,510752,526713,542674,558635,574596,590557,606518,622479,638440,654401,670362,686323,702284,718245,734206,750167,766128,782089,798050,814011,829972,845933,861894,877855,893816,909777,925738,941699,957660,973621,989582,1005543,1021504,1037465,1053426,1069387,1085348,1101309,1117270,1133231,1149192,1165153,1181114,1197075,1213036,1228997,1244958,1260919,1276880,1292841,1308802,1324763,1340724,1356685,1372646,1388607,1404568,1420529,1436490,1452451,1468412,1484373,1500334,1516295,1532256,1548217,1564178,1580139,1596100],"measured_values":[189670.0,3053462.0,561494.0,752522.0,939962.0,1134991.0,1314459.0,1515921.0,1699237.0,1886721.0,2067434.0,2263195.0,2447477.0,2629198.0,2811304.0,3007205.0,3212181.0,3388386.0,3579367.0,3753988.0,3945040.0,4149787.0,4343935.0,4530808.0,4693357.0,4876974.0,5068248.0,5264741.0,5441385.0,5633476.0,5829350.0,6013709.0,6201334.0,6383917.0,6584820.0,6783707.0,6948507.0,7149608.0,7324999.0,7523398.0,7727882.0,7948290.0,8164299.0,8353316.0,8516047.0,8756941.0,8914770.0,9053995.0,9230768.0,9400820.0,9641076.0,9808836.0,9974487.0,10205385.0,10323850.0,10538775.0,10732581.0,10927040.0,11118155.0,11293172.0,11506385.0,11685437.0,11872272.0,12125761.0,12280725.0,12453864.0,12643994.0,12827423.0,13037108.0,13233990.0,13323047.0,13568563.0,13790552.0,14408104.0,14191523.0,14623480.0,14981409.0,15755021.0,15877956.0,16173985.0,16366383.0,16528140.0,16687249.0,16968910.0,17057951.0,17260684.0,17503423.0,17671434.0,17827527.0,18055519.0,18282046.0,18398969.0,18744624.0,18993716.0,19112089.0,19260872.0,19503452.0,19673822.0,19931931.0,20138404.0],"unit":"ns","throughput":[],"typical":{"estimate":12.25989824761918,"lower_bound":12.156425289100467,"upper_bound":12.34721140374283,"unit":"ns"},"mean":{"estimate":12.839002969281516,"lower_bound":11.952895252006448,"upper_bound":14.555934741826713,"unit":"ns"},"median":{"estimate":11.821534023272637,"lower_bound":11.807046168090276,"upper_bound":11.841129296778545,"unit":"ns"},"median_abs_dev":{"estimate":0.07179400520105801,"lower_bound":0.051449990524042546,"upper_bound":0.10500868868537547,"unit":"ns"},"slope":{"estimate":12.25989824761918,"lower_bound":12.156425289100467,"upper_bound":12.34721140374283,"unit":"ns"},"change":{"mean":{"estimate":0.046420525938856594,"lower_bound":-0.026632800117894432,"upper_bound":0.1888623019655032,"unit":"%"},"median":{"estimate":-0.04453470812740634,"lower_bound":-0.045728050251007124,"upper_bound":-0.04281017713983104,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/Rc/10","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/Rc_str_/10","iteration_count":[16890,33780,50670,67560,84450,101340,118230,135120,152010,168900,185790,202680,219570,236460,253350,270240,287130,304020,320910,337800,354690,371580,388470,405360,422250,439140,456030,472920,489810,506700,523590,540480,557370,574260,591150,608040,624930,641820,658710,675600,692490,709380,726270,743160,760050,776940,793830,810720,827610,844500,861390,878280,895170,912060,928950,945840,962730,979620,996510,1013400,1030290,1047180,1064070,1080960,1097850,1114740,1131630,1148520,1165410,1182300,1199190,1216080,1232970,1249860,1266750,1283640,1300530,1317420,1334310,1351200,1368090,1384980,1401870,1418760,1435650,1452540,1469430,1486320,1503210,1520100,1536990,1553880,1570770,1587660,1604550,1621440,1638330,1655220,1672110,1689000],"measured_values":[12676.0,24798.0,38382.0,50385.0,64776.0,75081.0,88729.0,103518.0,110973.0,129623.0,138843.0,162818.0,155964.0,172868.0,187132.0,190281.0,219945.0,214155.0,239304.0,237754.0,246718.0,276555.0,280640.0,282584.0,295291.0,309126.0,334034.0,337971.0,341946.0,356554.0,363887.0,380051.0,391533.0,399568.0,452706.0,426396.0,446255.0,450142.0,486902.0,468609.0,511096.0,496179.0,514095.0,519665.0,531014.0,560672.0,557927.0,567443.0,576424.0,590147.0,608942.0,620475.0,654390.0,655231.0,648998.0,678295.0,678235.0,688342.0,700798.0,725666.0,829921.0,740272.0,742397.0,745080.0,781913.0,800437.0,802130.0,803881.0,812799.0,867141.0,846480.0,903671.0,874095.0,885636.0,911796.0,912880.0,935964.0,921084.0,986668.0,961130.0,1076026.0,987007.0,1023638.0,991637.0,1030273.0,1120863.0,1050669.0,1048775.0,1088754.0,1108930.0,1091320.0,1120541.0,1299291.0,1316493.0,1181327.0,1166720.0,1205113.0,1248985.0,1274432.0,1236431.0],"unit":"ns","throughput":[],"typical":{"estimate":0.7274490511059006,"lower_bound":0.7187699412503242,"upper_bound":0.7369243115114982,"unit":"ns"},"mean":{"estimate":0.7241208729888993,"lower_bound":0.7186949560958815,"upper_bound":0.729982937439513,"unit":"ns"},"median":{"estimate":0.7148326829353656,"lower_bound":0.708761342914242,"upper_bound":0.7211245398615079,"unit":"ns"},"median_abs_dev":{"estimate":0.0230351552528872,"lower_bound":0.014654032584475183,"upper_bound":0.028614898551898173,"unit":"ns"},"slope":{"estimate":0.7274490511059006,"lower_bound":0.7187699412503242,"upper_bound":0.7369243115114982,"unit":"ns"},"change":{"mean":{"estimate":-0.004277089286933378,"lower_bound":-0.014397053634719856,"upper_bound":0.0060562346612476415,"unit":"%"},"median":{"estimate":-0.008692544793893031,"lower_bound":-0.018227236162397523,"upper_bound":0.00284415465057708,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/Arc/10","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/Arc_str_/10","iteration_count":[16087,32174,48261,64348,80435,96522,112609,128696,144783,160870,176957,193044,209131,225218,241305,257392,273479,289566,305653,321740,337827,353914,370001,386088,402175,418262,434349,450436,466523,482610,498697,514784,530871,546958,563045,579132,595219,611306,627393,643480,659567,675654,691741,707828,723915,740002,756089,772176,788263,804350,820437,836524,852611,868698,884785,900872,916959,933046,949133,965220,981307,997394,1013481,1029568,1045655,1061742,1077829,1093916,1110003,1126090,1142177,1158264,1174351,1190438,1206525,1222612,1238699,1254786,1270873,1286960,1303047,1319134,1335221,1351308,1367395,1383482,1399569,1415656,1431743,1447830,1463917,1480004,1496091,1512178,1528265,1544352,1560439,1576526,1592613,1608700],"measured_values":[73947.0,152459.0,232609.0,302091.0,377805.0,442396.0,532037.0,601287.0,676611.0,745953.0,835262.0,920754.0,992111.0,1068496.0,1147093.0,1185366.0,1267649.0,1347190.0,1440247.0,1517602.0,1615610.0,1638251.0,1736228.0,1802522.0,1907413.0,1902373.0,1986974.0,2102792.0,2187715.0,2270669.0,2285880.0,2443820.0,2566750.0,2593822.0,2642273.0,2718186.0,2804991.0,2855067.0,2933325.0,2987505.0,3040178.0,3208815.0,3283206.0,3344551.0,3391552.0,3386794.0,3525837.0,3560220.0,3742377.0,3818930.0,3742757.0,3980857.0,3969417.0,4054358.0,4079023.0,4151611.0,4231952.0,4338613.0,4437082.0,4536258.0,4626801.0,4772408.0,4714678.0,4853209.0,4877675.0,4935486.0,5017950.0,5080359.0,5165412.0,5236167.0,5336314.0,5442998.0,5657241.0,5709611.0,5804132.0,5873604.0,5955876.0,6010070.0,6112806.0,6200242.0,6173029.0,6051689.0,6367085.0,6496811.0,6257307.0,6784108.0,6722159.0,6499317.0,6602301.0,6635935.0,6822471.0,6921767.0,6936511.0,7099794.0,7253646.0,7343777.0,7424028.0,7482760.0,7566018.0,7672859.0],"unit":"ns","throughput":[],"typical":{"estimate":4.709928670604438,"lower_bound":4.688605331040812,"upper_bound":4.73057956428547,"unit":"ns"},"mean":{"estimate":4.697220244948965,"lower_bound":4.682999304030017,"upper_bound":4.711683077387802,"unit":"ns"},"median":{"estimate":4.694098236671433,"lower_bound":4.672149872567912,"upper_bound":4.715897828100687,"unit":"ns"},"median_abs_dev":{"estimate":0.07745912692437637,"lower_bound":0.061919563477915086,"upper_bound":0.09791352183288432,"unit":"ns"},"slope":{"estimate":4.709928670604438,"lower_bound":4.688605331040812,"upper_bound":4.73057956428547,"unit":"ns"},"change":{"mean":{"estimate":-0.008814444644193342,"lower_bound":-0.013607323563285466,"upper_bound":-0.00366802301362898,"unit":"%"},"median":{"estimate":-0.010822548789266806,"lower_bound":-0.017802068277377403,"upper_bound":-0.001166246597396281,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/FlexStr/10","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/FlexStr/10","iteration_count":[35225,70450,105675,140900,176125,211350,246575,281800,317025,352250,387475,422700,457925,493150,528375,563600,598825,634050,669275,704500,739725,774950,810175,845400,880625,915850,951075,986300,1021525,1056750,1091975,1127200,1162425,1197650,1232875,1268100,1303325,1338550,1373775,1409000,1444225,1479450,1514675,1549900,1585125,1620350,1655575,1690800,1726025,1761250,1796475,1831700,1866925,1902150,1937375,1972600,2007825,2043050,2078275,2113500,2148725,2183950,2219175,2254400,2289625,2324850,2360075,2395300,2430525,2465750,2500975,2536200,2571425,2606650,2641875,2677100,2712325,2747550,2782775,2818000,2853225,2888450,2923675,2958900,2994125,3029350,3064575,3099800,3135025,3170250,3205475,3240700,3275925,3311150,3346375,3381600,3416825,3452050,3487275,3522500],"measured_values":[27813.0,60393.0,84742.0,121050.0,137992.0,149411.0,173598.0,196703.0,266076.0,284027.0,298755.0,291373.0,315709.0,342097.0,365161.0,388195.0,415325.0,451125.0,468857.0,504314.0,522590.0,637164.0,575028.0,592313.0,615174.0,646152.0,667888.0,710424.0,742655.0,754960.0,763277.0,986968.0,878644.0,919711.0,919071.0,964078.0,991509.0,1008678.0,1258182.0,1134916.0,1147634.0,1190866.0,1208458.0,1223817.0,3433912.0,6364872.0,5108034.0,1407255.0,1506093.0,1440138.0,1414939.0,1642559.0,1510518.0,1655914.0,1594258.0,2031605.0,1729543.0,2315896.0,2146744.0,2042608.0,2203322.0,2193183.0,1939630.0,2066383.0,2186803.0,2110037.0,2552996.0,2452676.0,2321274.0,2499534.0,2886174.0,3891047.0,2859233.0,2657363.0,4047094.0,3898743.0,4209910.0,2936299.0,4312268.0,4010033.0,4849603.0,3492101.0,3209177.0,2848971.0,2737534.0,3650803.0,2970826.0,2919245.0,2971859.0,3433412.0,3415057.0,3483165.0,3905996.0,3604704.0,3429437.0,3791888.0,3787001.0,3464661.0,3761993.0,4500522.0],"unit":"ns","throughput":[],"typical":{"estimate":1.112725586774963,"lower_bound":1.048684610288488,"upper_bound":1.183970426396649,"unit":"ns"},"mean":{"estimate":0.9926336938993959,"lower_bound":0.9149863419929583,"upper_bound":1.0886622348606318,"unit":"ns"},"median":{"estimate":0.8733054593969123,"lower_bound":0.8156471202646063,"upper_bound":0.9550504520628259,"unit":"ns"},"median_abs_dev":{"estimate":0.226183243817462,"lower_bound":0.1596107535372571,"upper_bound":0.26570579525002247,"unit":"ns"},"slope":{"estimate":1.112725586774963,"lower_bound":1.048684610288488,"upper_bound":1.183970426396649,"unit":"ns"},"change":{"mean":{"estimate":0.1690667182022021,"lower_bound":0.07179078576350094,"upper_bound":0.285705762963398,"unit":"%"},"median":{"estimate":0.090720887699687,"lower_bound":0.01952054071246656,"upper_bound":0.20498445221641814,"unit":"%"},"change":"Regressed"}} {"reason":"benchmark-complete","id":"Clone - Computed/AFlexStr/10","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/AFlexStr/10","iteration_count":[33411,66822,100233,133644,167055,200466,233877,267288,300699,334110,367521,400932,434343,467754,501165,534576,567987,601398,634809,668220,701631,735042,768453,801864,835275,868686,902097,935508,968919,1002330,1035741,1069152,1102563,1135974,1169385,1202796,1236207,1269618,1303029,1336440,1369851,1403262,1436673,1470084,1503495,1536906,1570317,1603728,1637139,1670550,1703961,1737372,1770783,1804194,1837605,1871016,1904427,1937838,1971249,2004660,2038071,2071482,2104893,2138304,2171715,2205126,2238537,2271948,2305359,2338770,2372181,2405592,2439003,2472414,2505825,2539236,2572647,2606058,2639469,2672880,2706291,2739702,2773113,2806524,2839935,2873346,2906757,2940168,2973579,3006990,3040401,3073812,3107223,3140634,3174045,3207456,3240867,3274278,3307689,3341100],"measured_values":[76374.0,161568.0,228472.0,307833.0,403233.0,461132.0,529519.0,613963.0,714804.0,790967.0,845412.0,935481.0,1001666.0,1074473.0,1146962.0,1209108.0,1296786.0,1374543.0,1436351.0,1513207.0,1613685.0,1676495.0,1769991.0,1850594.0,1883697.0,1993475.0,2034421.0,2146562.0,2205525.0,2282603.0,2355259.0,2431233.0,2520473.0,2664726.0,2671608.0,2715573.0,2810249.0,2891223.0,2950857.0,3064883.0,3187004.0,3206140.0,3281421.0,3356054.0,3421428.0,3519364.0,3615195.0,3636096.0,3760300.0,3836065.0,3899023.0,3956193.0,4027808.0,4125834.0,4176881.0,4246520.0,4350569.0,4464614.0,4531318.0,4557559.0,4649015.0,4731117.0,4781563.0,4922091.0,4951365.0,5030756.0,5107932.0,5181633.0,5330924.0,5332599.0,5505194.0,5629370.0,5573825.0,5643656.0,5765357.0,5932030.0,5926491.0,5941670.0,6061226.0,6103878.0,6321690.0,6283569.0,6406259.0,6548139.0,6605017.0,6654712.0,6698124.0,6825163.0,6975508.0,6995668.0,7016017.0,7287150.0,7445337.0,7332436.0,7483822.0,7707214.0,7883552.0,7859491.0,7773570.0,8027242.0],"unit":"ns","throughput":[],"typical":{"estimate":2.3206995943872233,"lower_bound":2.3081145350416996,"upper_bound":2.333136595290261,"unit":"ns"},"mean":{"estimate":2.304537440389993,"lower_bound":2.2971783569671755,"upper_bound":2.3124267403649443,"unit":"ns"},"median":{"estimate":2.294032187233711,"lower_bound":2.285260200874819,"upper_bound":2.3003003003003,"unit":"ns"},"median_abs_dev":{"estimate":0.02277548948733909,"lower_bound":0.017067952766332207,"upper_bound":0.033135330849252326,"unit":"ns"},"slope":{"estimate":2.3206995943872233,"lower_bound":2.3081145350416996,"upper_bound":2.333136595290261,"unit":"ns"},"change":{"mean":{"estimate":-0.00184480947204535,"lower_bound":-0.009355292246438425,"upper_bound":0.0043343094934551,"unit":"%"},"median":{"estimate":0.001339231101097127,"lower_bound":-0.0032079981979318273,"upper_bound":0.00472169502262898,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/CompactStr/10","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/CompactStr/10","iteration_count":[19007,38014,57021,76028,95035,114042,133049,152056,171063,190070,209077,228084,247091,266098,285105,304112,323119,342126,361133,380140,399147,418154,437161,456168,475175,494182,513189,532196,551203,570210,589217,608224,627231,646238,665245,684252,703259,722266,741273,760280,779287,798294,817301,836308,855315,874322,893329,912336,931343,950350,969357,988364,1007371,1026378,1045385,1064392,1083399,1102406,1121413,1140420,1159427,1178434,1197441,1216448,1235455,1254462,1273469,1292476,1311483,1330490,1349497,1368504,1387511,1406518,1425525,1444532,1463539,1482546,1501553,1520560,1539567,1558574,1577581,1596588,1615595,1634602,1653609,1672616,1691623,1710630,1729637,1748644,1767651,1786658,1805665,1824672,1843679,1862686,1881693,1900700],"measured_values":[67015.0,130819.0,194438.0,259312.0,327309.0,393636.0,460160.0,516800.0,588305.0,655432.0,713301.0,780971.0,853655.0,908570.0,974525.0,1079765.0,1106124.0,1174976.0,1237680.0,1303951.0,1371528.0,1459743.0,1502015.0,1550117.0,1623916.0,1680049.0,1776465.0,1826650.0,1904074.0,1971603.0,2023130.0,2090406.0,2144069.0,2218490.0,2281793.0,2341754.0,2410175.0,2473175.0,2531383.0,2591819.0,2681458.0,2718918.0,2781908.0,2856118.0,2916442.0,2980582.0,3074673.0,3118528.0,3190470.0,3253872.0,3316300.0,3363287.0,3524502.0,3521660.0,3618030.0,3636376.0,3680249.0,3769948.0,3847837.0,3903914.0,3964849.0,4032715.0,4090417.0,4160348.0,4231984.0,4284562.0,4349242.0,4408970.0,4482941.0,4550675.0,4643713.0,4683388.0,4751807.0,4797674.0,4869310.0,4966926.0,5035335.0,5268957.0,5159790.0,5247646.0,5275489.0,5314875.0,5391820.0,5476881.0,5527455.0,5606819.0,5666240.0,5720253.0,5824370.0,5860086.0,5978992.0,6002856.0,6079311.0,6152892.0,6275524.0,6247259.0,6328154.0,6355333.0,6423753.0,6521669.0],"unit":"ns","throughput":[],"typical":{"estimate":3.4308604057884486,"lower_bound":3.4254543415924132,"upper_bound":3.4373470271404405,"unit":"ns"},"mean":{"estimate":3.4317875735816794,"lower_bound":3.426866673109556,"upper_bound":3.437343346883455,"unit":"ns"},"median":{"estimate":3.4255558164599194,"lower_bound":3.4222263519967084,"upper_bound":3.4306696460758124,"unit":"ns"},"median_abs_dev":{"estimate":0.015564858842557915,"lower_bound":0.01186095154912385,"upper_bound":0.02009999159907664,"unit":"ns"},"slope":{"estimate":3.4308604057884486,"lower_bound":3.4254543415924132,"upper_bound":3.4373470271404405,"unit":"ns"},"change":{"mean":{"estimate":-0.002710237208939592,"lower_bound":-0.00458450877382,"upper_bound":-0.00043385800172371846,"unit":"%"},"median":{"estimate":-0.00353173746506108,"lower_bound":-0.005373724188038387,"upper_bound":-0.0017173151728928295,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/KString/10","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/KString/10","iteration_count":[15833,31666,47499,63332,79165,94998,110831,126664,142497,158330,174163,189996,205829,221662,237495,253328,269161,284994,300827,316660,332493,348326,364159,379992,395825,411658,427491,443324,459157,474990,490823,506656,522489,538322,554155,569988,585821,601654,617487,633320,649153,664986,680819,696652,712485,728318,744151,759984,775817,791650,807483,823316,839149,854982,870815,886648,902481,918314,934147,949980,965813,981646,997479,1013312,1029145,1044978,1060811,1076644,1092477,1108310,1124143,1139976,1155809,1171642,1187475,1203308,1219141,1234974,1250807,1266640,1282473,1298306,1314139,1329972,1345805,1361638,1377471,1393304,1409137,1424970,1440803,1456636,1472469,1488302,1504135,1519968,1535801,1551634,1567467,1583300],"measured_values":[238081.0,472264.0,706350.0,943396.0,1179745.0,1406965.0,1640329.0,1877907.0,2108804.0,2346656.0,2567882.0,2805632.0,3043823.0,3269313.0,3516148.0,3763906.0,3971252.0,4211907.0,4448294.0,4642490.0,4892855.0,5160982.0,5384203.0,5646712.0,5880123.0,6139276.0,6361206.0,6571512.0,6807430.0,7033539.0,7267533.0,7492819.0,7734444.0,7988658.0,8213722.0,8494716.0,8664325.0,8895645.0,9134387.0,9382366.0,9630297.0,9868486.0,10053688.0,10278833.0,10529628.0,10835646.0,11006551.0,11249219.0,11484837.0,11697250.0,11958473.0,12172538.0,12415888.0,12703634.0,12908876.0,13099636.0,13324389.0,13534617.0,13848572.0,14073107.0,14275654.0,14489546.0,14784504.0,14983442.0,15213987.0,15435909.0,15700429.0,15986402.0,16134502.0,16382953.0,16557664.0,16845006.0,17114826.0,17307933.0,17595169.0,17862803.0,18089852.0,18261358.0,18520669.0,18727479.0,18948591.0,19189495.0,19454138.0,19655066.0,19934608.0,20169562.0,20381165.0,20615204.0,20861171.0,21148466.0,21440970.0,21529207.0,21859293.0,21988717.0,22260332.0,22502619.0,22723246.0,22969194.0,23234705.0,23462445.0],"unit":"ns","throughput":[],"typical":{"estimate":14.802796661336384,"lower_bound":14.795534309206895,"upper_bound":14.8102754267715,"unit":"ns"},"mean":{"estimate":14.808084912987276,"lower_bound":14.799016942450496,"upper_bound":14.8177932618995,"unit":"ns"},"median":{"estimate":14.803152324933235,"lower_bound":14.794324796876786,"upper_bound":14.808612833258849,"unit":"ns"},"median_abs_dev":{"estimate":0.03251384760129138,"lower_bound":0.025346143300167583,"upper_bound":0.04202719036251436,"unit":"ns"},"slope":{"estimate":14.802796661336384,"lower_bound":14.795534309206895,"upper_bound":14.8102754267715,"unit":"ns"},"change":{"mean":{"estimate":-0.0009551905876178379,"lower_bound":-0.0023050149971639592,"upper_bound":0.00028467543089094583,"unit":"%"},"median":{"estimate":-0.0007040062605473407,"lower_bound":-0.0014629732805782059,"upper_bound":0.0001412817451597038,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/SmartString/10","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/SmartString/10","iteration_count":[19148,38296,57444,76592,95740,114888,134036,153184,172332,191480,210628,229776,248924,268072,287220,306368,325516,344664,363812,382960,402108,421256,440404,459552,478700,497848,516996,536144,555292,574440,593588,612736,631884,651032,670180,689328,708476,727624,746772,765920,785068,804216,823364,842512,861660,880808,899956,919104,938252,957400,976548,995696,1014844,1033992,1053140,1072288,1091436,1110584,1129732,1148880,1168028,1187176,1206324,1225472,1244620,1263768,1282916,1302064,1321212,1340360,1359508,1378656,1397804,1416952,1436100,1455248,1474396,1493544,1512692,1531840,1550988,1570136,1589284,1608432,1627580,1646728,1665876,1685024,1704172,1723320,1742468,1761616,1780764,1799912,1819060,1838208,1857356,1876504,1895652,1914800],"measured_values":[71182.0,139376.0,209059.0,286810.0,350313.0,419023.0,487893.0,557816.0,634602.0,707322.0,762573.0,841894.0,903471.0,978493.0,1053935.0,1123247.0,1177302.0,1251149.0,1325923.0,1400134.0,1473118.0,1525678.0,1604659.0,1663229.0,1738320.0,1807561.0,1905639.0,1952637.0,2023171.0,2093074.0,2157715.0,2222388.0,2327116.0,2777450.0,2857652.0,2941891.0,3043785.0,3101503.0,3178389.0,3271965.0,3343403.0,3427011.0,3539711.0,3584155.0,3662894.0,3767124.0,3822030.0,3938188.0,4014203.0,4110684.0,4174595.0,4268674.0,4348753.0,4409518.0,4497616.0,4571729.0,4700621.0,4760124.0,4836068.0,4942980.0,4988888.0,5089976.0,5139471.0,5229632.0,5316778.0,5404503.0,5461602.0,5570577.0,5655399.0,5746241.0,5393915.0,5027701.0,5078606.0,5142087.0,5205367.0,5309323.0,5398782.0,5438358.0,5509983.0,5585866.0,5627628.0,5698100.0,6310880.0,6890847.0,7031301.0,7025321.0,6987642.0,7207619.0,7294134.0,7400544.0,7461629.0,7521623.0,7593609.0,7707855.0,7798596.0,7848332.0,7994598.0,8042370.0,7940995.0,8143982.0],"unit":"ns","throughput":[],"typical":{"estimate":4.116290849969295,"lower_bound":4.045747412125222,"upper_bound":4.1791761621301795,"unit":"ns"},"mean":{"estimate":3.9924656756690076,"lower_bound":3.931640467683636,"upper_bound":4.052448045481551,"unit":"ns"},"median":{"estimate":4.252075006383028,"lower_bound":3.685984030824223,"upper_bound":4.264006684771256,"unit":"ns"},"median_abs_dev":{"estimate":0.07929086530411894,"lower_bound":0.035124953127195754,"upper_bound":0.4663222671348829,"unit":"ns"},"slope":{"estimate":4.116290849969295,"lower_bound":4.045747412125222,"upper_bound":4.1791761621301795,"unit":"ns"},"change":{"mean":{"estimate":0.12311558016319446,"lower_bound":0.09032166251165621,"upper_bound":0.157793826752894,"unit":"%"},"median":{"estimate":0.23136396504224188,"lower_bound":0.0658277037620762,"upper_bound":0.23579810291613557,"unit":"%"},"change":"Regressed"}} {"reason":"benchmark-complete","id":"Clone - Computed/SmolStr/10","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/SmolStr/10","iteration_count":[15150,30300,45450,60600,75750,90900,106050,121200,136350,151500,166650,181800,196950,212100,227250,242400,257550,272700,287850,303000,318150,333300,348450,363600,378750,393900,409050,424200,439350,454500,469650,484800,499950,515100,530250,545400,560550,575700,590850,606000,621150,636300,651450,666600,681750,696900,712050,727200,742350,757500,772650,787800,802950,818100,833250,848400,863550,878700,893850,909000,924150,939300,954450,969600,984750,999900,1015050,1030200,1045350,1060500,1075650,1090800,1105950,1121100,1136250,1151400,1166550,1181700,1196850,1212000,1227150,1242300,1257450,1272600,1287750,1302900,1318050,1333200,1348350,1363500,1378650,1393800,1408950,1424100,1439250,1454400,1469550,1484700,1499850,1515000],"measured_values":[186521.0,371812.0,553911.0,737038.0,916074.0,1101916.0,1289844.0,1476257.0,1656788.0,1855281.0,2029271.0,2217088.0,2407457.0,2587891.0,2783058.0,2949296.0,3148803.0,3319056.0,3502964.0,3664718.0,3869098.0,4055270.0,4234269.0,4415503.0,4617253.0,4825668.0,4990099.0,5137186.0,5333460.0,5545059.0,5726453.0,5913819.0,6088218.0,6351405.0,6592713.0,6670231.0,6793794.0,6996260.0,7211926.0,7363303.0,7604060.0,7716053.0,7922202.0,8066723.0,8305345.0,8467334.0,8639940.0,8867852.0,8985745.0,9177257.0,9394429.0,9584089.0,9809966.0,9975989.0,10151122.0,10243175.0,10456799.0,10659291.0,10852359.0,10986924.0,11290961.0,11410467.0,11707559.0,11747674.0,11973723.0,12137794.0,12229036.0,12434917.0,12650423.0,12829212.0,13038681.0,13239190.0,13403422.0,13580815.0,13743593.0,13986484.0,14223724.0,14327040.0,14507851.0,14706026.0,14976098.0,15033898.0,15312585.0,15480913.0,15644092.0,15780029.0,16041117.0,16222687.0,16412819.0,16583531.0,16755417.0,16924288.0,17081815.0,17377764.0,17493988.0,17693352.0,17773136.0,18028459.0,18159436.0,18273284.0],"unit":"ns","throughput":[],"typical":{"estimate":12.144327054268897,"lower_bound":12.133718699770712,"upper_bound":12.155075741991514,"unit":"ns"},"mean":{"estimate":12.162382555693258,"lower_bound":12.151516199139424,"upper_bound":12.174026593818644,"unit":"ns"},"median":{"estimate":12.158931131122163,"lower_bound":12.14784094538486,"upper_bound":12.167026702670267,"unit":"ns"},"median_abs_dev":{"estimate":0.05211641932860188,"lower_bound":0.03727055134493826,"upper_bound":0.060428377781346375,"unit":"ns"},"slope":{"estimate":12.144327054268897,"lower_bound":12.133718699770712,"upper_bound":12.155075741991514,"unit":"ns"},"change":{"mean":{"estimate":0.002629853134323845,"lower_bound":0.0013653792680248195,"upper_bound":0.003876634820364099,"unit":"%"},"median":{"estimate":0.003156336598623799,"lower_bound":0.0019143691608842772,"upper_bound":0.0039609407614673575,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/String/20","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/String/20","iteration_count":[15425,30850,46275,61700,77125,92550,107975,123400,138825,154250,169675,185100,200525,215950,231375,246800,262225,277650,293075,308500,323925,339350,354775,370200,385625,401050,416475,431900,447325,462750,478175,493600,509025,524450,539875,555300,570725,586150,601575,617000,632425,647850,663275,678700,694125,709550,724975,740400,755825,771250,786675,802100,817525,832950,848375,863800,879225,894650,910075,925500,940925,956350,971775,987200,1002625,1018050,1033475,1048900,1064325,1079750,1095175,1110600,1126025,1141450,1156875,1172300,1187725,1203150,1218575,1234000,1249425,1264850,1280275,1295700,1311125,1326550,1341975,1357400,1372825,1388250,1403675,1419100,1434525,1449950,1465375,1480800,1496225,1511650,1527075,1542500],"measured_values":[177425.0,354923.0,532078.0,712700.0,886910.0,1064656.0,1249636.0,1419025.0,1592577.0,1769269.0,1947408.0,2121697.0,2321705.0,2479719.0,2658895.0,2838724.0,3012984.0,3180731.0,3367960.0,3547047.0,3725176.0,3900294.0,4074715.0,4263432.0,4441258.0,4595803.0,4783748.0,4969280.0,5126116.0,5331256.0,5485646.0,5678942.0,5852353.0,6029326.0,6214167.0,6373630.0,6556045.0,6793856.0,6887852.0,7116355.0,7258994.0,7442412.0,7628755.0,7806440.0,7936850.0,8158587.0,8294878.0,8546544.0,8683242.0,8832114.0,9057361.0,9222254.0,9385692.0,9588226.0,9810035.0,9959788.0,10090437.0,10280316.0,10465566.0,10698671.0,10813486.0,10997954.0,11183456.0,11341354.0,11531384.0,11702909.0,11895375.0,12095452.0,12240526.0,12435417.0,12591032.0,12759550.0,12970631.0,13103673.0,13280337.0,13573443.0,13718868.0,13876537.0,14003977.0,14138831.0,14394448.0,14546775.0,14773255.0,14940021.0,15047241.0,15257550.0,15404802.0,15609755.0,15805347.0,16048239.0,16191910.0,16338329.0,16562383.0,16615211.0,16936079.0,17099319.0,17259543.0,17421529.0,17534502.0,17729028.0],"unit":"ns","throughput":[],"typical":{"estimate":11.509774037653893,"lower_bound":11.501880048875625,"upper_bound":11.517510049130282,"unit":"ns"},"mean":{"estimate":11.503566137042196,"lower_bound":11.49768162732449,"upper_bound":11.509668521048111,"unit":"ns"},"median":{"estimate":11.499710020153184,"lower_bound":11.496119348575121,"upper_bound":11.502239575659349,"unit":"ns"},"median_abs_dev":{"estimate":0.025280063084414245,"lower_bound":0.016995971699294777,"upper_bound":0.0322171021555245,"unit":"ns"},"slope":{"estimate":11.509774037653893,"lower_bound":11.501880048875625,"upper_bound":11.517510049130282,"unit":"ns"},"change":{"mean":{"estimate":-0.047194435834833626,"lower_bound":-0.04970036476170331,"upper_bound":-0.04442195796924946,"unit":"%"},"median":{"estimate":-0.051093112618301295,"lower_bound":-0.05203211768131644,"upper_bound":-0.050258915247660574,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Clone - Computed/Rc/20","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/Rc_str_/20","iteration_count":[15699,31398,47097,62796,78495,94194,109893,125592,141291,156990,172689,188388,204087,219786,235485,251184,266883,282582,298281,313980,329679,345378,361077,376776,392475,408174,423873,439572,455271,470970,486669,502368,518067,533766,549465,565164,580863,596562,612261,627960,643659,659358,675057,690756,706455,722154,737853,753552,769251,784950,800649,816348,832047,847746,863445,879144,894843,910542,926241,941940,957639,973338,989037,1004736,1020435,1036134,1051833,1067532,1083231,1098930,1114629,1130328,1146027,1161726,1177425,1193124,1208823,1224522,1240221,1255920,1271619,1287318,1303017,1318716,1334415,1350114,1365813,1381512,1397211,1412910,1428609,1444308,1460007,1475706,1491405,1507104,1522803,1538502,1554201,1569900],"measured_values":[11475.0,22062.0,32971.0,44835.0,57350.0,67897.0,79470.0,91811.0,101302.0,132911.0,122300.0,135786.0,147026.0,155876.0,165755.0,185040.0,188827.0,199588.0,220958.0,219485.0,230468.0,242309.0,252197.0,276555.0,275462.0,285922.0,296983.0,354261.0,389106.0,332697.0,342722.0,354128.0,382704.0,379618.0,384588.0,396600.0,407894.0,417811.0,442697.0,440413.0,452075.0,467415.0,473949.0,484158.0,498366.0,508635.0,540243.0,531014.0,550212.0,562626.0,581482.0,573105.0,593714.0,597683.0,629972.0,686220.0,656837.0,640864.0,671432.0,672172.0,680338.0,687792.0,700746.0,712049.0,713459.0,741364.0,767922.0,980038.0,756634.0,775287.0,810384.0,789425.0,1160286.0,1777294.0,889894.0,850620.0,884617.0,868105.0,868144.0,923870.0,928467.0,1173723.0,918409.0,937724.0,941765.0,943586.0,983262.0,1301967.0,1010894.0,1012721.0,1177417.0,1079525.0,1030080.0,1042508.0,1065407.0,1068622.0,1102657.0,1244083.0,1128445.0,1352211.0],"unit":"ns","throughput":[],"typical":{"estimate":0.755860379258903,"lower_bound":0.7294246846246828,"upper_bound":0.7902197033613683,"unit":"ns"},"mean":{"estimate":0.7389288041598057,"lower_bound":0.7230326516069705,"upper_bound":0.7604716315466725,"unit":"ns"},"median":{"estimate":0.7120709508621657,"lower_bound":0.7080203506334057,"upper_bound":0.718338176602507,"unit":"ns"},"median_abs_dev":{"estimate":0.01609621215059808,"lower_bound":0.010388369277725068,"upper_bound":0.021269585393010937,"unit":"ns"},"slope":{"estimate":0.755860379258903,"lower_bound":0.7294246846246828,"upper_bound":0.7902197033613683,"unit":"ns"},"change":{"mean":{"estimate":0.02440085117466051,"lower_bound":-0.0001981535588147766,"upper_bound":0.056362517411206445,"unit":"%"},"median":{"estimate":0.0033197340173889422,"lower_bound":-0.006540976842320134,"upper_bound":0.012447883232357126,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/Arc/20","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/Arc_str_/20","iteration_count":[15475,30950,46425,61900,77375,92850,108325,123800,139275,154750,170225,185700,201175,216650,232125,247600,263075,278550,294025,309500,324975,340450,355925,371400,386875,402350,417825,433300,448775,464250,479725,495200,510675,526150,541625,557100,572575,588050,603525,619000,634475,649950,665425,680900,696375,711850,727325,742800,758275,773750,789225,804700,820175,835650,851125,866600,882075,897550,913025,928500,943975,959450,974925,990400,1005875,1021350,1036825,1052300,1067775,1083250,1098725,1114200,1129675,1145150,1160625,1176100,1191575,1207050,1222525,1238000,1253475,1268950,1284425,1299900,1315375,1330850,1346325,1361800,1377275,1392750,1408225,1423700,1439175,1454650,1470125,1485600,1501075,1516550,1532025,1547500],"measured_values":[74203.0,147850.0,216971.0,293165.0,382565.0,440944.0,519986.0,577474.0,644428.0,735633.0,814071.0,871940.0,916795.0,991648.0,1069695.0,1140979.0,1197798.0,1284943.0,1374302.0,1444465.0,1509116.0,1644866.0,1710959.0,1781842.0,1858207.0,1945954.0,2005651.0,2063420.0,2153631.0,2230965.0,2304173.0,2370529.0,2461299.0,2542014.0,2631954.0,2658855.0,2739486.0,2822373.0,2898798.0,2984188.0,3056680.0,3109207.0,3162700.0,3214449.0,3304727.0,3402361.0,3490719.0,3548250.0,3555340.0,3704392.0,3825293.0,3920503.0,3948418.0,4038879.0,4097731.0,4155351.0,4218077.0,4226505.0,4281047.0,4424938.0,4447962.0,4566205.0,4613868.0,4554865.0,4694790.0,4911089.0,4947309.0,4900640.0,4995932.0,5048469.0,5141295.0,5210095.0,5285762.0,5353967.0,5408770.0,5499033.0,5554215.0,5607248.0,5722066.0,5902028.0,5943847.0,6082048.0,6083631.0,6059013.0,6146981.0,6270374.0,6317311.0,6414487.0,6471855.0,6639483.0,6682964.0,6582343.0,6700016.0,6877633.0,6984495.0,7045820.0,7258618.0,7281591.0,7351922.0,7247092.0],"unit":"ns","throughput":[],"typical":{"estimate":4.728730443019948,"lower_bound":4.713633456177505,"upper_bound":4.744534501168346,"unit":"ns"},"mean":{"estimate":4.737960626061621,"lower_bound":4.723068028205923,"upper_bound":4.752706601197204,"unit":"ns"},"median":{"estimate":4.749973074851912,"lower_bound":4.71999089973195,"upper_bound":4.774226424420707,"unit":"ns"},"median_abs_dev":{"estimate":0.0835120576590373,"lower_bound":0.05602088230106808,"upper_bound":0.09889646028527621,"unit":"ns"},"slope":{"estimate":4.728730443019948,"lower_bound":4.713633456177505,"upper_bound":4.744534501168346,"unit":"ns"},"change":{"mean":{"estimate":0.006957771469473739,"lower_bound":0.002751539040467944,"upper_bound":0.010758934458439251,"unit":"%"},"median":{"estimate":0.009405384809515915,"lower_bound":0.0032254554355370946,"upper_bound":0.014813615756596121,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/FlexStr/20","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/FlexStr/20","iteration_count":[25261,50522,75783,101044,126305,151566,176827,202088,227349,252610,277871,303132,328393,353654,378915,404176,429437,454698,479959,505220,530481,555742,581003,606264,631525,656786,682047,707308,732569,757830,783091,808352,833613,858874,884135,909396,934657,959918,985179,1010440,1035701,1060962,1086223,1111484,1136745,1162006,1187267,1212528,1237789,1263050,1288311,1313572,1338833,1364094,1389355,1414616,1439877,1465138,1490399,1515660,1540921,1566182,1591443,1616704,1641965,1667226,1692487,1717748,1743009,1768270,1793531,1818792,1844053,1869314,1894575,1919836,1945097,1970358,1995619,2020880,2046141,2071402,2096663,2121924,2147185,2172446,2197707,2222968,2248229,2273490,2298751,2324012,2349273,2374534,2399795,2425056,2450317,2475578,2500839,2526100],"measured_values":[23474.0,52228.0,69383.0,90951.0,110680.0,129035.0,131549.0,170139.0,164212.0,179057.0,248911.0,221089.0,237992.0,249121.0,267929.0,278527.0,306429.0,327781.0,332731.0,535814.0,413513.0,583727.0,423250.0,415298.0,434695.0,451876.0,484246.0,506090.0,508303.0,522509.0,553767.0,575453.0,593823.0,599895.0,608300.0,622389.0,668283.0,656783.0,683977.0,708531.0,717678.0,743448.0,771942.0,1074752.0,1000816.0,877132.0,916696.0,906317.0,1002269.0,986468.0,995545.0,1031962.0,1031842.0,1026384.0,1049807.0,1109041.0,1134379.0,1111263.0,1184592.0,1206504.0,1260989.0,1182389.0,1251613.0,2891175.0,2069249.0,1502595.0,1404951.0,1397616.0,1333518.0,1387678.0,1450205.0,1704349.0,1697265.0,1632921.0,1524557.0,1510420.0,1477959.0,1671803.0,1630967.0,1850645.0,1756496.0,1865773.0,1813104.0,2238058.0,1726300.0,1673830.0,2046556.0,1755865.0,2223941.0,2078644.0,1960834.0,2269126.0,1922088.0,2340904.0,2066574.0,1935556.0,2833085.0,2338369.0,2052376.0,2740036.0],"unit":"ns","throughput":[],"typical":{"estimate":0.8724682210145177,"lower_bound":0.8375203667475855,"upper_bound":0.9104737443632339,"unit":"ns"},"mean":{"estimate":0.8231466331380569,"lower_bound":0.7959392958649703,"upper_bound":0.8545264412509394,"unit":"ns"},"median":{"estimate":0.7866042592196285,"lower_bound":0.7678845811175138,"upper_bound":0.8111040537943768,"unit":"ns"},"median_abs_dev":{"estimate":0.11064782749734359,"lower_bound":0.08563449686395513,"upper_bound":0.13799201441533193,"unit":"ns"},"slope":{"estimate":0.8724682210145177,"lower_bound":0.8375203667475855,"upper_bound":0.9104737443632339,"unit":"ns"},"change":{"mean":{"estimate":0.1580459875667215,"lower_bound":0.11139109727164606,"upper_bound":0.21105087148401147,"unit":"%"},"median":{"estimate":0.16182217749729988,"lower_bound":0.1349504553293286,"upper_bound":0.1980086134941117,"unit":"%"},"change":"Regressed"}} {"reason":"benchmark-complete","id":"Clone - Computed/AFlexStr/20","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/AFlexStr/20","iteration_count":[25186,50372,75558,100744,125930,151116,176302,201488,226674,251860,277046,302232,327418,352604,377790,402976,428162,453348,478534,503720,528906,554092,579278,604464,629650,654836,680022,705208,730394,755580,780766,805952,831138,856324,881510,906696,931882,957068,982254,1007440,1032626,1057812,1082998,1108184,1133370,1158556,1183742,1208928,1234114,1259300,1284486,1309672,1334858,1360044,1385230,1410416,1435602,1460788,1485974,1511160,1536346,1561532,1586718,1611904,1637090,1662276,1687462,1712648,1737834,1763020,1788206,1813392,1838578,1863764,1888950,1914136,1939322,1964508,1989694,2014880,2040066,2065252,2090438,2115624,2140810,2165996,2191182,2216368,2241554,2266740,2291926,2317112,2342298,2367484,2392670,2417856,2443042,2468228,2493414,2518600],"measured_values":[59111.0,115287.0,179148.0,239483.0,291153.0,351436.0,402341.0,461493.0,519572.0,573144.0,642937.0,683305.0,740846.0,802409.0,868866.0,908531.0,967863.0,1027145.0,1086368.0,1153434.0,1196075.0,1275635.0,1306043.0,1368200.0,1441072.0,1488087.0,1538593.0,1586725.0,1658078.0,1711249.0,1774180.0,1830655.0,1887705.0,1942950.0,1997752.0,2051646.0,2120244.0,2163228.0,2250670.0,2279828.0,2330784.0,2392621.0,2491227.0,2582109.0,2641803.0,2639787.0,2685274.0,2741310.0,2796985.0,2873911.0,2952149.0,3004799.0,3013505.0,3068862.0,3137701.0,3206061.0,3304247.0,3346767.0,3351015.0,3451526.0,3488453.0,3527030.0,3584508.0,3728349.0,3735652.0,3806349.0,3852576.0,3938819.0,4045068.0,4020353.0,4084145.0,4121486.0,4201454.0,4250418.0,4279403.0,4345556.0,4438553.0,4502617.0,4612714.0,4584439.0,4643961.0,4672305.0,4824595.0,4827471.0,4884799.0,4985920.0,4983857.0,5104405.0,5103264.0,5247966.0,5190176.0,5265170.0,5395779.0,5358050.0,5484596.0,5679595.0,5514011.0,5646251.0,5731706.0,5771628.0],"unit":"ns","throughput":[],"typical":{"estimate":2.2850991803485394,"lower_bound":2.2796486129788356,"upper_bound":2.2908457621561262,"unit":"ns"},"mean":{"estimate":2.2839353712420696,"lower_bound":2.2792617426619812,"upper_bound":2.2889429178581295,"unit":"ns"},"median":{"estimate":2.2775891141281606,"lower_bound":2.2724575313513613,"upper_bound":2.2839342894498733,"unit":"ns"},"median_abs_dev":{"estimate":0.020837006856306073,"lower_bound":0.015535027120370679,"upper_bound":0.026643968030789104,"unit":"ns"},"slope":{"estimate":2.2850991803485394,"lower_bound":2.2796486129788356,"upper_bound":2.2908457621561262,"unit":"ns"},"change":{"mean":{"estimate":0.003346070743927232,"lower_bound":0.0009027310723681637,"upper_bound":0.005959908468286174,"unit":"%"},"median":{"estimate":0.0017019006917611268,"lower_bound":-0.001359232831236734,"upper_bound":0.004858176849282726,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/CompactStr/20","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/CompactStr/20","iteration_count":[18169,36338,54507,72676,90845,109014,127183,145352,163521,181690,199859,218028,236197,254366,272535,290704,308873,327042,345211,363380,381549,399718,417887,436056,454225,472394,490563,508732,526901,545070,563239,581408,599577,617746,635915,654084,672253,690422,708591,726760,744929,763098,781267,799436,817605,835774,853943,872112,890281,908450,926619,944788,962957,981126,999295,1017464,1035633,1053802,1071971,1090140,1108309,1126478,1144647,1162816,1180985,1199154,1217323,1235492,1253661,1271830,1289999,1308168,1326337,1344506,1362675,1380844,1399013,1417182,1435351,1453520,1471689,1489858,1508027,1526196,1544365,1562534,1580703,1598872,1617041,1635210,1653379,1671548,1689717,1707886,1726055,1744224,1762393,1780562,1798731,1816900],"measured_values":[62680.0,124927.0,186613.0,248540.0,311349.0,376944.0,440283.0,501401.0,562677.0,623000.0,698604.0,757003.0,810284.0,879226.0,942694.0,989556.0,1053886.0,1123558.0,1208570.0,1236991.0,1304389.0,1371209.0,1456119.0,1489892.0,1547130.0,1609717.0,1686304.0,1740306.0,1796599.0,1870874.0,1919266.0,1989959.0,2042930.0,2119905.0,2173315.0,2266940.0,2344359.0,2407318.0,2456432.0,2498651.0,2589835.0,2620853.0,2672780.0,2761820.0,2821612.0,2854756.0,2927835.0,3006753.0,3045377.0,3126618.0,3195620.0,3250052.0,3334081.0,3338204.0,3408733.0,3459832.0,3545215.0,3598856.0,3659128.0,3736302.0,3796066.0,3838278.0,3907098.0,3989291.0,4051020.0,4116965.0,4171750.0,4274143.0,4338604.0,4381035.0,4400043.0,4502706.0,4550639.0,4602986.0,4652078.0,4725169.0,4816640.0,4836568.0,4924844.0,4991631.0,5192083.0,5129913.0,5216677.0,5228869.0,5296352.0,5380689.0,5371191.0,5471890.0,5525764.0,5621206.0,5724528.0,5721434.0,5816504.0,5912687.0,5882007.0,6068843.0,6093408.0,6129304.0,6164183.0,6260667.0],"unit":"ns","throughput":[],"typical":{"estimate":3.4364826133708437,"lower_bound":3.430567231126182,"upper_bound":3.4428547875003583,"unit":"ns"},"mean":{"estimate":3.436500879335755,"lower_bound":3.4318438802049624,"upper_bound":3.441363345058179,"unit":"ns"},"median":{"estimate":3.4310451322664877,"lower_bound":3.4271733549764525,"upper_bound":3.4379162309428146,"unit":"ns"},"median_abs_dev":{"estimate":0.02153587506485188,"lower_bound":0.016683977122165822,"upper_bound":0.02891609818404453,"unit":"ns"},"slope":{"estimate":3.4364826133708437,"lower_bound":3.430567231126182,"upper_bound":3.4428547875003583,"unit":"ns"},"change":{"mean":{"estimate":-0.09434166930285293,"lower_bound":-0.10325354542257328,"upper_bound":-0.08882869009663653,"unit":"%"},"median":{"estimate":-0.08968288998810847,"lower_bound":-0.09116103980380297,"upper_bound":-0.08733091729698711,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Clone - Computed/KString/20","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/KString/20","iteration_count":[12950,25900,38850,51800,64750,77700,90650,103600,116550,129500,142450,155400,168350,181300,194250,207200,220150,233100,246050,259000,271950,284900,297850,310800,323750,336700,349650,362600,375550,388500,401450,414400,427350,440300,453250,466200,479150,492100,505050,518000,530950,543900,556850,569800,582750,595700,608650,621600,634550,647500,660450,673400,686350,699300,712250,725200,738150,751100,764050,777000,789950,802900,815850,828800,841750,854700,867650,880600,893550,906500,919450,932400,945350,958300,971250,984200,997150,1010100,1023050,1036000,1048950,1061900,1074850,1087800,1100750,1113700,1126650,1139600,1152550,1165500,1178450,1191400,1204350,1217300,1230250,1243200,1256150,1269100,1282050,1295000],"measured_values":[201211.0,399677.0,607020.0,798884.0,1010884.0,1210404.0,1401264.0,1603916.0,1810348.0,2003774.0,2180047.0,2407429.0,2606906.0,2815371.0,2976638.0,3182026.0,3402752.0,3574819.0,3766570.0,4017429.0,4188562.0,4373039.0,4649765.0,4811073.0,4990871.0,5183755.0,5421606.0,5568046.0,5798470.0,5983652.0,6238905.0,6402645.0,6603243.0,6856402.0,6990977.0,7260696.0,7439136.0,7550737.0,7756537.0,8034674.0,8207020.0,8479077.0,8604523.0,8800695.0,8955106.0,9249483.0,9378910.0,9606389.0,9781762.0,9956876.0,10281547.0,10467279.0,10587608.0,10814978.0,10977265.0,11176696.0,11378694.0,11637025.0,11803480.0,11954506.0,12158603.0,12319668.0,12613653.0,12872955.0,12955982.0,13236283.0,13362965.0,13599952.0,13793168.0,14008919.0,14384064.0,14368330.0,14624443.0,14859757.0,14917047.0,15218426.0,15400732.0,15561247.0,15808656.0,16034412.0,16265910.0,16637763.0,16701865.0,17013778.0,17148330.0,17412249.0,17428771.0,17762997.0,18057590.0,18224229.0,18392618.0,18526722.0,18714566.0,18937658.0,19080729.0,19358997.0,19347455.0,19613098.0,19735802.0,19882789.0],"unit":"ns","throughput":[],"typical":{"estimate":15.49204663786842,"lower_bound":15.4673391821035,"upper_bound":15.516110485493574,"unit":"ns"},"mean":{"estimate":15.472689941075656,"lower_bound":15.45594999962767,"upper_bound":15.489799458924722,"unit":"ns"},"median":{"estimate":15.457598105821102,"lower_bound":15.44817680389109,"upper_bound":15.48233999108999,"unit":"ns"},"median_abs_dev":{"estimate":0.08297324775662589,"lower_bound":0.06954704445519246,"upper_bound":0.1098661887480878,"unit":"ns"},"slope":{"estimate":15.49204663786842,"lower_bound":15.4673391821035,"upper_bound":15.516110485493574,"unit":"ns"},"change":{"mean":{"estimate":-0.07961182965425095,"lower_bound":-0.08072260389623394,"upper_bound":-0.07847919354797979,"unit":"%"},"median":{"estimate":-0.08033290908239243,"lower_bound":-0.0809216940643063,"upper_bound":-0.07877936792374296,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Clone - Computed/SmartString/20","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/SmartString/20","iteration_count":[18288,36576,54864,73152,91440,109728,128016,146304,164592,182880,201168,219456,237744,256032,274320,292608,310896,329184,347472,365760,384048,402336,420624,438912,457200,475488,493776,512064,530352,548640,566928,585216,603504,621792,640080,658368,676656,694944,713232,731520,749808,768096,786384,804672,822960,841248,859536,877824,896112,914400,932688,950976,969264,987552,1005840,1024128,1042416,1060704,1078992,1097280,1115568,1133856,1152144,1170432,1188720,1207008,1225296,1243584,1261872,1280160,1298448,1316736,1335024,1353312,1371600,1389888,1408176,1426464,1444752,1463040,1481328,1499616,1517904,1536192,1554480,1572768,1591056,1609344,1627632,1645920,1664208,1682496,1700784,1719072,1737360,1755648,1773936,1792224,1810512,1828800],"measured_values":[66734.0,133422.0,200881.0,266385.0,332852.0,404267.0,468286.0,534313.0,597841.0,672733.0,734049.0,796119.0,862091.0,933185.0,995124.0,1060711.0,1143175.0,1196126.0,1264333.0,1327063.0,1394119.0,1458201.0,1543022.0,1598978.0,1660743.0,1728643.0,1783149.0,1852952.0,1916670.0,1992994.0,2063186.0,2123730.0,2191328.0,2277360.0,2329869.0,2397361.0,2455560.0,2525570.0,2584825.0,2657019.0,2712446.0,2800793.0,2856848.0,2934986.0,3003861.0,3047171.0,3124145.0,3186535.0,3272617.0,3327923.0,3381843.0,3482023.0,3519132.0,3595709.0,3673064.0,3700046.0,3801128.0,3843116.0,3935562.0,3979406.0,4080555.0,4117285.0,4209421.0,4261589.0,4306577.0,4388491.0,4437170.0,4523124.0,4573639.0,4630257.0,4717591.0,4772838.0,5017650.0,5766581.0,5842233.0,5917663.0,5996264.0,6119206.0,6178578.0,6226020.0,6330497.0,6426288.0,6521230.0,6577262.0,6622481.0,6729692.0,6767194.0,6910604.0,6978996.0,7033667.0,7146021.0,7198289.0,7221404.0,7303168.0,7419539.0,7456358.0,7557681.0,7689980.0,7741369.0,7794007.0],"unit":"ns","throughput":[],"typical":{"estimate":4.023957575787547,"lower_bound":3.9423115450011963,"upper_bound":4.090755838570946,"unit":"ns"},"mean":{"estimate":3.8100998404985957,"lower_bound":3.756720566590967,"upper_bound":3.866750129805081,"unit":"ns"},"median":{"estimate":3.6439237413031704,"lower_bound":3.6382030978931237,"upper_bound":3.6517378509504494,"unit":"ns"},"median_abs_dev":{"estimate":0.026237692914462225,"lower_bound":0.01766150584760768,"upper_bound":0.038856948255235016,"unit":"ns"},"slope":{"estimate":4.023957575787547,"lower_bound":3.9423115450011963,"upper_bound":4.090755838570946,"unit":"ns"},"change":{"mean":{"estimate":0.2638976532948325,"lower_bound":0.21337795614357036,"upper_bound":0.31627608546669833,"unit":"%"},"median":{"estimate":0.4012711437263661,"lower_bound":0.3881767907895006,"upper_bound":0.40854802034089555,"unit":"%"},"change":"Regressed"}} {"reason":"benchmark-complete","id":"Clone - Computed/SmolStr/20","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/SmolStr/20","iteration_count":[14288,28576,42864,57152,71440,85728,100016,114304,128592,142880,157168,171456,185744,200032,214320,228608,242896,257184,271472,285760,300048,314336,328624,342912,357200,371488,385776,400064,414352,428640,442928,457216,471504,485792,500080,514368,528656,542944,557232,571520,585808,600096,614384,628672,642960,657248,671536,685824,700112,714400,728688,742976,757264,771552,785840,800128,814416,828704,842992,857280,871568,885856,900144,914432,928720,943008,957296,971584,985872,1000160,1014448,1028736,1043024,1057312,1071600,1085888,1100176,1114464,1128752,1143040,1157328,1171616,1185904,1200192,1214480,1228768,1243056,1257344,1271632,1285920,1300208,1314496,1328784,1343072,1357360,1371648,1385936,1400224,1414512,1428800],"measured_values":[174870.0,347376.0,519052.0,694814.0,877623.0,1039436.0,1207555.0,1378251.0,1567999.0,1735276.0,1914156.0,2078744.0,2265601.0,2456288.0,2603791.0,2766348.0,2928204.0,3108277.0,3292244.0,3474931.0,3632610.0,3811310.0,3988252.0,4140066.0,4343392.0,4537222.0,4700302.0,4871706.0,5058208.0,5177704.0,5407048.0,5530524.0,5759085.0,5939445.0,6112536.0,6266407.0,6476293.0,6636245.0,6820124.0,6994924.0,7172050.0,7309469.0,7471288.0,7649553.0,7876677.0,8054833.0,8169359.0,8361934.0,8530821.0,8738158.0,8909030.0,9012965.0,9156138.0,9406450.0,9566774.0,9771164.0,9877552.0,10070979.0,10249358.0,10436812.0,10618788.0,10753414.0,11009306.0,11039451.0,11293205.0,11539180.0,11680950.0,11801689.0,11948135.0,12208959.0,12399378.0,12521711.0,12757115.0,12922115.0,13106196.0,13188250.0,13320081.0,13487960.0,13736732.0,13962540.0,14109475.0,14209165.0,14418161.0,14548268.0,14709774.0,14882090.0,15073834.0,15315762.0,15504338.0,15721511.0,15896490.0,16005829.0,16234944.0,16320513.0,16423480.0,16659026.0,16863741.0,17025928.0,17318913.0,17336699.0],"unit":"ns","throughput":[],"typical":{"estimate":12.171554349205708,"lower_bound":12.160043940379767,"upper_bound":12.183364001496257,"unit":"ns"},"mean":{"estimate":12.170207227359294,"lower_bound":12.159840424825093,"upper_bound":12.180439661055436,"unit":"ns"},"median":{"estimate":12.170889428964221,"lower_bound":12.158309924649345,"upper_bound":12.183545059020066,"unit":"ns"},"median_abs_dev":{"estimate":0.06408692336340019,"lower_bound":0.04737968961133225,"upper_bound":0.07391626578185949,"unit":"ns"},"slope":{"estimate":12.171554349205708,"lower_bound":12.160043940379767,"upper_bound":12.183364001496257,"unit":"ns"},"change":{"mean":{"estimate":0.1851440619675715,"lower_bound":0.18395210320613375,"upper_bound":0.18628986494737282,"unit":"%"},"median":{"estimate":0.18521699950385573,"lower_bound":0.18380553335011318,"upper_bound":0.18654872215299792,"unit":"%"},"change":"Regressed"}} {"reason":"benchmark-complete","id":"Clone - Computed/String/100","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/String/100","iteration_count":[12124,24248,36372,48496,60620,72744,84868,96992,109116,121240,133364,145488,157612,169736,181860,193984,206108,218232,230356,242480,254604,266728,278852,290976,303100,315224,327348,339472,351596,363720,375844,387968,400092,412216,424340,436464,448588,460712,472836,484960,497084,509208,521332,533456,545580,557704,569828,581952,594076,606200,618324,630448,642572,654696,666820,678944,691068,703192,715316,727440,739564,751688,763812,775936,788060,800184,812308,824432,836556,848680,860804,872928,885052,897176,909300,921424,933548,945672,957796,969920,982044,994168,1006292,1018416,1030540,1042664,1054788,1066912,1079036,1091160,1103284,1115408,1127532,1139656,1151780,1163904,1176028,1188152,1200276,1212400],"measured_values":[149523.0,300812.0,10026165.0,599486.0,770048.0,939719.0,1095905.0,1247733.0,1409731.0,1565455.0,1727831.0,1879337.0,2061843.0,2189166.0,2340241.0,2494482.0,2654569.0,2804530.0,2955697.0,3114857.0,3273299.0,3429532.0,3596189.0,3764509.0,3896585.0,4084433.0,4207174.0,4375374.0,4518766.0,4678449.0,4825166.0,4974078.0,5136193.0,5326205.0,5461610.0,5653369.0,5786750.0,5927914.0,6118295.0,6256657.0,6422704.0,6588316.0,6755532.0,6905355.0,7054886.0,7177080.0,7323166.0,7486055.0,7720390.0,7897243.0,7966306.0,8129804.0,8298925.0,8443829.0,8645160.0,8795252.0,8955788.0,9051700.0,9210171.0,9356610.0,9564189.0,9703075.0,9833821.0,10013831.0,10207550.0,10338984.0,10444847.0,10710651.0,10792687.0,10949696.0,11080892.0,11288435.0,11404882.0,11594247.0,11767071.0,11869496.0,12050518.0,12253510.0,12344783.0,12451177.0,12650202.0,12860051.0,12930524.0,13186017.0,13305803.0,13396437.0,13788790.0,13822674.0,14028724.0,14068680.0,14204756.0,14459410.0,14561531.0,14756282.0,14868312.0,15151507.0,15121884.0,15507763.0,15552227.0,15744222.0],"unit":"ns","throughput":[],"typical":{"estimate":12.931074006362607,"lower_bound":12.912101082092631,"upper_bound":12.953654578690019,"unit":"ns"},"mean":{"estimate":15.51973377800911,"lower_bound":12.87544658252323,"upper_bound":20.787820181356643,"unit":"ns"},"median":{"estimate":12.901709566621106,"lower_bound":12.887438857507,"upper_bound":12.915262034374951,"unit":"ns"},"median_abs_dev":{"estimate":0.057038913227705795,"lower_bound":0.04457581073421726,"upper_bound":0.06792490726496374,"unit":"ns"},"slope":{"estimate":12.931074006362607,"lower_bound":12.912101082092631,"upper_bound":12.953654578690019,"unit":"ns"},"change":{"mean":{"estimate":-0.018504729347056825,"lower_bound":-0.43781904456586307,"upper_bound":0.696886292224286,"unit":"%"},"median":{"estimate":0.0534973934684162,"lower_bound":0.051521914130379376,"upper_bound":0.05510652539359073,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/Rc/100","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/Rc_str_/100","iteration_count":[10316,20632,30948,41264,51580,61896,72212,82528,92844,103160,113476,123792,134108,144424,154740,165056,175372,185688,196004,206320,216636,226952,237268,247584,257900,268216,278532,288848,299164,309480,319796,330112,340428,350744,361060,371376,381692,392008,402324,412640,422956,433272,443588,453904,464220,474536,484852,495168,505484,515800,526116,536432,546748,557064,567380,577696,588012,598328,608644,618960,629276,639592,649908,660224,670540,680856,691172,701488,711804,722120,732436,742752,753068,763384,773700,784016,794332,804648,814964,825280,835596,845912,856228,866544,876860,887176,897492,907808,918124,928440,938756,949072,959388,969704,980020,990336,1000652,1010968,1021284,1031600],"measured_values":[9358.0,18253.0,30145.0,49633.0,67196.0,84299.0,89339.0,103816.0,115869.0,130408.0,147659.0,156044.0,168348.0,178416.0,203777.0,203427.0,216602.0,229584.0,244885.0,252977.0,270203.0,294596.0,293416.0,307042.0,318314.0,334775.0,343719.0,354371.0,380180.0,385228.0,395019.0,412770.0,424044.0,435939.0,451877.0,474808.0,486273.0,485751.0,506510.0,520305.0,537398.0,543751.0,561023.0,579186.0,596538.0,603293.0,614221.0,634252.0,652485.0,659540.0,666834.0,678836.0,705474.0,708193.0,723360.0,737594.0,756823.0,753016.0,779295.0,818832.0,852243.0,821456.0,829140.0,849908.0,869688.0,870827.0,898501.0,889996.0,910863.0,944078.0,975649.0,986757.0,961671.0,986150.0,1018710.0,1024802.0,1020945.0,1162411.0,1055367.0,1056112.0,1168671.0,1184294.0,1093520.0,1157932.0,1182972.0,1190084.0,1193569.0,1246408.0,1318355.0,1208818.0,1276618.0,1280635.0,1230440.0,1378038.0,1319149.0,1313896.0,1538565.0,1350579.0,1415810.0,1441859.0],"unit":"ns","throughput":[],"typical":{"estimate":1.327362398309475,"lower_bound":1.3103633678555011,"upper_bound":1.344854989306643,"unit":"ns"},"mean":{"estimate":1.28120401087126,"lower_bound":1.264135199121459,"upper_bound":1.2969027485433928,"unit":"ns"},"median":{"estimate":1.2778233263933334,"lower_bound":1.2706922966797558,"upper_bound":1.2850329585110507,"unit":"ns"},"median_abs_dev":{"estimate":0.04279596335319709,"lower_bound":0.030484289235194917,"upper_bound":0.05672449152880558,"unit":"ns"},"slope":{"estimate":1.327362398309475,"lower_bound":1.3103633678555011,"upper_bound":1.344854989306643,"unit":"ns"},"change":{"mean":{"estimate":-0.010476724900083556,"lower_bound":-0.029071188528520645,"upper_bound":0.009668849643246845,"unit":"%"},"median":{"estimate":-0.0046802264447340924,"lower_bound":-0.014376407658657775,"upper_bound":0.004421643665454056,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/Arc/100","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/Arc_str_/100","iteration_count":[9971,19942,29913,39884,49855,59826,69797,79768,89739,99710,109681,119652,129623,139594,149565,159536,169507,179478,189449,199420,209391,219362,229333,239304,249275,259246,269217,279188,289159,299130,309101,319072,329043,339014,348985,358956,368927,378898,388869,398840,408811,418782,428753,438724,448695,458666,468637,478608,488579,498550,508521,518492,528463,538434,548405,558376,568347,578318,588289,598260,608231,618202,628173,638144,648115,658086,668057,678028,687999,697970,707941,717912,727883,737854,747825,757796,767767,777738,787709,797680,807651,817622,827593,837564,847535,857506,867477,877448,887419,897390,907361,917332,927303,937274,947245,957216,967187,977158,987129,997100],"measured_values":[50495.0,101511.0,157519.0,200739.0,252507.0,306398.0,356496.0,408373.0,455472.0,513342.0,579688.0,609505.0,665008.0,725654.0,762743.0,825803.0,864076.0,922888.0,974875.0,1036361.0,1073913.0,1108047.0,1168010.0,1224268.0,1280825.0,1341140.0,1394761.0,1418617.0,1475884.0,1532902.0,1572969.0,1637892.0,1669955.0,1707543.0,1801731.0,1821009.0,1873138.0,1970491.0,1973284.0,2059390.0,2092742.0,2150733.0,2162614.0,2239072.0,2282982.0,2330295.0,2374105.0,2440313.0,2527244.0,2514761.0,2606133.0,2628646.0,2678500.0,2734531.0,2793478.0,2839245.0,2889300.0,2937894.0,2989351.0,3033264.0,3119940.0,3221228.0,3196031.0,3279340.0,3308204.0,3371413.0,3414547.0,3491652.0,3507399.0,3579840.0,3633007.0,3677782.0,3701470.0,3776510.0,3827418.0,3875316.0,3930532.0,3964398.0,4037805.0,4136310.0,4148204.0,4185063.0,4270086.0,4305582.0,4336202.0,4405102.0,4470175.0,4522363.0,4559545.0,4597584.0,4683138.0,4698987.0,4771124.0,4822089.0,4855665.0,4952225.0,4946566.0,5031237.0,5051355.0,5071796.0],"unit":"ns","throughput":[],"typical":{"estimate":5.123780093347996,"lower_bound":5.116301795026705,"upper_bound":5.130761834259846,"unit":"ns"},"mean":{"estimate":5.119395580323799,"lower_bound":5.110997473876653,"upper_bound":5.128205691903007,"unit":"ns"},"median":{"estimate":5.118836699599571,"lower_bound":5.107612075017551,"upper_bound":5.125272742429839,"unit":"ns"},"median_abs_dev":{"estimate":0.04116594181834102,"lower_bound":0.0312120325772505,"upper_bound":0.05047886524672516,"unit":"ns"},"slope":{"estimate":5.123780093347996,"lower_bound":5.116301795026705,"upper_bound":5.130761834259846,"unit":"ns"},"change":{"mean":{"estimate":0.04830342008525701,"lower_bound":0.04326081593091392,"upper_bound":0.053031980615275004,"unit":"%"},"median":{"estimate":0.05277064521784691,"lower_bound":0.04748266248592392,"upper_bound":0.05633704061565137,"unit":"%"},"change":"Regressed"}} {"reason":"benchmark-complete","id":"Clone - Computed/FlexStr/100","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/FlexStr/100","iteration_count":[6192,12384,18576,24768,30960,37152,43344,49536,55728,61920,68112,74304,80496,86688,92880,99072,105264,111456,117648,123840,130032,136224,142416,148608,154800,160992,167184,173376,179568,185760,191952,198144,204336,210528,216720,222912,229104,235296,241488,247680,253872,260064,266256,272448,278640,284832,291024,297216,303408,309600,315792,321984,328176,334368,340560,346752,352944,359136,365328,371520,377712,383904,390096,396288,402480,408672,414864,421056,427248,433440,439632,445824,452016,458208,464400,470592,476784,482976,489168,495360,501552,507744,513936,520128,526320,532512,538704,544896,551088,557280,563472,569664,575856,582048,588240,594432,600624,606816,613008,619200],"measured_values":[6653.0,15386.0,23667.0,33201.0,43232.0,55383.0,63972.0,73598.0,98218.0,94299.0,107301.0,117283.0,127070.0,142238.0,147510.0,158552.0,168558.0,175000.0,184518.0,211528.0,210846.0,218285.0,221179.0,238854.0,234641.0,257016.0,252440.0,261123.0,277667.0,330987.0,313393.0,329895.0,333271.0,351476.0,351084.0,385770.0,383505.0,390359.0,377956.0,387111.0,395467.0,405087.0,416779.0,422551.0,438621.0,460644.0,457147.0,472214.0,523511.0,500428.0,513173.0,516616.0,553460.0,540272.0,522358.0,531628.0,550873.0,549759.0,575021.0,574698.0,583053.0,602634.0,602901.0,663377.0,636876.0,645142.0,649150.0,654087.0,670198.0,678686.0,685438.0,706090.0,708792.0,718383.0,756332.0,745913.0,753358.0,765290.0,792631.0,1106615.0,803843.0,821136.0,820735.0,1362289.0,1025702.0,852444.0,864818.0,874124.0,919110.0,887962.0,915951.0,926874.0,945471.0,937997.0,941343.0,1047374.0,967301.0,971100.0,1001096.0,990006.0],"unit":"ns","throughput":[],"typical":{"estimate":1.6447636128590297,"lower_bound":1.603161605285199,"upper_bound":1.7003282841305365,"unit":"ns"},"mean":{"estimate":1.6008643724855156,"lower_bound":1.5719097071975978,"upper_bound":1.633731603059394,"unit":"ns"},"median":{"estimate":1.5884844692075797,"lower_bound":1.575361169837914,"upper_bound":1.601597625115405,"unit":"ns"},"median_abs_dev":{"estimate":0.04621666100119563,"lower_bound":0.03580074531489416,"upper_bound":0.060088905644535666,"unit":"ns"},"slope":{"estimate":1.6447636128590297,"lower_bound":1.603161605285199,"upper_bound":1.7003282841305365,"unit":"ns"},"change":{"mean":{"estimate":-0.042204144430962987,"lower_bound":-0.07903059915293097,"upper_bound":-0.008788741760590033,"unit":"%"},"median":{"estimate":-0.03652731746356053,"lower_bound":-0.049010339944732695,"upper_bound":-0.02351963297505022,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/AFlexStr/100","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/AFlexStr/100","iteration_count":[6877,13754,20631,27508,34385,41262,48139,55016,61893,68770,75647,82524,89401,96278,103155,110032,116909,123786,130663,137540,144417,151294,158171,165048,171925,178802,185679,192556,199433,206310,213187,220064,226941,233818,240695,247572,254449,261326,268203,275080,281957,288834,295711,302588,309465,316342,323219,330096,336973,343850,350727,357604,364481,371358,378235,385112,391989,398866,405743,412620,419497,426374,433251,440128,447005,453882,460759,467636,474513,481390,488267,495144,502021,508898,515775,522652,529529,536406,543283,550160,557037,563914,570791,577668,584545,591422,598299,605176,612053,618930,625807,632684,639561,646438,653315,660192,667069,673946,680823,687700],"measured_values":[38584.0,77064.0,110268.0,149081.0,187826.0,226700.0,264360.0,290779.0,324897.0,380941.0,408412.0,449883.0,485129.0,521446.0,553859.0,595055.0,613651.0,670690.0,705146.0,741435.0,778602.0,835603.0,885506.0,913721.0,946263.0,998070.0,1027977.0,1056622.0,1112566.0,1148415.0,1177688.0,1226310.0,1277239.0,1272467.0,1298888.0,1352883.0,1364052.0,1400633.0,1448754.0,1482620.0,1557301.0,1562037.0,1610619.0,1652680.0,1706671.0,1762537.0,1744524.0,1798824.0,1823402.0,1838913.0,1862545.0,1895509.0,1930464.0,1985477.0,2012440.0,2058809.0,2081523.0,2122839.0,2130021.0,2190468.0,2202659.0,2250812.0,2279687.0,2317640.0,2348189.0,2399414.0,2473864.0,2481156.0,2493792.0,2543167.0,2566940.0,2738353.0,2768492.0,2770668.0,2835379.0,2833815.0,2890384.0,2915391.0,2968599.0,3035347.0,3039055.0,3095742.0,3101022.0,3183686.0,3187845.0,3238843.0,3265353.0,3328051.0,3349614.0,3436104.0,3423753.0,3442169.0,3487234.0,3549361.0,3554670.0,3596740.0,3637680.0,3735696.0,3723190.0,3772395.0],"unit":"ns","throughput":[],"typical":{"estimate":5.429993317741181,"lower_bound":5.408544444393518,"upper_bound":5.449065412557958,"unit":"ns"},"mean":{"estimate":5.427580803020106,"lower_bound":5.408335186785523,"upper_bound":5.446665999073739,"unit":"ns"},"median":{"estimate":5.44328627740726,"lower_bound":5.414631472287427,"upper_bound":5.4577276579101754,"unit":"ns"},"median_abs_dev":{"estimate":0.10333274420059796,"lower_bound":0.07126383930157025,"upper_bound":0.1297511634003175,"unit":"ns"},"slope":{"estimate":5.429993317741181,"lower_bound":5.408544444393518,"upper_bound":5.449065412557958,"unit":"ns"},"change":{"mean":{"estimate":-0.08404542757066547,"lower_bound":-0.10700958324671585,"upper_bound":-0.06974262600460042,"unit":"%"},"median":{"estimate":-0.0663929868208698,"lower_bound":-0.07261916227297072,"upper_bound":-0.06204462505417563,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Clone - Computed/CompactStr/100","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/CompactStr/100","iteration_count":[9969,19938,29907,39876,49845,59814,69783,79752,89721,99690,109659,119628,129597,139566,149535,159504,169473,179442,189411,199380,209349,219318,229287,239256,249225,259194,269163,279132,289101,299070,309039,319008,328977,338946,348915,358884,368853,378822,388791,398760,408729,418698,428667,438636,448605,458574,468543,478512,488481,498450,508419,518388,528357,538326,548295,558264,568233,578202,588171,598140,608109,618078,628047,638016,647985,657954,667923,677892,687861,697830,707799,717768,727737,737706,747675,757644,767613,777582,787551,797520,807489,817458,827427,837396,847365,857334,867303,877272,887241,897210,907179,917148,927117,937086,947055,957024,966993,976962,986931,996900],"measured_values":[142640.0,289339.0,421989.0,573196.0,711006.0,857234.0,1006335.0,1142084.0,1290324.0,1451328.0,1584250.0,1725969.0,1880912.0,2024966.0,2189088.0,2299837.0,2436914.0,2587911.0,2759706.0,2881545.0,2997696.0,3194431.0,3324347.0,3481533.0,3595247.0,3768077.0,3888073.0,4039589.0,4210293.0,4354175.0,4464333.0,4633993.0,4777909.0,4928181.0,5060243.0,5205366.0,5336484.0,5527627.0,5753546.0,5834386.0,5934877.0,6060917.0,6215899.0,6356175.0,6559191.0,6698064.0,6859127.0,6972885.0,7143224.0,7250708.0,7419199.0,7584311.0,7756516.0,7851538.0,7949433.0,8119865.0,8342818.0,8439541.0,8594083.0,8968172.0,9126530.0,9357977.0,9446146.0,9626198.0,9761384.0,9987982.0,10150041.0,10327075.0,10492588.0,10593618.0,10781085.0,10890733.0,11044835.0,11250846.0,11383776.0,11638148.0,11820644.0,11928856.0,12122926.0,12223644.0,12348883.0,12608586.0,12719264.0,12862646.0,13131306.0,13257434.0,13388762.0,13590052.0,13717705.0,13810370.0,13933182.0,13978557.0,14187456.0,14279880.0,14411981.0,14625843.0,14601468.0,14688383.0,14980857.0,14985626.0],"unit":"ns","throughput":[],"typical":{"estimate":15.121609065834248,"lower_bound":15.050668201830497,"upper_bound":15.180299974981011,"unit":"ns"},"mean":{"estimate":14.812879581550899,"lower_bound":14.737244046392126,"upper_bound":14.889806221306628,"unit":"ns"},"median":{"estimate":14.616422094934975,"lower_bound":14.562171519589516,"upper_bound":14.993432975557562,"unit":"ns"},"median_abs_dev":{"estimate":0.3207226990827892,"lower_bound":0.17822224703661738,"upper_bound":0.5637806766930809,"unit":"ns"},"slope":{"estimate":15.121609065834248,"lower_bound":15.050668201830497,"upper_bound":15.180299974981011,"unit":"ns"},"change":{"mean":{"estimate":0.012351027249902558,"lower_bound":0.006680621295712332,"upper_bound":0.018243296817954096,"unit":"%"},"median":{"estimate":-0.0014606306298092786,"lower_bound":-0.0057670896102602716,"upper_bound":0.024881445425886994,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/KString/100","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/KString/100","iteration_count":[10318,20636,30954,41272,51590,61908,72226,82544,92862,103180,113498,123816,134134,144452,154770,165088,175406,185724,196042,206360,216678,226996,237314,247632,257950,268268,278586,288904,299222,309540,319858,330176,340494,350812,361130,371448,381766,392084,402402,412720,423038,433356,443674,453992,464310,474628,484946,495264,505582,515900,526218,536536,546854,557172,567490,577808,588126,598444,608762,619080,629398,639716,650034,660352,670670,680988,691306,701624,711942,722260,732578,742896,753214,763532,773850,784168,794486,804804,815122,825440,835758,846076,856394,866712,877030,887348,897666,907984,918302,928620,938938,949256,959574,969892,980210,990528,1000846,1011164,1021482,1031800],"measured_values":[178229.0,362077.0,544520.0,716737.0,901737.0,1073774.0,1261599.0,1436410.0,1621319.0,1809117.0,1995409.0,2168263.0,2342313.0,2553175.0,2692847.0,2889642.0,3064482.0,3264861.0,3430426.0,3586702.0,3779938.0,3959108.0,4157455.0,4309990.0,4493611.0,4677147.0,4855694.0,5052017.0,5244429.0,5431775.0,5562572.0,5797137.0,5922614.0,6136732.0,6313015.0,6470983.0,6664948.0,6854790.0,7073114.0,7237545.0,7356810.0,7596516.0,7745385.0,7949083.0,8130285.0,8308631.0,8519071.0,8654588.0,8869043.0,8992328.0,9193908.0,9383357.0,9583025.0,9788897.0,9962124.0,10147264.0,10302219.0,10520841.0,10667972.0,10846018.0,11009167.0,11231278.0,11365683.0,11551964.0,11703091.0,11932437.0,12053715.0,12261836.0,12503717.0,12626197.0,12836278.0,13189405.0,13282921.0,13360940.0,13525369.0,13765947.0,13837201.0,14013044.0,14254740.0,14438607.0,14581859.0,14806395.0,14995678.0,15143635.0,15339167.0,15548262.0,15664852.0,15894757.0,16133140.0,16250682.0,16409018.0,16577630.0,16734236.0,16948013.0,17263029.0,17259491.0,17474077.0,17655811.0,18109862.0,18138490.0],"unit":"ns","throughput":[],"typical":{"estimate":17.50763621119137,"lower_bound":17.488891578424425,"upper_bound":17.52889319412932,"unit":"ns"},"mean":{"estimate":17.494927469030088,"lower_bound":17.480874408890937,"upper_bound":17.509228228321785,"unit":"ns"},"median":{"estimate":17.490741218078973,"lower_bound":17.477637024959236,"upper_bound":17.505547454580697,"unit":"ns"},"median_abs_dev":{"estimate":0.05845755021174422,"lower_bound":0.04424386316035606,"upper_bound":0.07899582517500024,"unit":"ns"},"slope":{"estimate":17.50763621119137,"lower_bound":17.488891578424425,"upper_bound":17.52889319412932,"unit":"ns"},"change":{"mean":{"estimate":-0.04462944797067803,"lower_bound":-0.04571109703022282,"upper_bound":-0.043616354551644594,"unit":"%"},"median":{"estimate":-0.04525786468736093,"lower_bound":-0.046317083918513524,"upper_bound":-0.044186309052695,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Clone - Computed/SmartString/100","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/SmartString/100","iteration_count":[10641,21282,31923,42564,53205,63846,74487,85128,95769,106410,117051,127692,138333,148974,159615,170256,180897,191538,202179,212820,223461,234102,244743,255384,266025,276666,287307,297948,308589,319230,329871,340512,351153,361794,372435,383076,393717,404358,414999,425640,436281,446922,457563,468204,478845,489486,500127,510768,521409,532050,542691,553332,563973,574614,585255,595896,606537,617178,627819,638460,649101,659742,670383,681024,691665,702306,712947,723588,734229,744870,755511,766152,776793,787434,798075,808716,819357,829998,840639,851280,861921,872562,883203,893844,904485,915126,925767,936408,947049,957690,968331,978972,989613,1000254,1010895,1021536,1032177,1042818,1053459,1064100],"measured_values":[162670.0,328891.0,528861.0,701207.0,880176.0,1054969.0,1230480.0,1416342.0,1578729.0,1743061.0,1938018.0,2097260.0,2265701.0,2464347.0,2618307.0,2782286.0,2992535.0,3156598.0,3331930.0,3523862.0,3681701.0,3867995.0,4075399.0,4195185.0,4382688.0,4546129.0,4700020.0,4895610.0,5071933.0,5289174.0,5442767.0,5606697.0,5781176.0,5950279.0,6168480.0,6298596.0,6480732.0,6664140.0,6847103.0,6994745.0,7201806.0,7358032.0,7541261.0,7761817.0,7851327.0,8010077.0,8253762.0,8405824.0,8525072.0,8746162.0,8971539.0,9123415.0,9266796.0,9435865.0,9654400.0,9813072.0,9980398.0,10228399.0,10537593.0,10476327.0,10664221.0,10973379.0,11196813.0,11361021.0,11584375.0,11721354.0,11973089.0,12184612.0,12364214.0,12439535.0,12739634.0,12802151.0,13037227.0,13227479.0,13428305.0,13522825.0,13708528.0,13881162.0,14063921.0,14210319.0,14397772.0,14617148.0,14797938.0,15024900.0,15145109.0,15318727.0,15544416.0,15801501.0,15898227.0,16000327.0,16353557.0,16441803.0,16562510.0,16760857.0,16927465.0,17065534.0,17319685.0,17446667.0,17685890.0,17873483.0],"unit":"ns","throughput":[],"typical":{"estimate":16.697257722641595,"lower_bound":16.66633833790164,"upper_bound":16.722538495037423,"unit":"ns"},"mean":{"estimate":16.567320430487385,"lower_bound":16.51910122702453,"upper_bound":16.609206053128105,"unit":"ns"},"median":{"estimate":16.542931613017352,"lower_bound":16.497570202250213,"upper_bound":16.642291360799405,"unit":"ns"},"median_abs_dev":{"estimate":0.1896950404202015,"lower_bound":0.10907000586098246,"upper_bound":0.22911047302553833,"unit":"ns"},"slope":{"estimate":16.697257722641595,"lower_bound":16.66633833790164,"upper_bound":16.722538495037423,"unit":"ns"},"change":{"mean":{"estimate":0.0303827135946082,"lower_bound":0.02357280367428758,"upper_bound":0.037308451400543674,"unit":"%"},"median":{"estimate":0.02914994826681183,"lower_bound":0.017428030537808344,"upper_bound":0.03982438031127522,"unit":"%"},"change":"Regressed"}} {"reason":"benchmark-complete","id":"Clone - Computed/SmolStr/100","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/SmolStr/100","iteration_count":[8889,17778,26667,35556,44445,53334,62223,71112,80001,88890,97779,106668,115557,124446,133335,142224,151113,160002,168891,177780,186669,195558,204447,213336,222225,231114,240003,248892,257781,266670,275559,284448,293337,302226,311115,320004,328893,337782,346671,355560,364449,373338,382227,391116,400005,408894,417783,426672,435561,444450,453339,462228,471117,480006,488895,497784,506673,515562,524451,533340,542229,551118,560007,568896,577785,586674,595563,604452,613341,622230,631119,640008,648897,657786,666675,675564,684453,693342,702231,711120,720009,728898,737787,746676,755565,764454,773343,782232,791121,800010,808899,817788,826677,835566,844455,853344,862233,871122,880011,888900],"measured_values":[144494.0,289399.0,436737.0,572072.0,725882.0,863348.0,1009431.0,1170536.0,1301736.0,1443507.0,1583969.0,1733953.0,1876339.0,2025093.0,2162434.0,2331196.0,2432146.0,2587729.0,2739780.0,2891276.0,3006053.0,3180242.0,3305553.0,3451776.0,3613282.0,3736665.0,3899563.0,4026092.0,4172260.0,4310454.0,4441692.0,4620428.0,4765352.0,4898034.0,5051044.0,5184977.0,5338768.0,5464946.0,5585386.0,5759878.0,5907344.0,6078488.0,6186133.0,6338541.0,6478059.0,6652437.0,6792691.0,6944941.0,7067363.0,7228277.0,7540998.0,7551179.0,7692297.0,7811313.0,7957668.0,8115599.0,8212481.0,8390449.0,8537395.0,8690507.0,8820102.0,8942835.0,9131872.0,9260274.0,9344703.0,9519324.0,9674920.0,9776031.0,9957915.0,10125875.0,10272363.0,10419821.0,10605012.0,10734398.0,10800450.0,10962587.0,11142858.0,11305719.0,11443078.0,11611668.0,11691198.0,11820903.0,12006454.0,12157891.0,12267057.0,12490251.0,12592583.0,12728611.0,12861233.0,13071451.0,13148218.0,13380647.0,13446971.0,13628724.0,13716272.0,13941899.0,13958110.0,14142247.0,14382303.0,14494524.0],"unit":"ns","throughput":[],"typical":{"estimate":16.271439301555798,"lower_bound":16.257357226494925,"upper_bound":16.2852413247144,"unit":"ns"},"mean":{"estimate":16.253563947611564,"lower_bound":16.239411316321295,"upper_bound":16.26857912900753,"unit":"ns"},"median":{"estimate":16.255488993887575,"lower_bound":16.23658991027318,"upper_bound":16.269343644074013,"unit":"ns"},"median_abs_dev":{"estimate":0.05591340073158129,"lower_bound":0.03850575080699557,"upper_bound":0.07474988661028494,"unit":"ns"},"slope":{"estimate":16.271439301555798,"lower_bound":16.257357226494925,"upper_bound":16.2852413247144,"unit":"ns"},"change":{"mean":{"estimate":0.06041394615919393,"lower_bound":0.05918048636256702,"upper_bound":0.06178090540850734,"unit":"%"},"median":{"estimate":0.060715419405910964,"lower_bound":0.059180235895353706,"upper_bound":0.06212758624663541,"unit":"%"},"change":"Regressed"}} {"reason":"benchmark-complete","id":"Clone - Computed/String/1000","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/String/1000","iteration_count":[5459,10918,16377,21836,27295,32754,38213,43672,49131,54590,60049,65508,70967,76426,81885,87344,92803,98262,103721,109180,114639,120098,125557,131016,136475,141934,147393,152852,158311,163770,169229,174688,180147,185606,191065,196524,201983,207442,212901,218360,223819,229278,234737,240196,245655,251114,256573,262032,267491,272950,278409,283868,289327,294786,300245,305704,311163,316622,322081,327540,332999,338458,343917,349376,354835,360294,365753,371212,376671,382130,387589,393048,398507,403966,409425,414884,420343,425802,431261,436720,442179,447638,453097,458556,464015,469474,474933,480392,485851,491310,496769,502228,507687,513146,518605,524064,529523,534982,540441,545900],"measured_values":[137489.0,270803.0,399055.0,531404.0,687512.0,805526.0,929260.0,1066290.0,1189081.0,1342062.0,1453202.0,1620188.0,1718422.0,1853859.0,1997901.0,2109143.0,2218970.0,2398531.0,2540641.0,2694233.0,2823876.0,2964673.0,3101321.0,3273710.0,3428123.0,3517141.0,3741034.0,3857874.0,3923911.0,4158745.0,4695771.0,4547183.0,5205746.0,4944712.0,5105516.0,5283997.0,5742194.0,5868881.0,5980685.0,6061138.0,6257027.0,6790880.0,8589023.0,7455586.0,7492386.0,8138309.0,8765057.0,9017465.0,11650221.0,13499443.0,13228739.0,12815267.0,13002880.0,12908040.0,13735490.0,14989692.0,13927901.0,15155747.0,14779645.0,15713186.0,17200750.0,16320616.0,17133503.0,18857298.0,18887856.0,17777202.0,19111567.0,18678727.0,20811219.0,19646893.0,20988925.0,20822979.0,23477976.0,22422879.0,22877897.0,23677353.0,24407066.0,24359235.0,24380543.0,26582462.0,25847763.0,28095261.0,29728782.0,28454740.0,28107944.0,29531208.0,30201758.0,29561286.0,31253298.0,30413488.0,31260531.0,31677312.0,32063150.0,32963939.0,33753111.0,33329418.0,34508461.0,33899649.0,35807041.0,35585111.0],"unit":"ns","throughput":[],"typical":{"estimate":55.122334484617966,"lower_bound":52.59020786067132,"upper_bound":57.15659357939002,"unit":"ns"},"mean":{"estimate":41.754183838044156,"lower_bound":38.674545828004774,"upper_bound":44.84419896477946,"unit":"ns"},"median":{"estimate":44.2743101418442,"lower_bound":28.897211721538522,"upper_bound":49.033352524010155,"unit":"ns"},"median_abs_dev":{"estimate":25.901004969200823,"lower_bound":6.942764212021332,"upper_bound":27.10663982863221,"unit":"ns"},"slope":{"estimate":55.122334484617966,"lower_bound":52.59020786067132,"upper_bound":57.15659357939002,"unit":"ns"},"change":{"mean":{"estimate":0.07698374510599115,"lower_bound":-0.03205542122754456,"upper_bound":0.19821510181547033,"unit":"%"},"median":{"estimate":0.4019408551404735,"lower_bound":-0.25713163741213774,"upper_bound":0.70982438955789,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/Rc/1000","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/Rc_str_/1000","iteration_count":[3744,7488,11232,14976,18720,22464,26208,29952,33696,37440,41184,44928,48672,52416,56160,59904,63648,67392,71136,74880,78624,82368,86112,89856,93600,97344,101088,104832,108576,112320,116064,119808,123552,127296,131040,134784,138528,142272,146016,149760,153504,157248,160992,164736,168480,172224,175968,179712,183456,187200,190944,194688,198432,202176,205920,209664,213408,217152,220896,224640,228384,232128,235872,239616,243360,247104,250848,254592,258336,262080,265824,269568,273312,277056,280800,284544,288288,292032,295776,299520,303264,307008,310752,314496,318240,321984,325728,329472,333216,336960,340704,344448,348192,351936,355680,359424,363168,366912,370656,374400],"measured_values":[4278.0,10840.0,20969.0,30819.0,42871.0,52659.0,66116.0,74520.0,83391.0,94609.0,112644.0,136417.0,122111.0,139123.0,171424.0,179046.0,175022.0,180161.0,179410.0,182497.0,218726.0,219076.0,218384.0,231427.0,251287.0,243109.0,291903.0,260903.0,275771.0,288474.0,275202.0,280712.0,295860.0,354141.0,392434.0,340034.0,363469.0,352236.0,342479.0,348620.0,393063.0,396541.0,390781.0,388765.0,402091.0,440606.0,454393.0,468798.0,484407.0,506648.0,487844.0,474106.0,528610.0,518094.0,541383.0,587672.0,562625.0,570992.0,665699.0,552486.0,549610.0,547044.0,822899.0,630914.0,672753.0,655842.0,716397.0,645915.0,849400.0,751744.0,785046.0,715656.0,740262.0,815332.0,770359.0,833790.0,721556.0,770779.0,999602.0,908910.0,973202.0,924109.0,829510.0,1034448.0,934649.0,1004149.0,1070285.0,1787855.0,1107829.0,1075056.0,1167550.0,1125934.0,1096237.0,1253986.0,1165587.0,1159037.0,1428936.0,1219878.0,1229368.0,1371569.0],"unit":"ns","throughput":[],"typical":{"estimate":3.0525190340503627,"lower_bound":2.9135109041578913,"upper_bound":3.204339881828677,"unit":"ns"},"mean":{"estimate":2.7561255104125437,"lower_bound":2.6624043691655674,"upper_bound":2.857264467687958,"unit":"ns"},"median":{"estimate":2.6541609432234434,"lower_bound":2.582247908710675,"upper_bound":2.73513986013986,"unit":"ns"},"median_abs_dev":{"estimate":0.3196361201266066,"lower_bound":0.20691254082567354,"upper_bound":0.41954241593155156,"unit":"ns"},"slope":{"estimate":3.0525190340503627,"lower_bound":2.9135109041578913,"upper_bound":3.204339881828677,"unit":"ns"},"change":{"mean":{"estimate":-0.02140719604193908,"lower_bound":-0.06672727462771585,"upper_bound":0.026534094971295587,"unit":"%"},"median":{"estimate":-0.012167330256326547,"lower_bound":-0.0692284942536946,"upper_bound":0.029420362996384286,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/Arc/1000","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/Arc_str_/1000","iteration_count":[3687,7374,11061,14748,18435,22122,25809,29496,33183,36870,40557,44244,47931,51618,55305,58992,62679,66366,70053,73740,77427,81114,84801,88488,92175,95862,99549,103236,106923,110610,114297,117984,121671,125358,129045,132732,136419,140106,143793,147480,151167,154854,158541,162228,165915,169602,173289,176976,180663,184350,188037,191724,195411,199098,202785,206472,210159,213846,217533,221220,224907,228594,232281,235968,239655,243342,247029,250716,254403,258090,261777,265464,269151,272838,276525,280212,283899,287586,291273,294960,298647,302334,306021,309708,313395,317082,320769,324456,328143,331830,335517,339204,342891,346578,350265,353952,357639,361326,365013,368700],"measured_values":[27101.0,56676.0,78179.0,107835.0,132891.0,168319.0,190251.0,215207.0,250112.0,266975.0,292283.0,325305.0,347779.0,369991.0,400577.0,421156.0,454832.0,476051.0,504756.0,529480.0,558257.0,585088.0,601941.0,628268.0,661986.0,689997.0,723356.0,738069.0,771782.0,790247.0,819771.0,857182.0,876909.0,898452.0,928147.0,950310.0,979886.0,1010184.0,1037133.0,1056291.0,1093830.0,1110952.0,1157721.0,1189564.0,1189463.0,1222384.0,1240380.0,1276975.0,1289202.0,1324436.0,1347702.0,1369233.0,1437543.0,1438612.0,1473781.0,1500973.0,1519907.0,1566056.0,1560878.0,1641600.0,1652028.0,1658789.0,1693516.0,1744182.0,1757769.0,1797663.0,1823853.0,1825076.0,1917571.0,1881480.0,1917438.0,2016551.0,1984528.0,2033771.0,2051026.0,2119942.0,2100406.0,2185067.0,2144561.0,2224200.0,2249378.0,2266020.0,2299585.0,2385988.0,2333208.0,2403974.0,2458194.0,2444589.0,2517517.0,2495866.0,2626655.0,2533949.0,2618799.0,2676980.0,2615492.0,2688467.0,2745697.0,2706285.0,2852481.0,2792387.0],"unit":"ns","throughput":[],"typical":{"estimate":7.464511260132244,"lower_bound":7.41724225506122,"upper_bound":7.507644192260715,"unit":"ns"},"mean":{"estimate":7.343357574258242,"lower_bound":7.308739711520088,"upper_bound":7.379299052965756,"unit":"ns"},"median":{"estimate":7.290411183006789,"lower_bound":7.243052165265347,"upper_bound":7.350420395985896,"unit":"ns"},"median_abs_dev":{"estimate":0.1668644237375746,"lower_bound":0.11977346275019003,"upper_bound":0.23314532780062802,"unit":"ns"},"slope":{"estimate":7.464511260132244,"lower_bound":7.41724225506122,"upper_bound":7.507644192260715,"unit":"ns"},"change":{"mean":{"estimate":-0.07058007757527451,"lower_bound":-0.07636739004503422,"upper_bound":-0.06453852310527279,"unit":"%"},"median":{"estimate":-0.07330980100424733,"lower_bound":-0.08211695787861062,"upper_bound":-0.06330681483629162,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Clone - Computed/FlexStr/1000","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/FlexStr/1000","iteration_count":[812,1624,2436,3248,4060,4872,5684,6496,7308,8120,8932,9744,10556,11368,12180,12992,13804,14616,15428,16240,17052,17864,18676,19488,20300,21112,21924,22736,23548,24360,25172,25984,26796,27608,28420,29232,30044,30856,31668,32480,33292,34104,34916,35728,36540,37352,38164,38976,39788,40600,41412,42224,43036,43848,44660,45472,46284,47096,47908,48720,49532,50344,51156,51968,52780,53592,54404,55216,56028,56840,57652,58464,59276,60088,60900,61712,62524,63336,64148,64960,65772,66584,67396,68208,69020,69832,70644,71456,72268,73080,73892,74704,75516,76328,77140,77952,78764,79576,80388,81200],"measured_values":[1913.0,2436.0,3264.0,4930.0,5771.0,7555.0,11192.0,11211.0,13816.0,16358.0,19787.0,28493.0,23142.0,26068.0,29285.0,32514.0,34694.0,38162.0,41075.0,56458.0,47701.0,48581.0,51736.0,54043.0,57218.0,58933.0,62509.0,65613.0,67389.0,64742.0,68077.0,71234.0,75451.0,78310.0,84560.0,83838.0,87207.0,87997.0,89278.0,96083.0,99929.0,99658.0,103196.0,102325.0,103786.0,110059.0,114658.0,130337.0,117394.0,118724.0,135686.0,126641.0,131960.0,130067.0,129367.0,133223.0,134906.0,139955.0,149183.0,156626.0,152409.0,159302.0,157888.0,158779.0,159883.0,168139.0,173097.0,176775.0,178498.0,182625.0,197572.0,186942.0,212050.0,199588.0,194307.0,203885.0,198064.0,192774.0,194198.0,191473.0,198796.0,202816.0,197764.0,200821.0,209427.0,229635.0,230267.0,227771.0,231428.0,231659.0,229655.0,229815.0,218193.0,234134.0,232602.0,246747.0,239923.0,254111.0,248279.0,244772.0],"unit":"ns","throughput":[],"typical":{"estimate":3.0842972742976817,"lower_bound":3.0494955384909357,"upper_bound":3.118654211967617,"unit":"ns"},"mean":{"estimate":2.848736320013438,"lower_bound":2.7571114383332693,"upper_bound":2.933395898908086,"unit":"ns"},"median":{"estimate":2.9530190240834564,"lower_bound":2.9124110035440083,"upper_bound":3.015322789732953,"unit":"ns"},"median_abs_dev":{"estimate":0.23466821826012327,"lower_bound":0.1740521891225525,"upper_bound":0.32971400592717276,"unit":"ns"},"slope":{"estimate":3.0842972742976817,"lower_bound":3.0494955384909357,"upper_bound":3.118654211967617,"unit":"ns"},"change":{"mean":{"estimate":-0.015523014221998754,"lower_bound":-0.05413032468581971,"upper_bound":0.0257357796565875,"unit":"%"},"median":{"estimate":-0.024147802266109686,"lower_bound":-0.043124008697162264,"upper_bound":0.0019616590258213495,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/AFlexStr/1000","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/AFlexStr/1000","iteration_count":[947,1894,2841,3788,4735,5682,6629,7576,8523,9470,10417,11364,12311,13258,14205,15152,16099,17046,17993,18940,19887,20834,21781,22728,23675,24622,25569,26516,27463,28410,29357,30304,31251,32198,33145,34092,35039,35986,36933,37880,38827,39774,40721,41668,42615,43562,44509,45456,46403,47350,48297,49244,50191,51138,52085,53032,53979,54926,55873,56820,57767,58714,59661,60608,61555,62502,63449,64396,65343,66290,67237,68184,69131,70078,71025,71972,72919,73866,74813,75760,76707,77654,78601,79548,80495,81442,82389,83336,84283,85230,86177,87124,88071,89018,89965,90912,91859,92806,93753,94700],"measured_values":[5420.0,10770.0,16632.0,22202.0,27825.0,32291.0,42069.0,44716.0,50024.0,55226.0,61135.0,64575.0,70341.0,75212.0,83608.0,88156.0,93938.0,95210.0,105309.0,106724.0,115628.0,120961.0,128786.0,131621.0,135689.0,140977.0,145778.0,150948.0,157226.0,167024.0,169251.0,172708.0,191795.0,182797.0,188406.0,195921.0,197516.0,204468.0,217140.0,217411.0,219455.0,228319.0,236297.0,236366.0,244714.0,247111.0,258740.0,257807.0,263870.0,280953.0,273419.0,278937.0,284960.0,290949.0,296962.0,302020.0,307000.0,313802.0,322241.0,326961.0,328383.0,342558.0,341898.0,343641.0,349582.0,351714.0,362576.0,370209.0,378426.0,381305.0,391313.0,398453.0,402193.0,414115.0,411600.0,426711.0,425888.0,413704.0,416218.0,434182.0,438019.0,446707.0,447227.0,471131.0,465632.0,463059.0,472714.0,476003.0,495337.0,492490.0,508772.0,506258.0,523893.0,524452.0,516268.0,526146.0,534021.0,534302.0,540191.0,547448.0],"unit":"ns","throughput":[],"typical":{"estimate":5.7696406765611545,"lower_bound":5.746723380768128,"upper_bound":5.791981267418426,"unit":"ns"},"mean":{"estimate":5.76938124462705,"lower_bound":5.748775186131512,"upper_bound":5.791776128955088,"unit":"ns"},"median":{"estimate":5.747888067581837,"lower_bound":5.725651856063683,"upper_bound":5.781486082641434,"unit":"ns"},"median_abs_dev":{"estimate":0.09695325773188004,"lower_bound":0.07338099441778473,"upper_bound":0.12048359631109687,"unit":"ns"},"slope":{"estimate":5.7696406765611545,"lower_bound":5.746723380768128,"upper_bound":5.791981267418426,"unit":"ns"},"change":{"mean":{"estimate":-0.09019312360700193,"lower_bound":-0.09622596755328078,"upper_bound":-0.0847279719821791,"unit":"%"},"median":{"estimate":-0.08932287670670647,"lower_bound":-0.09650520014124275,"upper_bound":-0.08374905833250976,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Clone - Computed/CompactStr/1000","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/CompactStr/1000","iteration_count":[3351,6702,10053,13404,16755,20106,23457,26808,30159,33510,36861,40212,43563,46914,50265,53616,56967,60318,63669,67020,70371,73722,77073,80424,83775,87126,90477,93828,97179,100530,103881,107232,110583,113934,117285,120636,123987,127338,130689,134040,137391,140742,144093,147444,150795,154146,157497,160848,164199,167550,170901,174252,177603,180954,184305,187656,191007,194358,197709,201060,204411,207762,211113,214464,217815,221166,224517,227868,231219,234570,237921,241272,244623,247974,251325,254676,258027,261378,264729,268080,271431,274782,278133,281484,284835,288186,291537,294888,298239,301590,304941,308292,311643,314994,318345,321696,325047,328398,331749,335100],"measured_values":[85141.0,175651.0,259829.0,342750.0,431196.0,508684.0,598522.0,667161.0,760340.0,862943.0,921675.0,1020314.0,1085763.0,1189454.0,1249806.0,1340109.0,1423908.0,1507115.0,1607754.0,1670402.0,1737199.0,1826886.0,1916800.0,2006741.0,2124793.0,2232908.0,2289006.0,2392119.0,2476561.0,2600776.0,2802216.0,2851067.0,2813416.0,2921944.0,3007035.0,3088959.0,3270080.0,3267730.0,3372325.0,3403845.0,3602221.0,3692652.0,4005022.0,3977944.0,3865493.0,3990928.0,4352221.0,4196744.0,4271600.0,4512215.0,4459934.0,4529066.0,4593509.0,4712896.0,5007251.0,5073447.0,5246925.0,5361382.0,5570888.0,5573203.0,5835479.0,6051577.0,6325789.0,6219936.0,6742898.0,6668316.0,7918914.0,8294274.0,8320496.0,8201431.0,8397673.0,8530602.0,8737434.0,8943913.0,10097058.0,9054747.0,9676093.0,9991629.0,10121705.0,10468582.0,12658007.0,12471774.0,13157425.0,15464282.0,13301906.0,12866112.0,14197342.0,13262452.0,13605043.0,13582169.0,15293690.0,15276888.0,16008130.0,15273290.0,16637943.0,16829266.0,16420762.0,17092432.0,18356207.0,17358769.0],"unit":"ns","throughput":[],"typical":{"estimate":40.18160716754475,"lower_bound":37.5061894750168,"upper_bound":42.496564964425914,"unit":"ns"},"mean":{"estimate":32.27566132282994,"lower_bound":30.483804829148383,"upper_bound":34.163787249906385,"unit":"ns"},"median":{"estimate":26.95290428471039,"lower_bound":26.01477475502287,"upper_bound":28.177209939861108,"unit":"ns"},"median_abs_dev":{"estimate":2.8958336549542527,"lower_bound":1.4183088780076722,"upper_bound":4.7433816965806495,"unit":"ns"},"slope":{"estimate":40.18160716754475,"lower_bound":37.5061894750168,"upper_bound":42.496564964425914,"unit":"ns"},"change":{"mean":{"estimate":-0.01115073734856542,"lower_bound":-0.0883458104608985,"upper_bound":0.07140193889118937,"unit":"%"},"median":{"estimate":-0.010232844251492512,"lower_bound":-0.1485509189075691,"upper_bound":0.045926835790854215,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/KString/1000","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/KString/1000","iteration_count":[5311,10622,15933,21244,26555,31866,37177,42488,47799,53110,58421,63732,69043,74354,79665,84976,90287,95598,100909,106220,111531,116842,122153,127464,132775,138086,143397,148708,154019,159330,164641,169952,175263,180574,185885,191196,196507,201818,207129,212440,217751,223062,228373,233684,238995,244306,249617,254928,260239,265550,270861,276172,281483,286794,292105,297416,302727,308038,313349,318660,323971,329282,334593,339904,345215,350526,355837,361148,366459,371770,377081,382392,387703,393014,398325,403636,408947,414258,419569,424880,430191,435502,440813,446124,451435,456746,462057,467368,472679,477990,483301,488612,493923,499234,504545,509856,515167,520478,525789,531100],"measured_values":[150587.0,312091.0,445765.0,592982.0,740462.0,900536.0,1041703.0,1174252.0,1325680.0,1472348.0,1619556.0,1766764.0,1908904.0,2050803.0,2246817.0,2391401.0,2550300.0,2713737.0,2850667.0,3007803.0,3163601.0,3374328.0,3798932.0,4024951.0,3852555.0,3977870.0,4136062.0,4265597.0,4430639.0,4705929.0,4928892.0,5077954.0,5340724.0,5224674.0,5500275.0,5790564.0,5912533.0,6456443.0,6466796.0,6969076.0,7649747.0,7282567.0,7888778.0,7674451.0,8649087.0,8339210.0,9599758.0,9577925.0,10354737.0,9779347.0,11923287.0,11108805.0,11335836.0,11728948.0,13520972.0,14212422.0,14569970.0,14700947.0,15085363.0,15574220.0,15847688.0,16440408.0,17827467.0,17123154.0,17350523.0,18811357.0,18814254.0,18847106.0,19268807.0,19727787.0,20898341.0,20756894.0,21778459.0,21081549.0,22641363.0,22136436.0,22327537.0,24833732.0,24595915.0,25033673.0,26053813.0,25882058.0,26313894.0,26878006.0,27035684.0,27692767.0,28399096.0,28771890.0,29533414.0,29969667.0,29960643.0,30414261.0,30875496.0,31564567.0,32845776.0,32732979.0,33105536.0,34908783.0,34670580.0,34342808.0],"unit":"ns","throughput":[],"typical":{"estimate":54.929346514953714,"lower_bound":52.543487592466484,"upper_bound":56.88020073836567,"unit":"ns"},"mean":{"estimate":43.006621760596936,"lower_bound":40.3188486849039,"upper_bound":45.71405573401583,"unit":"ns"},"median":{"estimate":40.0067810817098,"lower_bound":32.74466139051434,"upper_bound":48.874097784472475,"unit":"ns"},"median_abs_dev":{"estimate":17.43322009002813,"lower_bound":7.316930568282839,"upper_bound":22.55973460723444,"unit":"ns"},"slope":{"estimate":54.929346514953714,"lower_bound":52.543487592466484,"upper_bound":56.88020073836567,"unit":"ns"},"change":{"mean":{"estimate":-0.022235547931873767,"lower_bound":-0.11800802981136356,"upper_bound":0.08465924677620476,"unit":"%"},"median":{"estimate":0.04121145127282655,"lower_bound":-0.21747138931681143,"upper_bound":0.4310978040008415,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/SmartString/1000","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/SmartString/1000","iteration_count":[5363,10726,16089,21452,26815,32178,37541,42904,48267,53630,58993,64356,69719,75082,80445,85808,91171,96534,101897,107260,112623,117986,123349,128712,134075,139438,144801,150164,155527,160890,166253,171616,176979,182342,187705,193068,198431,203794,209157,214520,219883,225246,230609,235972,241335,246698,252061,257424,262787,268150,273513,278876,284239,289602,294965,300328,305691,311054,316417,321780,327143,332506,337869,343232,348595,353958,359321,364684,370047,375410,380773,386136,391499,396862,402225,407588,412951,418314,423677,429040,434403,439766,445129,450492,455855,461218,466581,471944,477307,482670,488033,493396,498759,504122,509485,514848,520211,525574,530937,536300],"measured_values":[140136.0,281322.0,435847.0,557527.0,693082.0,835753.0,958195.0,1097209.0,1235807.0,1362008.0,1547130.0,1675705.0,1814905.0,1949172.0,2100719.0,2304621.0,2412188.0,2508749.0,2705673.0,2800593.0,2997525.0,3088847.0,3260602.0,3346478.0,3551213.0,3637999.0,3867863.0,3978763.0,4290093.0,4248584.0,4525463.0,4674300.0,4705269.0,4927280.0,5369387.0,5251403.0,5742191.0,6021714.0,6157049.0,6513493.0,7096229.0,7037544.0,7387129.0,11174519.0,8518550.0,8151815.0,8806287.0,8601086.0,9968036.0,9851285.0,11019533.0,11030087.0,11504014.0,13448004.0,13775075.0,14945608.0,14542095.0,15210021.0,15509757.0,16003284.0,16278362.0,16747220.0,17557257.0,17563489.0,18824607.0,18920535.0,19234233.0,19398221.0,19881577.0,19568074.0,20814201.0,20933767.0,21603607.0,23329435.0,23005022.0,23322211.0,24052113.0,24161460.0,24607845.0,25995143.0,26200330.0,26616748.0,27603609.0,26346257.0,27594010.0,28461179.0,29219767.0,29459825.0,31438961.0,31701088.0,31806027.0,31777842.0,31581902.0,33600564.0,33645849.0,34026489.0,34588224.0,33944865.0,35052751.0,35368034.0],"unit":"ns","throughput":[],"typical":{"estimate":55.643373599507164,"lower_bound":53.07876120288705,"upper_bound":57.72233449285545,"unit":"ns"},"mean":{"estimate":42.51669497839667,"lower_bound":39.554911997810095,"upper_bound":45.54534388652506,"unit":"ns"},"median":{"estimate":39.92041135578143,"lower_bound":31.198118839681015,"upper_bound":49.759163423946106,"unit":"ns"},"median_abs_dev":{"estimate":20.302075265075565,"lower_bound":7.791909346407085,"upper_bound":26.031903483527376,"unit":"ns"},"slope":{"estimate":55.643373599507164,"lower_bound":53.07876120288705,"upper_bound":57.72233449285545,"unit":"ns"},"change":{"mean":{"estimate":0.02349482595954333,"lower_bound":-0.07461078391065835,"upper_bound":0.13172550389205825,"unit":"%"},"median":{"estimate":0.060756571478497445,"lower_bound":-0.243872081685661,"upper_bound":0.5206473089908326,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/SmolStr/1000","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/SmolStr/1000","iteration_count":[3517,7034,10551,14068,17585,21102,24619,28136,31653,35170,38687,42204,45721,49238,52755,56272,59789,63306,66823,70340,73857,77374,80891,84408,87925,91442,94959,98476,101993,105510,109027,112544,116061,119578,123095,126612,130129,133646,137163,140680,144197,147714,151231,154748,158265,161782,165299,168816,172333,175850,179367,182884,186401,189918,193435,196952,200469,203986,207503,211020,214537,218054,221571,225088,228605,232122,235639,239156,242673,246190,249707,253224,256741,260258,263775,267292,270809,274326,277843,281360,284877,288394,291911,295428,298945,302462,305979,309496,313013,316530,320047,323564,327081,330598,334115,337632,341149,344666,348183,351700],"measured_values":[59344.0,114809.0,171585.0,228323.0,282974.0,352607.0,400996.0,463629.0,514505.0,571189.0,630373.0,684007.0,743285.0,801927.0,854959.0,910606.0,965838.0,1023678.0,1084696.0,1138134.0,1197769.0,1257012.0,1321863.0,1374302.0,1431422.0,1479622.0,1554395.0,1614908.0,1674089.0,1718460.0,1766284.0,1838008.0,1883418.0,1940252.0,1999245.0,2059018.0,2115595.0,2179109.0,2235763.0,2289855.0,2341214.0,2398259.0,2454847.0,2529097.0,2583760.0,2640119.0,2746031.0,2771877.0,2818588.0,2878360.0,2925279.0,2991114.0,3052038.0,3103938.0,3160213.0,3197816.0,3281243.0,3326049.0,3375992.0,3436456.0,3484439.0,3557988.0,3600057.0,3669999.0,3712379.0,3763465.0,3852316.0,3908842.0,3995237.0,4030121.0,4062112.0,4110815.0,4221080.0,4259363.0,4303580.0,4414050.0,4462962.0,4461679.0,4556547.0,4603346.0,4646587.0,4727008.0,4804777.0,4830657.0,4878947.0,4965232.0,5030413.0,5092774.0,5195246.0,5230161.0,5254198.0,5307281.0,5326655.0,5518079.0,5527796.0,5553715.0,5601716.0,5685157.0,5735981.0,5856168.0],"unit":"ns","throughput":[],"typical":{"estimate":16.394327306928087,"lower_bound":16.362275531519757,"upper_bound":16.42548219378983,"unit":"ns"},"mean":{"estimate":16.34026284004535,"lower_bound":16.316102521920158,"upper_bound":16.36618002825403,"unit":"ns"},"median":{"estimate":16.316174280988502,"lower_bound":16.287176570941142,"upper_bound":16.343569329921333,"unit":"ns"},"median_abs_dev":{"estimate":0.11068983277483506,"lower_bound":0.07969048705748549,"upper_bound":0.13262844593893797,"unit":"ns"},"slope":{"estimate":16.394327306928087,"lower_bound":16.362275531519757,"upper_bound":16.42548219378983,"unit":"ns"},"change":{"mean":{"estimate":0.06222830549471414,"lower_bound":0.05923001779127912,"upper_bound":0.0650794289388914,"unit":"%"},"median":{"estimate":0.0648872129716116,"lower_bound":0.05914610671073439,"upper_bound":0.06783909245045594,"unit":"%"},"change":"Regressed"}} {"reason":"benchmark-complete","id":"Clone - Computed/String/16384","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/String/16384","iteration_count":[279,558,837,1116,1395,1674,1953,2232,2511,2790,3069,3348,3627,3906,4185,4464,4743,5022,5301,5580,5859,6138,6417,6696,6975,7254,7533,7812,8091,8370,8649,8928,9207,9486,9765,10044,10323,10602,10881,11160,11439,11718,11997,12276,12555,12834,13113,13392,13671,13950,14229,14508,14787,15066,15345,15624,15903,16182,16461,16740,17019,17298,17577,17856,18135,18414,18693,18972,19251,19530,19809,20088,20367,20646,20925,21204,21483,21762,22041,22320,22599,22878,23157,23436,23715,23994,24273,24552,24831,25110,25389,25668,25947,26226,26505,26784,27063,27342,27621,27900],"measured_values":[127962.0,279910.0,249151.0,304238.0,392020.0,468809.0,541357.0,619432.0,687985.0,779046.0,840260.0,954578.0,1018459.0,1051131.0,1136192.0,1208651.0,1310990.0,1363462.0,1442571.0,1513174.0,1589912.0,1685171.0,1760635.0,1813235.0,1925867.0,2024155.0,2063349.0,2119854.0,2194185.0,2267601.0,2337376.0,2410814.0,2501456.0,2575799.0,2657201.0,2729247.0,2826271.0,3011834.0,2981405.0,3045806.0,3121882.0,3257418.0,3438461.0,3431687.0,3522599.0,3738678.0,4035464.0,3901107.0,3966238.0,4057391.0,4290755.0,4516172.0,4778698.0,4984589.0,4876023.0,5117330.0,5214683.0,5335745.0,6609393.0,6015019.0,6202755.0,6158574.0,6685790.0,7395213.0,6893885.0,7403991.0,7997812.0,7803987.0,8255782.0,8598541.0,8811545.0,8727537.0,10133227.0,9783697.0,9991940.0,11193485.0,10526964.0,11808768.0,11144142.0,11329503.0,11994011.0,12019329.0,12248713.0,12596712.0,13227506.0,13198543.0,14032580.0,14048441.0,14443933.0,14865027.0,15377227.0,14916545.0,15128104.0,15302906.0,16642564.0,16158479.0,16672131.0,16893888.0,17274089.0,17125338.0],"unit":"ns","throughput":[],"typical":{"estimate":484.4165749767081,"lower_bound":453.9921929218876,"upper_bound":509.63521110563516,"unit":"ns"},"mean":{"estimate":381.26709949888686,"lower_bound":357.5723472402039,"upper_bound":406.06192500962743,"unit":"ns"},"median":{"estimate":314.5240594530917,"lower_bound":285.1188769414576,"upper_bound":380.14254204576787,"unit":"ns"},"median_abs_dev":{"estimate":64.25708767280884,"lower_bound":21.05114830010254,"upper_bound":157.50332215550787,"unit":"ns"},"slope":{"estimate":484.4165749767081,"lower_bound":453.9921929218876,"upper_bound":509.63521110563516,"unit":"ns"},"change":{"mean":{"estimate":-0.13203600945077443,"lower_bound":-0.21172745088257763,"upper_bound":-0.04175653927361444,"unit":"%"},"median":{"estimate":-0.1654065462377824,"lower_bound":-0.3731284769845614,"upper_bound":0.06876214336806785,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Clone - Computed/Rc/16384","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/Rc_str_/16384","iteration_count":[323,646,969,1292,1615,1938,2261,2584,2907,3230,3553,3876,4199,4522,4845,5168,5491,5814,6137,6460,6783,7106,7429,7752,8075,8398,8721,9044,9367,9690,10013,10336,10659,10982,11305,11628,11951,12274,12597,12920,13243,13566,13889,14212,14535,14858,15181,15504,15827,16150,16473,16796,17119,17442,17765,18088,18411,18734,19057,19380,19703,20026,20349,20672,20995,21318,21641,21964,22287,22610,22933,23256,23579,23902,24225,24548,24871,25194,25517,25840,26163,26486,26809,27132,27455,27778,28101,28424,28747,29070,29393,29716,30039,30362,30685,31008,31331,31654,31977,32300],"measured_values":[1012.0,1563.0,3077.0,2913.0,2979.0,3487.0,3988.0,4578.0,4880.0,5630.0,6021.0,6562.0,7633.0,7843.0,8198.0,8888.0,9819.0,11561.0,11261.0,12673.0,13534.0,13635.0,14556.0,15450.0,16492.0,16360.0,17553.0,19106.0,18967.0,20268.0,20230.0,20109.0,23295.0,24547.0,30477.0,25378.0,26758.0,27713.0,29044.0,30848.0,33713.0,40280.0,33030.0,34836.0,38513.0,41128.0,56267.0,44475.0,50073.0,48380.0,53470.0,58422.0,62971.0,61022.0,68770.0,71966.0,77216.0,78510.0,76314.0,90011.0,84731.0,94158.0,102314.0,110047.0,108365.0,111291.0,123525.0,117753.0,122463.0,141599.0,133583.0,139103.0,146478.0,135506.0,147100.0,159983.0,153921.0,165342.0,173126.0,161865.0,171388.0,169131.0,186051.0,176594.0,183949.0,203245.0,184128.0,189439.0,195452.0,189317.0,197333.0,210238.0,202404.0,211200.0,211230.0,218192.0,220336.0,233753.0,229164.0,224904.0],"unit":"ns","throughput":[],"typical":{"estimate":5.733942145935863,"lower_bound":5.371505657506651,"upper_bound":6.025772454197617,"unit":"ns"},"mean":{"estimate":4.008637679051837,"lower_bound":3.6205358982786926,"upper_bound":4.407069088933273,"unit":"ns"},"median":{"estimate":3.362122867722941,"lower_bound":2.649673202614379,"upper_bound":4.419272445820433,"unit":"ns"},"median_abs_dev":{"estimate":2.2769001919409795,"lower_bound":1.2606360709390267,"upper_bound":3.18384839432495,"unit":"ns"},"slope":{"estimate":5.733942145935863,"lower_bound":5.371505657506651,"upper_bound":6.025772454197617,"unit":"ns"},"change":{"mean":{"estimate":-0.06848848829605358,"lower_bound":-0.1895029709722278,"upper_bound":0.07635371142889308,"unit":"%"},"median":{"estimate":-0.10847572159281438,"lower_bound":-0.4122833648160972,"upper_bound":0.40813653735356037,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/Arc/16384","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/Arc_str_/16384","iteration_count":[322,644,966,1288,1610,1932,2254,2576,2898,3220,3542,3864,4186,4508,4830,5152,5474,5796,6118,6440,6762,7084,7406,7728,8050,8372,8694,9016,9338,9660,9982,10304,10626,10948,11270,11592,11914,12236,12558,12880,13202,13524,13846,14168,14490,14812,15134,15456,15778,16100,16422,16744,17066,17388,17710,18032,18354,18676,18998,19320,19642,19964,20286,20608,20930,21252,21574,21896,22218,22540,22862,23184,23506,23828,24150,24472,24794,25116,25438,25760,26082,26404,26726,27048,27370,27692,28014,28336,28658,28980,29302,29624,29946,30268,30590,30912,31234,31556,31878,32200],"measured_values":[3066.0,6522.0,5940.0,7735.0,9699.0,11000.0,12967.0,14108.0,15849.0,17905.0,19856.0,21269.0,22812.0,24367.0,25989.0,27812.0,29654.0,32261.0,33792.0,35658.0,37603.0,39307.0,41059.0,43561.0,45086.0,46114.0,48310.0,50787.0,51729.0,53631.0,55585.0,57278.0,59143.0,60367.0,63529.0,64011.0,65986.0,69844.0,69722.0,73108.0,75812.0,75882.0,79259.0,83247.0,83968.0,85715.0,89108.0,92193.0,93507.0,97794.0,99949.0,106842.0,103327.0,108615.0,111832.0,116992.0,122842.0,121428.0,126729.0,124575.0,130179.0,135545.0,138942.0,141447.0,147939.0,156795.0,155865.0,151995.0,160674.0,166644.0,172207.0,172797.0,173628.0,186132.0,187155.0,185731.0,199637.0,182584.0,206702.0,197455.0,209847.0,198869.0,212872.0,220909.0,222148.0,227502.0,209225.0,229896.0,247341.0,217321.0,236357.0,244413.0,248271.0,226479.0,248049.0,249725.0,240986.0,274591.0,256064.0,267268.0],"unit":"ns","throughput":[],"typical":{"estimate":7.411747850134971,"lower_bound":7.201491637435109,"upper_bound":7.588499816695367,"unit":"ns"},"mean":{"estimate":6.621457663280401,"lower_bound":6.406223412687244,"upper_bound":6.844860768757876,"unit":"ns"},"median":{"estimate":6.197808833678399,"lower_bound":5.860654779510147,"upper_bound":6.789471047886195,"unit":"ns"},"median_abs_dev":{"estimate":0.9935792425864146,"lower_bound":0.5404978335319527,"upper_bound":1.6430094928772776,"unit":"ns"},"slope":{"estimate":7.411747850134971,"lower_bound":7.201491637435109,"upper_bound":7.588499816695367,"unit":"ns"},"change":{"mean":{"estimate":-0.011009205359687746,"lower_bound":-0.05543060198744754,"upper_bound":0.037201190940438264,"unit":"%"},"median":{"estimate":-0.04843556182057229,"lower_bound":-0.1409074502330273,"upper_bound":0.08468795750153357,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/FlexStr/16384","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/FlexStr/16384","iteration_count":[60,120,180,240,300,360,420,480,540,600,660,720,780,840,900,960,1020,1080,1140,1200,1260,1320,1380,1440,1500,1560,1620,1680,1740,1800,1860,1920,1980,2040,2100,2160,2220,2280,2340,2400,2460,2520,2580,2640,2700,2760,2820,2880,2940,3000,3060,3120,3180,3240,3300,3360,3420,3480,3540,3600,3660,3720,3780,3840,3900,3960,4020,4080,4140,4200,4260,4320,4380,4440,4500,4560,4620,4680,4740,4800,4860,4920,4980,5040,5100,5160,5220,5280,5340,5400,5460,5520,5580,5640,5700,5760,5820,5880,5940,6000],"measured_values":[451.0,440.0,640.0,780.0,961.0,1142.0,1212.0,1355.0,1543.0,1693.0,1905.0,2263.0,2083.0,2185.0,2367.0,3198.0,2675.0,2806.0,2916.0,3036.0,3116.0,3297.0,5049.0,3526.0,3565.0,3567.0,3737.0,3736.0,3929.0,4099.0,4289.0,4468.0,4525.0,4597.0,5180.0,4848.0,4849.0,5130.0,5020.0,5019.0,5310.0,5180.0,5391.0,5611.0,5930.0,5760.0,6071.0,6102.0,6912.0,6491.0,6432.0,6712.0,8646.0,6641.0,7255.0,8476.0,8565.0,7305.0,7766.0,8116.0,7844.0,8154.0,8857.0,8657.0,10789.0,8726.0,9760.0,8974.0,10118.0,9549.0,9560.0,9800.0,12244.0,11211.0,11193.0,10752.0,10498.0,11610.0,11542.0,13874.0,14848.0,16230.0,11501.0,12022.0,12637.0,12463.0,16372.0,12772.0,13343.0,13065.0,13465.0,13344.0,18747.0,15119.0,14339.0,15291.0,14419.0,14737.0,16960.0,14958.0],"unit":"ns","throughput":[],"typical":{"estimate":2.491555194325403,"lower_bound":2.414935228121375,"upper_bound":2.571797769892419,"unit":"ns"},"mean":{"estimate":2.5582288986624517,"lower_bound":2.453185149969088,"upper_bound":2.693952689856793,"unit":"ns"},"median":{"estimate":2.431440896781913,"lower_bound":2.3390518707482997,"upper_bound":2.4873333333333334,"unit":"ns"},"median_abs_dev":{"estimate":0.2888603095381342,"lower_bound":0.2175642784904029,"upper_bound":0.39882142260093445,"unit":"ns"},"slope":{"estimate":2.491555194325403,"lower_bound":2.414935228121375,"upper_bound":2.571797769892419,"unit":"ns"},"change":{"mean":{"estimate":0.001052344434238739,"lower_bound":-0.07525123507168603,"upper_bound":0.08266742640683547,"unit":"%"},"median":{"estimate":0.04588321885395885,"lower_bound":0.002331576899405663,"upper_bound":0.08026253076787482,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/AFlexStr/16384","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/AFlexStr/16384","iteration_count":[60,120,180,240,300,360,420,480,540,600,660,720,780,840,900,960,1020,1080,1140,1200,1260,1320,1380,1440,1500,1560,1620,1680,1740,1800,1860,1920,1980,2040,2100,2160,2220,2280,2340,2400,2460,2520,2580,2640,2700,2760,2820,2880,2940,3000,3060,3120,3180,3240,3300,3360,3420,3480,3540,3600,3660,3720,3780,3840,3900,3960,4020,4080,4140,4200,4260,4320,4380,4440,4500,4560,4620,4680,4740,4800,4860,4920,4980,5040,5100,5160,5220,5280,5340,5400,5460,5520,5580,5640,5700,5760,5820,5880,5940,6000],"measured_values":[771.0,1134.0,1695.0,3737.0,2343.0,2777.0,7493.0,3555.0,5121.0,4388.0,4809.0,5090.0,5461.0,5741.0,6482.0,6884.0,7184.0,7553.0,7914.0,8296.0,8507.0,8976.0,9365.0,9556.0,10060.0,10651.0,10490.0,10750.0,11411.0,12053.0,12314.0,12845.0,13255.0,13276.0,13494.0,13968.0,14198.0,14199.0,17714.0,14578.0,15070.0,15429.0,16360.0,16473.0,16973.0,17102.0,17774.0,18356.0,18894.0,18743.0,19196.0,19929.0,20268.0,20210.0,20540.0,28924.0,20938.0,21682.0,21873.0,22683.0,23074.0,22091.0,22671.0,23454.0,23878.0,32541.0,24527.0,24435.0,24558.0,25077.0,25179.0,25679.0,27512.0,27001.0,27805.0,27582.0,27552.0,29394.0,29154.0,30559.0,29733.0,30409.0,31191.0,30888.0,30779.0,33413.0,31862.0,33794.0,32903.0,33253.0,33514.0,33422.0,34705.0,35406.0,35706.0,40286.0,37392.0,36620.0,37661.0,36589.0],"unit":"ns","throughput":[],"typical":{"estimate":6.289382345697256,"lower_bound":6.211951041690959,"upper_bound":6.386008874069369,"unit":"ns"},"mean":{"estimate":6.841717268584214,"lower_bound":6.54848584484636,"upper_bound":7.206848057591071,"unit":"ns"},"median":{"estimate":6.34066048077676,"lower_bound":6.2642105263157895,"upper_bound":6.425714285714286,"unit":"ns"},"median_abs_dev":{"estimate":0.34817158648328633,"lower_bound":0.23340712166285893,"upper_bound":0.48313932475589505,"unit":"ns"},"slope":{"estimate":6.289382345697256,"lower_bound":6.211951041690959,"upper_bound":6.386008874069369,"unit":"ns"},"change":{"mean":{"estimate":-0.05869314417824523,"lower_bound":-0.12875725023517606,"upper_bound":0.006932704903811349,"unit":"%"},"median":{"estimate":-0.04633962641573253,"lower_bound":-0.064969399189725,"upper_bound":-0.026197847667588037,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Clone - Computed/CompactStr/16384","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/CompactStr/16384","iteration_count":[249,498,747,996,1245,1494,1743,1992,2241,2490,2739,2988,3237,3486,3735,3984,4233,4482,4731,4980,5229,5478,5727,5976,6225,6474,6723,6972,7221,7470,7719,7968,8217,8466,8715,8964,9213,9462,9711,9960,10209,10458,10707,10956,11205,11454,11703,11952,12201,12450,12699,12948,13197,13446,13695,13944,14193,14442,14691,14940,15189,15438,15687,15936,16185,16434,16683,16932,17181,17430,17679,17928,18177,18426,18675,18924,19173,19422,19671,19920,20169,20418,20667,20916,21165,21414,21663,21912,22161,22410,22659,22908,23157,23406,23655,23904,24153,24402,24651,24900],"measured_values":[114377.0,194909.0,253279.0,330259.0,402260.0,468314.0,567805.0,593926.0,667174.0,734188.0,806209.0,871482.0,938757.0,987567.0,1036373.0,1108880.0,1167259.0,1277740.0,1325220.0,1392037.0,1463461.0,1511153.0,1587548.0,1645856.0,1716880.0,1792134.0,1851266.0,1935182.0,2020186.0,2068979.0,2139180.0,2271362.0,2324099.0,2327768.0,2398252.0,2497342.0,2519651.0,2675675.0,2716176.0,2767492.0,2848244.0,2910661.0,2995774.0,3102347.0,3227810.0,3219937.0,3358848.0,3398795.0,3874707.0,3608814.0,3758455.0,4107689.0,4015843.0,4041280.0,4204862.0,4896181.0,4588068.0,4601623.0,4655494.0,5068359.0,5340882.0,5360548.0,5305675.0,6055438.0,5800563.0,5793252.0,6183397.0,7134689.0,6625323.0,6597903.0,7440760.0,7355048.0,7287339.0,8071264.0,7730338.0,7950976.0,8788983.0,8574878.0,8737085.0,9589609.0,9644124.0,10126485.0,10137152.0,10709850.0,10656069.0,11414034.0,11464949.0,11841232.0,11479626.0,12536008.0,11763444.0,12853176.0,13304091.0,13047486.0,13441011.0,13850776.0,14643607.0,14508284.0,14246377.0,14949488.0],"unit":"ns","throughput":[],"typical":{"estimate":452.33319735570035,"lower_bound":423.2328997508397,"upper_bound":477.1264294520057,"unit":"ns"},"mean":{"estimate":367.2376779793573,"lower_bound":347.3961976326471,"upper_bound":387.97739180758606,"unit":"ns"},"median":{"estimate":318.10036274584616,"lower_bound":295.9646428852665,"upper_bound":351.13174125071714,"unit":"ns"},"median_abs_dev":{"estimate":60.16380111638056,"lower_bound":29.73451125096046,"upper_bound":105.13094163386977,"unit":"ns"},"slope":{"estimate":452.33319735570035,"lower_bound":423.2328997508397,"upper_bound":477.1264294520057,"unit":"ns"},"change":{"mean":{"estimate":-0.13512671336596194,"lower_bound":-0.20578068320790233,"upper_bound":-0.05571320051325899,"unit":"%"},"median":{"estimate":-0.07359540949738574,"lower_bound":-0.29152485309957477,"upper_bound":0.05792678039118826,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Clone - Computed/KString/16384","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/KString/16384","iteration_count":[276,552,828,1104,1380,1656,1932,2208,2484,2760,3036,3312,3588,3864,4140,4416,4692,4968,5244,5520,5796,6072,6348,6624,6900,7176,7452,7728,8004,8280,8556,8832,9108,9384,9660,9936,10212,10488,10764,11040,11316,11592,11868,12144,12420,12696,12972,13248,13524,13800,14076,14352,14628,14904,15180,15456,15732,16008,16284,16560,16836,17112,17388,17664,17940,18216,18492,18768,19044,19320,19596,19872,20148,20424,20700,20976,21252,21528,21804,22080,22356,22632,22908,23184,23460,23736,24012,24288,24564,24840,25116,25392,25668,25944,26220,26496,26772,27048,27324,27600],"measured_values":[151357.0,297243.0,325265.0,334284.0,403042.0,489796.0,558177.0,627910.0,708740.0,772482.0,859107.0,928949.0,1012056.0,1104962.0,1147403.0,1233365.0,1325281.0,1396976.0,1476736.0,1536671.0,1609478.0,1701762.0,1765525.0,1825186.0,1907230.0,1981436.0,2123462.0,2179155.0,2251182.0,2300277.0,2356382.0,2448075.0,2514734.0,2663865.0,2693068.0,2797649.0,2927992.0,2945446.0,3055814.0,3129213.0,3207963.0,3313026.0,3457949.0,3536708.0,3690919.0,3865568.0,3871601.0,3997518.0,4154517.0,4320980.0,4460616.0,4829977.0,5097504.0,4887214.0,4986100.0,5248318.0,5297572.0,6125659.0,5826657.0,6379519.0,6305759.0,6882391.0,6940279.0,6915255.0,7349850.0,8097631.0,8271703.0,7888425.0,8895403.0,8726583.0,8653516.0,10183151.0,10111164.0,10083014.0,11474108.0,10623265.0,10823495.0,10906210.0,11996204.0,11491408.0,12113547.0,12424835.0,12227894.0,12709247.0,13500123.0,13237615.0,14167356.0,13722995.0,14329934.0,15011515.0,14811646.0,15516892.0,16593722.0,16120855.0,16607949.0,16800503.0,16834217.0,17363637.0,17248451.0,18092089.0],"unit":"ns","throughput":[],"typical":{"estimate":500.86650665098955,"lower_bound":469.76523995028896,"upper_bound":526.7118544089276,"unit":"ns"},"mean":{"estimate":395.9992460160065,"lower_bound":371.39531055788245,"upper_bound":421.4508709100569,"unit":"ns"},"median":{"estimate":332.5009723066788,"lower_bound":297.114413094871,"upper_bound":392.8321256038647,"unit":"ns"},"median_abs_dev":{"estimate":81.17457028190472,"lower_bound":29.574858467531065,"upper_bound":167.6912393394615,"unit":"ns"},"slope":{"estimate":500.86650665098955,"lower_bound":469.76523995028896,"upper_bound":526.7118544089276,"unit":"ns"},"change":{"mean":{"estimate":-0.12515693526770288,"lower_bound":-0.2065763435620435,"upper_bound":-0.03632337938903277,"unit":"%"},"median":{"estimate":-0.13093473231842923,"lower_bound":-0.3947272936462618,"upper_bound":0.15881376482569892,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Clone - Computed/SmartString/16384","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/SmartString/16384","iteration_count":[279,558,837,1116,1395,1674,1953,2232,2511,2790,3069,3348,3627,3906,4185,4464,4743,5022,5301,5580,5859,6138,6417,6696,6975,7254,7533,7812,8091,8370,8649,8928,9207,9486,9765,10044,10323,10602,10881,11160,11439,11718,11997,12276,12555,12834,13113,13392,13671,13950,14229,14508,14787,15066,15345,15624,15903,16182,16461,16740,17019,17298,17577,17856,18135,18414,18693,18972,19251,19530,19809,20088,20367,20646,20925,21204,21483,21762,22041,22320,22599,22878,23157,23436,23715,23994,24273,24552,24831,25110,25389,25668,25947,26226,26505,26784,27063,27342,27621,27900],"measured_values":[120639.0,223444.0,235225.0,303616.0,377017.0,451866.0,527688.0,597429.0,670046.0,749330.0,821635.0,899372.0,969076.0,1051791.0,1148003.0,1209490.0,1291635.0,1361888.0,1436571.0,1533361.0,1618284.0,1711771.0,1799098.0,1838532.0,1907424.0,2028264.0,2046455.0,2130624.0,2227016.0,2276920.0,2419463.0,2435310.0,2522536.0,2568444.0,2761158.0,2770876.0,2876508.0,2952932.0,3008528.0,3101192.0,3206671.0,3303627.0,3350374.0,3505018.0,3819601.0,3757425.0,3834682.0,3899805.0,3996889.0,4304048.0,4765242.0,4909907.0,4706422.0,4812893.0,4886253.0,5684115.0,5580775.0,5553545.0,5716495.0,6598384.0,6362568.0,6318114.0,6418372.0,7333044.0,7240939.0,7496683.0,7651176.0,8403914.0,8484016.0,8504735.0,9199991.0,9146983.0,10378811.0,9814275.0,9916269.0,10924144.0,10530089.0,11343489.0,12724945.0,11946560.0,12105661.0,12435558.0,12486973.0,12866013.0,12900797.0,13068754.0,13400964.0,14519262.0,14650959.0,14655400.0,15355767.0,15210209.0,15563129.0,17296951.0,17549171.0,17523983.0,17596269.0,17408273.0,18682896.0,18203987.0],"unit":"ns","throughput":[],"typical":{"estimate":497.66211602479456,"lower_bound":464.67075404086233,"upper_bound":525.8827674121258,"unit":"ns"},"mean":{"estimate":385.96116761314863,"lower_bound":361.00034825813486,"upper_bound":412.0686224369849,"unit":"ns"},"median":{"estimate":318.9401644883724,"lower_bound":282.7606758832565,"upper_bound":379.7099125139708,"unit":"ns"},"median_abs_dev":{"estimate":72.22018615818874,"lower_bound":21.502053722894154,"upper_bound":156.6981215990177,"unit":"ns"},"slope":{"estimate":497.66211602479456,"lower_bound":464.67075404086233,"upper_bound":525.8827674121258,"unit":"ns"},"change":{"mean":{"estimate":-0.12050991319082083,"lower_bound":-0.20379408584870373,"upper_bound":-0.02297104565918467,"unit":"%"},"median":{"estimate":-0.15117236700737735,"lower_bound":-0.343830912990745,"upper_bound":0.13798121642965633,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Clone - Computed/SmolStr/16384","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed/SmolStr/16384","iteration_count":[321,642,963,1284,1605,1926,2247,2568,2889,3210,3531,3852,4173,4494,4815,5136,5457,5778,6099,6420,6741,7062,7383,7704,8025,8346,8667,8988,9309,9630,9951,10272,10593,10914,11235,11556,11877,12198,12519,12840,13161,13482,13803,14124,14445,14766,15087,15408,15729,16050,16371,16692,17013,17334,17655,17976,18297,18618,18939,19260,19581,19902,20223,20544,20865,21186,21507,21828,22149,22470,22791,23112,23433,23754,24075,24396,24717,25038,25359,25680,26001,26322,26643,26964,27285,27606,27927,28248,28569,28890,29211,29532,29853,30174,30495,30816,31137,31458,31779,32100],"measured_values":[5700.0,11564.0,15940.0,21119.0,26420.0,31388.0,36619.0,41738.0,46740.0,51567.0,61115.0,61886.0,67838.0,72920.0,78508.0,83579.0,89519.0,94750.0,100220.0,105189.0,109828.0,115049.0,121749.0,132962.0,131119.0,135718.0,140497.0,146259.0,152083.0,157666.0,162517.0,167596.0,175534.0,178719.0,183777.0,190642.0,195569.0,199930.0,205438.0,212733.0,231590.0,228532.0,228614.0,231899.0,238671.0,243802.0,249162.0,263558.0,261896.0,270252.0,275252.0,279862.0,285892.0,293968.0,295449.0,301622.0,310017.0,313092.0,324233.0,328413.0,334543.0,343261.0,352675.0,358040.0,357686.0,369317.0,385190.0,385411.0,389927.0,402863.0,402573.0,412211.0,420284.0,415536.0,426650.0,433983.0,436386.0,441256.0,460392.0,461653.0,464517.0,484598.0,484807.0,487583.0,491432.0,494907.0,499203.0,507550.0,508866.0,517619.0,517638.0,525234.0,542577.0,539512.0,537297.0,546114.0,556012.0,557996.0,567044.0,576192.0],"unit":"ns","throughput":[],"typical":{"estimate":17.574233459334216,"lower_bound":17.45608565558612,"upper_bound":17.670315024415043,"unit":"ns"},"mean":{"estimate":17.063241089616277,"lower_bound":16.929825537149647,"upper_bound":17.197719858813095,"unit":"ns"},"median":{"estimate":16.947247401994083,"lower_bound":16.570754271688852,"upper_bound":17.343393042575286,"unit":"ns"},"median_abs_dev":{"estimate":0.9576162158079715,"lower_bound":0.5003277195027312,"upper_bound":1.0641870380014755,"unit":"ns"},"slope":{"estimate":17.574233459334216,"lower_bound":17.45608565558612,"upper_bound":17.670315024415043,"unit":"ns"},"change":{"mean":{"estimate":0.04568780959049623,"lower_bound":0.028885734011990818,"upper_bound":0.061742012263548376,"unit":"%"},"median":{"estimate":0.041010076384145,"lower_bound":0.01422857025528601,"upper_bound":0.0850594457600411,"unit":"%"},"change":"Regressed"}} {"reason":"group-complete","group_name":"Clone - Computed","benchmarks":["Clone - Computed/String/0","Clone - Computed/Rc/0","Clone - Computed/Arc/0","Clone - Computed/FlexStr/0","Clone - Computed/AFlexStr/0","Clone - Computed/CompactStr/0","Clone - Computed/KString/0","Clone - Computed/SmartString/0","Clone - Computed/SmolStr/0","Clone - Computed/String/10","Clone - Computed/Rc/10","Clone - Computed/Arc/10","Clone - Computed/FlexStr/10","Clone - Computed/AFlexStr/10","Clone - Computed/CompactStr/10","Clone - Computed/KString/10","Clone - Computed/SmartString/10","Clone - Computed/SmolStr/10","Clone - Computed/String/20","Clone - Computed/Rc/20","Clone - Computed/Arc/20","Clone - Computed/FlexStr/20","Clone - Computed/AFlexStr/20","Clone - Computed/CompactStr/20","Clone - Computed/KString/20","Clone - Computed/SmartString/20","Clone - Computed/SmolStr/20","Clone - Computed/String/100","Clone - Computed/Rc/100","Clone - Computed/Arc/100","Clone - Computed/FlexStr/100","Clone - Computed/AFlexStr/100","Clone - Computed/CompactStr/100","Clone - Computed/KString/100","Clone - Computed/SmartString/100","Clone - Computed/SmolStr/100","Clone - Computed/String/1000","Clone - Computed/Rc/1000","Clone - Computed/Arc/1000","Clone - Computed/FlexStr/1000","Clone - Computed/AFlexStr/1000","Clone - Computed/CompactStr/1000","Clone - Computed/KString/1000","Clone - Computed/SmartString/1000","Clone - Computed/SmolStr/1000","Clone - Computed/String/16384","Clone - Computed/Rc/16384","Clone - Computed/Arc/16384","Clone - Computed/FlexStr/16384","Clone - Computed/AFlexStr/16384","Clone - Computed/CompactStr/16384","Clone - Computed/KString/16384","Clone - Computed/SmartString/16384","Clone - Computed/SmolStr/16384"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Clone - Computed"} ================================================ FILE: benchmarks/archive/0.8.1/convert.json ================================================ {"reason":"benchmark-complete","id":"Convert/String/bool","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_String_bool","iteration_count":[58218,116436,174654,232872,291090,349308,407526,465744,523962,582180,640398,698616,756834,815052,873270,931488,989706,1047924,1106142,1164360,1222578,1280796,1339014,1397232,1455450,1513668,1571886,1630104,1688322,1746540,1804758,1862976,1921194,1979412,2037630,2095848,2154066,2212284,2270502,2328720,2386938,2445156,2503374,2561592,2619810,2678028,2736246,2794464,2852682,2910900,2969118,3027336,3085554,3143772,3201990,3260208,3318426,3376644,3434862,3493080,3551298,3609516,3667734,3725952,3784170,3842388,3900606,3958824,4017042,4075260,4133478,4191696,4249914,4308132,4366350,4424568,4482786,4541004,4599222,4657440,4715658,4773876,4832094,4890312,4948530,5006748,5064966,5123184,5181402,5239620,5297838,5356056,5414274,5472492,5530710,5588928,5647146,5705364,5763582,5821800],"measured_values":[997288.0,1999697.0,3006162.0,4002699.0,4983035.0,5975735.0,6969327.0,7821119.0,8722546.0,9811919.0,10829616.0,11854657.0,12841876.0,13805691.0,14795445.0,16352844.0,16595483.0,17677132.0,18739765.0,19669264.0,20669528.0,21706722.0,22639689.0,23671532.0,24554895.0,25694463.0,26640875.0,28420615.0,28702779.0,29599788.0,30566418.0,31622207.0,32485963.0,33476308.0,34706768.0,35433294.0,36902175.0,37958475.0,38779159.0,39818036.0,40792951.0,41900158.0,42808428.0,43870019.0,44796914.0,45439300.0,46603174.0,47265117.0,48348389.0,49404568.0,50296688.0,51333380.0,52352129.0,53508890.0,54631276.0,55778036.0,56436083.0,57434683.0,58297918.0,59212029.0,60732398.0,61036864.0,61853331.0,64096698.0,64007278.0,65323431.0,65929449.0,66892672.0,68054332.0,69923441.0,70567360.0,71262677.0,71765980.0,73244730.0,73978640.0,75359284.0,76861187.0,76591989.0,78428636.0,79146705.0,80379149.0,80947716.0,82039783.0,83197055.0,83951263.0,85190970.0,86217695.0,86852076.0,88017953.0,88697610.0,90147345.0,91010651.0,92633823.0,93058177.0,96280840.0,95558411.0,96192722.0,97016553.0,97389538.0,99681058.0],"unit":"ns","throughput":[],"typical":{"estimate":17.016274038819954,"lower_bound":16.990731827056923,"upper_bound":17.046429896834933,"unit":"ns"},"mean":{"estimate":17.00917871644945,"lower_bound":16.98491931300129,"upper_bound":17.03459932887154,"unit":"ns"},"median":{"estimate":16.989693656314913,"lower_bound":16.966849065030136,"upper_bound":17.009755146609525,"unit":"ns"},"median_abs_dev":{"estimate":0.10910514563108192,"lower_bound":0.06807890148144016,"upper_bound":0.1369219214421145,"unit":"ns"},"slope":{"estimate":17.016274038819954,"lower_bound":16.990731827056923,"upper_bound":17.046429896834933,"unit":"ns"},"change":{"mean":{"estimate":0.011967332332913472,"lower_bound":0.007913235823102079,"upper_bound":0.015998878827352403,"unit":"%"},"median":{"estimate":0.023600919209710858,"lower_bound":0.00791334420594092,"upper_bound":0.02649244857109445,"unit":"%"},"change":"NoChange"}} {"reason":"group-complete","group_name":"Convert/String/bool","benchmarks":["Convert/String/bool"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_String_bool"} {"reason":"benchmark-complete","id":"Convert/String/char","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_String_char","iteration_count":[93945,187890,281835,375780,469725,563670,657615,751560,845505,939450,1033395,1127340,1221285,1315230,1409175,1503120,1597065,1691010,1784955,1878900,1972845,2066790,2160735,2254680,2348625,2442570,2536515,2630460,2724405,2818350,2912295,3006240,3100185,3194130,3288075,3382020,3475965,3569910,3663855,3757800,3851745,3945690,4039635,4133580,4227525,4321470,4415415,4509360,4603305,4697250,4791195,4885140,4979085,5073030,5166975,5260920,5354865,5448810,5542755,5636700,5730645,5824590,5918535,6012480,6106425,6200370,6294315,6388260,6482205,6576150,6670095,6764040,6857985,6951930,7045875,7139820,7233765,7327710,7421655,7515600,7609545,7703490,7797435,7891380,7985325,8079270,8173215,8267160,8361105,8455050,8548995,8642940,8736885,8830830,8924775,9018720,9112665,9206610,9300555,9394500],"measured_values":[970297.0,1947026.0,2923565.0,3893363.0,4968397.0,5962260.0,6949389.0,7917632.0,8919609.0,9916717.0,10950576.0,11906235.0,12865030.0,13809078.0,14814331.0,15859380.0,16865335.0,17759037.0,18803445.0,20254062.0,20750541.0,21741438.0,22691016.0,23701088.0,24762809.0,25708329.0,26608934.0,27653031.0,28742806.0,29586432.0,30580856.0,31625062.0,32669891.0,33593721.0,34619923.0,35552830.0,36755046.0,37841633.0,38912271.0,39911033.0,40874697.0,41827561.0,42833205.0,43879355.0,44879551.0,45873262.0,46898302.0,47878329.0,48902778.0,49901149.0,50885202.0,51913669.0,52837839.0,53757089.0,54740942.0,55857667.0,56849816.0,57615305.0,58720940.0,59723527.0,60504566.0,61405051.0,62335443.0,63358320.0,64244739.0,65312179.0,66377117.0,67380615.0,68118374.0,69111654.0,70735659.0,71620785.0,73217559.0,73344148.0,74408693.0,75040500.0,76069178.0,77275532.0,78084916.0,79101199.0,80030890.0,81049999.0,81973287.0,83303617.0,84926409.0,85105658.0,86074934.0,86990106.0,87862418.0,89021885.0,89882403.0,90910770.0,91900585.0,93334099.0,93826482.0,94830533.0,96236986.0,96990202.0,98130161.0,99331445.0],"unit":"ns","throughput":[],"typical":{"estimate":10.5516263531315,"lower_bound":10.54271618264416,"upper_bound":10.561708397837991,"unit":"ns"},"mean":{"estimate":10.549887892432734,"lower_bound":10.537693629952102,"upper_bound":10.561824450620025,"unit":"ns"},"median":{"estimate":10.544550528532493,"lower_bound":10.533036088185007,"upper_bound":10.556973927018685,"unit":"ns"},"median_abs_dev":{"estimate":0.04615878082064176,"lower_bound":0.031774697319689106,"upper_bound":0.060458574892026704,"unit":"ns"},"slope":{"estimate":10.5516263531315,"lower_bound":10.54271618264416,"upper_bound":10.561708397837991,"unit":"ns"},"change":{"mean":{"estimate":0.002225410545571238,"lower_bound":0.0005625868799160942,"upper_bound":0.003876100383476499,"unit":"%"},"median":{"estimate":0.0028106852227933743,"lower_bound":0.0005360214347840397,"upper_bound":0.004529432053115068,"unit":"%"},"change":"NoChange"}} {"reason":"group-complete","group_name":"Convert/String/char","benchmarks":["Convert/String/char"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_String_char"} {"reason":"benchmark-complete","id":"Convert/String/i8","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_String_i8","iteration_count":[77856,155712,233568,311424,389280,467136,544992,622848,700704,778560,856416,934272,1012128,1089984,1167840,1245696,1323552,1401408,1479264,1557120,1634976,1712832,1790688,1868544,1946400,2024256,2102112,2179968,2257824,2335680,2413536,2491392,2569248,2647104,2724960,2802816,2880672,2958528,3036384,3114240,3192096,3269952,3347808,3425664,3503520,3581376,3659232,3737088,3814944,3892800,3970656,4048512,4126368,4204224,4282080,4359936,4437792,4515648,4593504,4671360,4749216,4827072,4904928,4982784,5060640,5138496,5216352,5294208,5372064,5449920,5527776,5605632,5683488,5761344,5839200,5917056,5994912,6072768,6150624,6228480,6306336,6384192,6462048,6539904,6617760,6695616,6773472,6851328,6929184,7007040,7084896,7162752,7240608,7318464,7396320,7474176,7552032,7629888,7707744,7785600],"measured_values":[992699.0,1987463.0,2987617.0,3949820.0,4926187.0,5906975.0,6923661.0,7919656.0,8911655.0,9854550.0,10828263.0,11817316.0,12812981.0,13832843.0,14819220.0,15745213.0,16720200.0,17772253.0,18744653.0,19751951.0,20759438.0,21740566.0,22770786.0,23739291.0,24649565.0,25590165.0,26591732.0,27532603.0,28613850.0,29774889.0,30680945.0,31531235.0,32490220.0,33605913.0,34451765.0,35688767.0,36566009.0,37642927.0,38437201.0,39339209.0,40547007.0,41477869.0,42478504.0,43553218.0,44405723.0,45552485.0,46758067.0,47664443.0,48701748.0,49722740.0,50656068.0,51449370.0,52373100.0,53536371.0,54671211.0,55869360.0,56468754.0,57684807.0,58470245.0,59532265.0,60424314.0,61282469.0,62665257.0,63630835.0,64417396.0,65345863.0,66004290.0,67139019.0,68052789.0,69148574.0,69936846.0,71000560.0,72000033.0,72927179.0,74231078.0,75242964.0,75963698.0,77004709.0,78244266.0,78798847.0,80204068.0,80978403.0,82002604.0,82858122.0,83994254.0,84971304.0,85588242.0,86863848.0,87603207.0,88804593.0,89603736.0,90695764.0,91705135.0,92606772.0,93756850.0,94641455.0,96068758.0,97036720.0,98120853.0,98778909.0],"unit":"ns","throughput":[],"typical":{"estimate":12.692756788993952,"lower_bound":12.684254384630707,"upper_bound":12.70187801346327,"unit":"ns"},"mean":{"estimate":12.695349124259044,"lower_bound":12.687397993023422,"upper_bound":12.703490652469089,"unit":"ns"},"median":{"estimate":12.689652568349848,"lower_bound":12.681021680173963,"upper_bound":12.698946192963556,"unit":"ns"},"median_abs_dev":{"estimate":0.04307607625672619,"lower_bound":0.03547078758843719,"upper_bound":0.05120599145877006,"unit":"ns"},"slope":{"estimate":12.692756788993952,"lower_bound":12.684254384630707,"upper_bound":12.70187801346327,"unit":"ns"},"change":{"mean":{"estimate":0.5519238687615806,"lower_bound":0.5421264117248435,"upper_bound":0.5612756814022855,"unit":"%"},"median":{"estimate":0.5770072689812649,"lower_bound":0.5713382926474164,"upper_bound":0.5815221187898214,"unit":"%"},"change":"Regressed"}} {"reason":"group-complete","group_name":"Convert/String/i8","benchmarks":["Convert/String/i8"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_String_i8"} {"reason":"benchmark-complete","id":"Convert/String/i16","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_String_i16","iteration_count":[47277,94554,141831,189108,236385,283662,330939,378216,425493,472770,520047,567324,614601,661878,709155,756432,803709,850986,898263,945540,992817,1040094,1087371,1134648,1181925,1229202,1276479,1323756,1371033,1418310,1465587,1512864,1560141,1607418,1654695,1701972,1749249,1796526,1843803,1891080,1938357,1985634,2032911,2080188,2127465,2174742,2222019,2269296,2316573,2363850,2411127,2458404,2505681,2552958,2600235,2647512,2694789,2742066,2789343,2836620,2883897,2931174,2978451,3025728,3073005,3120282,3167559,3214836,3262113,3309390,3356667,3403944,3451221,3498498,3545775,3593052,3640329,3687606,3734883,3782160,3829437,3876714,3923991,3971268,4018545,4065822,4113099,4160376,4207653,4254930,4302207,4349484,4396761,4444038,4491315,4538592,4585869,4633146,4680423,4727700],"measured_values":[1016665.0,1976712.0,2991415.0,3987200.0,4967166.0,5962640.0,6937957.0,7856577.0,8878321.0,9938940.0,10838643.0,11824009.0,12846605.0,13801042.0,14769265.0,15710138.0,16751409.0,17771360.0,18716209.0,19704561.0,20760881.0,21805098.0,22661810.0,23638420.0,24703677.0,25706225.0,26624043.0,28502981.0,28676470.0,29566344.0,30561308.0,31509734.0,32602163.0,33550699.0,34532368.0,35340718.0,36352003.0,37474668.0,38395722.0,39467884.0,40389979.0,41291636.0,42413481.0,43332861.0,44437823.0,45201209.0,46145267.0,47526031.0,48294426.0,49303036.0,51007654.0,52025391.0,53949464.0,54339212.0,55291205.0,56166993.0,57064823.0,58064406.0,59173856.0,60035268.0,61046653.0,62092002.0,63094861.0,64188261.0,65018984.0,65991215.0,67235090.0,68036077.0,68925782.0,70050311.0,71241416.0,72164644.0,73095337.0,74066557.0,75032074.0,75936848.0,77175843.0,78055369.0,79100718.0,80662907.0,81392668.0,82516185.0,83293838.0,84651209.0,85365010.0,86880319.0,87101548.0,88033352.0,89397105.0,90186168.0,91247619.0,92292497.0,93234371.0,94186433.0,95175877.0,96288954.0,97225718.0,98301435.0,99234222.0,100224496.0],"unit":"ns","throughput":[],"typical":{"estimate":21.167002290132153,"lower_bound":21.141553448010658,"upper_bound":21.188766120528527,"unit":"ns"},"mean":{"estimate":21.055813998635223,"lower_bound":21.018670768721268,"upper_bound":21.09364235134562,"unit":"ns"},"median":{"estimate":21.14173854697816,"lower_bound":20.94307265336915,"upper_bound":21.167624128541544,"unit":"ns"},"median_abs_dev":{"estimate":0.21231714963023546,"lower_bound":0.10162684423083011,"upper_bound":0.2903602210520465,"unit":"ns"},"slope":{"estimate":21.167002290132153,"lower_bound":21.141553448010658,"upper_bound":21.188766120528527,"unit":"ns"},"change":{"mean":{"estimate":-0.03788850199606608,"lower_bound":-0.047649358596002854,"upper_bound":-0.030714854700747633,"unit":"%"},"median":{"estimate":-0.029223416622716658,"lower_bound":-0.039639434653548467,"upper_bound":-0.022033931788221772,"unit":"%"},"change":"Improved"}} {"reason":"group-complete","group_name":"Convert/String/i16","benchmarks":["Convert/String/i16"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_String_i16"} {"reason":"benchmark-complete","id":"Convert/String/i32","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_String_i32","iteration_count":[25713,51426,77139,102852,128565,154278,179991,205704,231417,257130,282843,308556,334269,359982,385695,411408,437121,462834,488547,514260,539973,565686,591399,617112,642825,668538,694251,719964,745677,771390,797103,822816,848529,874242,899955,925668,951381,977094,1002807,1028520,1054233,1079946,1105659,1131372,1157085,1182798,1208511,1234224,1259937,1285650,1311363,1337076,1362789,1388502,1414215,1439928,1465641,1491354,1517067,1542780,1568493,1594206,1619919,1645632,1671345,1697058,1722771,1748484,1774197,1799910,1825623,1851336,1877049,1902762,1928475,1954188,1979901,2005614,2031327,2057040,2082753,2108466,2134179,2159892,2185605,2211318,2237031,2262744,2288457,2314170,2339883,2365596,2391309,2417022,2442735,2468448,2494161,2519874,2545587,2571300],"measured_values":[999272.0,2003724.0,2949215.0,3947114.0,4968338.0,5964413.0,6945151.0,7950945.0,8934137.0,9890427.0,10813916.0,12076868.0,12851254.0,13822834.0,14840911.0,15815798.0,16799460.0,17889905.0,18854181.0,19762791.0,20815895.0,21779530.0,22803999.0,23788143.0,24594420.0,25798420.0,26757146.0,27681565.0,28654468.0,29689557.0,30767809.0,31610434.0,32529286.0,33607015.0,34622618.0,35682867.0,36573512.0,37595628.0,38535367.0,39691326.0,40509515.0,41656577.0,42901084.0,43570952.0,44505593.0,45529671.0,46443762.0,47575505.0,48534541.0,49532140.0,50514249.0,51402281.0,52357790.0,53401367.0,54304827.0,55481825.0,56425231.0,57325887.0,58562469.0,59241875.0,60584939.0,61425911.0,62377693.0,63183378.0,64191667.0,65235855.0,66249425.0,67342644.0,68407891.0,69265766.0,70351592.0,71228612.0,72049226.0,73146984.0,74093618.0,75056540.0,75911659.0,77190270.0,78135590.0,79094206.0,80024898.0,80864127.0,82101891.0,83188919.0,84022998.0,85039123.0,86054476.0,86982732.0,87871396.0,89046511.0,90122869.0,91138231.0,91957693.0,92898925.0,93881075.0,94995385.0,95955643.0,96943403.0,98063645.0,100565402.0],"unit":"ns","throughput":[],"typical":{"estimate":38.488181295260844,"lower_bound":38.45895032111215,"upper_bound":38.533010543748546,"unit":"ns"},"mean":{"estimate":38.50164589583987,"lower_bound":38.47621826140009,"upper_bound":38.53014499837014,"unit":"ns"},"median":{"estimate":38.47182030390998,"lower_bound":38.45515451560306,"upper_bound":38.49352921349771,"unit":"ns"},"median_abs_dev":{"estimate":0.07320263222713096,"lower_bound":0.055214584932947904,"upper_bound":0.09331650331052535,"unit":"ns"},"slope":{"estimate":38.488181295260844,"lower_bound":38.45895032111215,"upper_bound":38.533010543748546,"unit":"ns"},"change":{"mean":{"estimate":0.229317780954988,"lower_bound":0.2269443224181291,"upper_bound":0.2314644227625892,"unit":"%"},"median":{"estimate":0.23249385982443416,"lower_bound":0.2312521879565588,"upper_bound":0.23363058181315322,"unit":"%"},"change":"Regressed"}} {"reason":"group-complete","group_name":"Convert/String/i32","benchmarks":["Convert/String/i32"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_String_i32"} {"reason":"benchmark-complete","id":"Convert/String/i64","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_String_i64","iteration_count":[27248,54496,81744,108992,136240,163488,190736,217984,245232,272480,299728,326976,354224,381472,408720,435968,463216,490464,517712,544960,572208,599456,626704,653952,681200,708448,735696,762944,790192,817440,844688,871936,899184,926432,953680,980928,1008176,1035424,1062672,1089920,1117168,1144416,1171664,1198912,1226160,1253408,1280656,1307904,1335152,1362400,1389648,1416896,1444144,1471392,1498640,1525888,1553136,1580384,1607632,1634880,1662128,1689376,1716624,1743872,1771120,1798368,1825616,1852864,1880112,1907360,1934608,1961856,1989104,2016352,2043600,2070848,2098096,2125344,2152592,2179840,2207088,2234336,2261584,2288832,2316080,2343328,2370576,2397824,2425072,2452320,2479568,2506816,2534064,2561312,2588560,2615808,2643056,2670304,2697552,2724800],"measured_values":[964046.0,1930806.0,2899310.0,3840512.0,4777036.0,5735300.0,6684527.0,7679502.0,8679385.0,10483530.0,10616743.0,11577292.0,12628291.0,14365872.0,14476041.0,15429957.0,16319201.0,18702653.0,18318646.0,19279085.0,21098360.0,21324648.0,22205466.0,24660846.0,23947936.0,24958159.0,25997397.0,27824015.0,27931669.0,29916898.0,30454786.0,31573665.0,32029768.0,34235786.0,34524081.0,34571752.0,36628116.0,36336965.0,38564111.0,40018445.0,39679153.0,40861912.0,42110436.0,43167979.0,44064487.0,45251996.0,46119087.0,45968843.0,48180831.0,49111514.0,50030604.0,52153113.0,51966249.0,52642950.0,54222400.0,54462156.0,56485075.0,56407458.0,57784576.0,59406467.0,59083897.0,61066640.0,61259335.0,62298613.0,63272006.0,64380105.0,65218642.0,66217073.0,66934772.0,68900003.0,68033242.0,68837736.0,70699500.0,72674610.0,72911539.0,74656133.0,75916719.0,75748691.0,77751854.0,80156478.0,80697722.0,79823888.0,81497817.0,81764763.0,83762084.0,83463138.0,86234546.0,85165382.0,87145792.0,87314731.0,90024152.0,90151593.0,90258705.0,91108094.0,93285999.0,93966096.0,93911402.0,96931881.0,97404707.0,97482564.0],"unit":"ns","throughput":[],"typical":{"estimate":35.90671191803232,"lower_bound":35.81883742524554,"upper_bound":35.99598346328566,"unit":"ns"},"mean":{"estimate":35.8910753621753,"lower_bound":35.77329427632392,"upper_bound":36.016392456594076,"unit":"ns"},"median":{"estimate":35.73184332931969,"lower_bound":35.6663895350588,"upper_bound":35.964013090342085,"unit":"ns"},"median_abs_dev":{"estimate":0.4922073475019808,"lower_bound":0.4013934765712713,"upper_bound":0.5916961731493685,"unit":"ns"},"slope":{"estimate":35.90671191803232,"lower_bound":35.81883742524554,"upper_bound":35.99598346328566,"unit":"ns"},"change":{"mean":{"estimate":-0.17228108072133663,"lower_bound":-0.174882861382695,"upper_bound":-0.16977380007896664,"unit":"%"},"median":{"estimate":-0.17589178386076687,"lower_bound":-0.17733258063740653,"upper_bound":-0.17056906940539796,"unit":"%"},"change":"Improved"}} {"reason":"group-complete","group_name":"Convert/String/i64","benchmarks":["Convert/String/i64"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_String_i64"} {"reason":"benchmark-complete","id":"Convert/String/i128","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_String_i128","iteration_count":[15633,31266,46899,62532,78165,93798,109431,125064,140697,156330,171963,187596,203229,218862,234495,250128,265761,281394,297027,312660,328293,343926,359559,375192,390825,406458,422091,437724,453357,468990,484623,500256,515889,531522,547155,562788,578421,594054,609687,625320,640953,656586,672219,687852,703485,719118,734751,750384,766017,781650,797283,812916,828549,844182,859815,875448,891081,906714,922347,937980,953613,969246,984879,1000512,1016145,1031778,1047411,1063044,1078677,1094310,1109943,1125576,1141209,1156842,1172475,1188108,1203741,1219374,1235007,1250640,1266273,1281906,1297539,1313172,1328805,1344438,1360071,1375704,1391337,1406970,1422603,1438236,1453869,1469502,1485135,1500768,1516401,1532034,1547667,1563300],"measured_values":[983212.0,1967746.0,2963862.0,3951613.0,4956906.0,5972038.0,6886370.0,7906190.0,8830440.0,9878655.0,10825920.0,11882870.0,12857186.0,13788358.0,14850119.0,15762697.0,16803628.0,17828058.0,18832840.0,19932823.0,20861061.0,21848250.0,22813207.0,23703312.0,24770503.0,25499864.0,26746765.0,27646048.0,28709562.0,29580261.0,30633785.0,31478896.0,32513054.0,33779853.0,34668084.0,35555945.0,36680535.0,37691079.0,39229311.0,39549898.0,40259563.0,41651287.0,42308812.0,43198908.0,44028437.0,45035695.0,46272577.0,47020674.0,48250763.0,49207585.0,50262282.0,51360933.0,52205501.0,53160911.0,54250825.0,55456347.0,56171581.0,58029950.0,58353173.0,58853229.0,60023014.0,61320832.0,62036406.0,63332641.0,64218648.0,65291941.0,66192116.0,67260699.0,68077987.0,69218987.0,69902691.0,71090481.0,71782821.0,72411172.0,73992976.0,74535113.0,75637922.0,77047961.0,78053044.0,79334071.0,80361225.0,80928078.0,82144191.0,83140187.0,84083563.0,84886163.0,85466993.0,86725486.0,87469023.0,88574968.0,89625136.0,90350058.0,91584337.0,92622221.0,93469335.0,94840352.0,95160237.0,96116207.0,97528792.0,98205623.0],"unit":"ns","throughput":[],"typical":{"estimate":63.06489088687523,"lower_bound":63.008158891633634,"upper_bound":63.12471350291043,"unit":"ns"},"mean":{"estimate":63.13554338969067,"lower_bound":63.08108893103277,"upper_bound":63.19271582993546,"unit":"ns"},"median":{"estimate":63.1487003172648,"lower_bound":63.02966651287307,"upper_bound":63.19593359244843,"unit":"ns"},"median_abs_dev":{"estimate":0.26486149993109553,"lower_bound":0.2142023932437318,"upper_bound":0.323575639338618,"unit":"ns"},"slope":{"estimate":63.06489088687523,"lower_bound":63.008158891633634,"upper_bound":63.12471350291043,"unit":"ns"},"change":{"mean":{"estimate":-0.0366747031516067,"lower_bound":-0.0377347777496681,"upper_bound":-0.03560544663825823,"unit":"%"},"median":{"estimate":-0.03655013928512385,"lower_bound":-0.03854806476176431,"upper_bound":-0.035687807424872764,"unit":"%"},"change":"Improved"}} {"reason":"group-complete","group_name":"Convert/String/i128","benchmarks":["Convert/String/i128"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_String_i128"} {"reason":"benchmark-complete","id":"Convert/String/f32","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_String_f32","iteration_count":[8537,17074,25611,34148,42685,51222,59759,68296,76833,85370,93907,102444,110981,119518,128055,136592,145129,153666,162203,170740,179277,187814,196351,204888,213425,221962,230499,239036,247573,256110,264647,273184,281721,290258,298795,307332,315869,324406,332943,341480,350017,358554,367091,375628,384165,392702,401239,409776,418313,426850,435387,443924,452461,460998,469535,478072,486609,495146,503683,512220,520757,529294,537831,546368,554905,563442,571979,580516,589053,597590,606127,614664,623201,631738,640275,648812,657349,665886,674423,682960,691497,700034,708571,717108,725645,734182,742719,751256,759793,768330,776867,785404,793941,802478,811015,819552,828089,836626,845163,853700],"measured_values":[982671.0,1989116.0,2988198.0,3955681.0,4975721.0,6002476.0,7023008.0,8046766.0,9039517.0,9998222.0,11088536.0,12007916.0,13022749.0,14066825.0,14995344.0,16028150.0,17091202.0,18168321.0,19202870.0,19901565.0,20952694.0,22003744.0,23162709.0,24244868.0,30944675.0,36512667.0,37299446.0,31146456.0,29243593.0,30352092.0,31613931.0,35417383.0,35082380.0,34653937.0,36359888.0,37148892.0,39754115.0,39730570.0,39621363.0,40676662.0,41228527.0,42643025.0,43637899.0,44821931.0,45682280.0,46677213.0,50492228.0,51378595.0,53396798.0,50901783.0,51905524.0,53107921.0,54105810.0,54464499.0,55881092.0,57062809.0,57775359.0,58741588.0,60070504.0,61317996.0,61590062.0,62686749.0,63867113.0,65259460.0,65942863.0,67122327.0,67748804.0,68294977.0,69626339.0,70109974.0,71141717.0,72518544.0,73061623.0,74370812.0,75670633.0,76051735.0,77482133.0,78653431.0,79616495.0,80852245.0,81292298.0,82318080.0,83457869.0,83892241.0,85862061.0,86108517.0,87583270.0,88472373.0,89263151.0,90645117.0,91089339.0,92360095.0,93045152.0,94460612.0,95117456.0,96584233.0,97184350.0,98136302.0,99274868.0,100304568.0],"unit":"ns","throughput":[],"typical":{"estimate":118.52676099702407,"lower_bound":118.15845277230929,"upper_bound":119.02276772459523,"unit":"ns"},"mean":{"estimate":119.90221719482925,"lower_bound":118.67731543948398,"upper_bound":121.45310176329042,"unit":"ns"},"median":{"estimate":118.09921797970878,"lower_bound":117.79007019659045,"upper_bound":118.38503719105071,"unit":"ns"},"median_abs_dev":{"estimate":1.1691433893405452,"lower_bound":0.8208262958685858,"upper_bound":1.4158893642409343,"unit":"ns"},"slope":{"estimate":118.52676099702407,"lower_bound":118.15845277230929,"upper_bound":119.02276772459523,"unit":"ns"},"change":{"mean":{"estimate":0.0703259548615176,"lower_bound":0.0601233395247597,"upper_bound":0.0829327850344354,"unit":"%"},"median":{"estimate":0.053589061637615565,"lower_bound":0.05028881692722218,"upper_bound":0.05652172558739843,"unit":"%"},"change":"Regressed"}} {"reason":"group-complete","group_name":"Convert/String/f32","benchmarks":["Convert/String/f32"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_String_f32"} {"reason":"benchmark-complete","id":"Convert/String/f64","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_String_f64","iteration_count":[5141,10282,15423,20564,25705,30846,35987,41128,46269,51410,56551,61692,66833,71974,77115,82256,87397,92538,97679,102820,107961,113102,118243,123384,128525,133666,138807,143948,149089,154230,159371,164512,169653,174794,179935,185076,190217,195358,200499,205640,210781,215922,221063,226204,231345,236486,241627,246768,251909,257050,262191,267332,272473,277614,282755,287896,293037,298178,303319,308460,313601,318742,323883,329024,334165,339306,344447,349588,354729,359870,365011,370152,375293,380434,385575,390716,395857,400998,406139,411280,416421,421562,426703,431844,436985,442126,447267,452408,457549,462690,467831,472972,478113,483254,488395,493536,498677,503818,508959,514100],"measured_values":[996377.0,1934744.0,2913386.0,3977852.0,4854642.0,6135698.0,6873064.0,7768770.0,9160786.0,9701399.0,10756478.0,11821043.0,13036656.0,13978698.0,15066147.0,16547913.0,17152689.0,17511849.0,18761615.0,19677389.0,20575230.0,21449225.0,22746200.0,23470471.0,24617012.0,25646893.0,26336408.0,27484261.0,28543989.0,29764620.0,31172686.0,31418732.0,32379871.0,32890187.0,34709412.0,35139578.0,36028470.0,37501830.0,38656526.0,39512988.0,39998378.0,41830156.0,42997867.0,43005151.0,44368212.0,45638797.0,45932503.0,47175377.0,47902324.0,49124498.0,49822380.0,50956386.0,52382237.0,52637920.0,53883028.0,54596459.0,56770536.0,57442388.0,58586765.0,59620712.0,59420524.0,60668666.0,61769903.0,63438401.0,64102830.0,64780923.0,65684615.0,67383041.0,68129914.0,70276490.0,70207659.0,70930367.0,71595046.0,74065614.0,74661121.0,75142313.0,75645876.0,77154132.0,77784506.0,78849182.0,79771428.0,80893854.0,82538107.0,81963529.0,83462036.0,84195616.0,85997557.0,86446938.0,87579082.0,88033823.0,90105275.0,90989339.0,93114293.0,93293292.0,94719642.0,95408927.0,94939419.0,95851957.0,97844099.0,99369878.0],"unit":"ns","throughput":[],"typical":{"estimate":191.92668834679964,"lower_bound":191.5571962922955,"upper_bound":192.29347415821138,"unit":"ns"},"mean":{"estimate":191.90577884691018,"lower_bound":191.49327106645046,"upper_bound":192.3457794262497,"unit":"ns"},"median":{"estimate":191.61942256154228,"lower_bound":191.0939455409403,"upper_bound":192.15272226164626,"unit":"ns"},"median_abs_dev":{"estimate":1.9538889630641385,"lower_bound":1.4658912623529616,"upper_bound":2.3094430366169765,"unit":"ns"},"slope":{"estimate":191.92668834679964,"lower_bound":191.5571962922955,"upper_bound":192.29347415821138,"unit":"ns"},"change":{"mean":{"estimate":0.10661426277458785,"lower_bound":0.10403685840681504,"upper_bound":0.10945013153505581,"unit":"%"},"median":{"estimate":0.10532013135901308,"lower_bound":0.10229101041974165,"upper_bound":0.10854918876135522,"unit":"%"},"change":"Regressed"}} {"reason":"group-complete","group_name":"Convert/String/f64","benchmarks":["Convert/String/f64"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_String_f64"} {"reason":"benchmark-complete","id":"Convert/AFlexStr/bool","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_AFlexStr_bool","iteration_count":[923215,1846430,2769645,3692860,4616075,5539290,6462505,7385720,8308935,9232150,10155365,11078580,12001795,12925010,13848225,14771440,15694655,16617870,17541085,18464300,19387515,20310730,21233945,22157160,23080375,24003590,24926805,25850020,26773235,27696450,28619665,29542880,30466095,31389310,32312525,33235740,34158955,35082170,36005385,36928600,37851815,38775030,39698245,40621460,41544675,42467890,43391105,44314320,45237535,46160750,47083965,48007180,48930395,49853610,50776825,51700040,52623255,53546470,54469685,55392900,56316115,57239330,58162545,59085760,60008975,60932190,61855405,62778620,63701835,64625050,65548265,66471480,67394695,68317910,69241125,70164340,71087555,72010770,72933985,73857200,74780415,75703630,76626845,77550060,78473275,79396490,80319705,81242920,82166135,83089350,84012565,84935780,85858995,86782210,87705425,88628640,89551855,90475070,91398285,92321500],"measured_values":[988552.0,1980340.0,2972168.0,3972862.0,4947979.0,5934026.0,6909673.0,7898767.0,8909180.0,9859569.0,10896202.0,11901887.0,12866442.0,13846358.0,14814211.0,15842238.0,16804890.0,17801998.0,18828211.0,19773372.0,20734511.0,21740956.0,22742693.0,23744421.0,24706792.0,25709572.0,26663408.0,27639245.0,28682431.0,29616819.0,30666777.0,31617639.0,32623824.0,33566949.0,34575890.0,35670032.0,36649516.0,37581020.0,38584861.0,39547334.0,40561383.0,41554985.0,42571860.0,43484157.0,44509549.0,45443317.0,46536047.0,47506134.0,48505495.0,49405509.0,50418998.0,51378395.0,52353732.0,53301817.0,54347487.0,55309369.0,56262895.0,57581942.0,58329988.0,59277252.0,60301202.0,61360496.0,62269849.0,63298807.0,64470305.0,65515834.0,66461375.0,67272351.0,68227941.0,69269452.0,70305114.0,71149002.0,72301744.0,73220924.0,74137280.0,75228165.0,76264739.0,77023765.0,78264254.0,79358797.0,80249533.0,81111085.0,82054532.0,83059193.0,84009633.0,85268666.0,86111783.0,87028369.0,88085191.0,88957802.0,90178815.0,91205749.0,92054246.0,93210625.0,93967858.0,95164535.0,96271731.0,97073510.0,97877492.0,99133740.0],"unit":"ns","throughput":[],"typical":{"estimate":1.0720659571645959,"lower_bound":1.07166242987736,"upper_bound":1.0724541013605933,"unit":"ns"},"mean":{"estimate":1.0716122568383724,"lower_bound":1.0713084437534042,"upper_bound":1.071925732962031,"unit":"ns"},"median":{"estimate":1.071337897302619,"lower_bound":1.0710514226160046,"upper_bound":1.0717806820523414,"unit":"ns"},"median_abs_dev":{"estimate":0.001472396914713264,"lower_bound":0.0011208905967723605,"upper_bound":0.0018979732281182232,"unit":"ns"},"slope":{"estimate":1.0720659571645959,"lower_bound":1.07166242987736,"upper_bound":1.0724541013605933,"unit":"ns"},"change":{"mean":{"estimate":-0.3735145113780204,"lower_bound":-0.374295577518258,"upper_bound":-0.37277823396652676,"unit":"%"},"median":{"estimate":-0.3723414313915243,"lower_bound":-0.37296028176781326,"upper_bound":-0.37176912367453546,"unit":"%"},"change":"Improved"}} {"reason":"group-complete","group_name":"Convert/AFlexStr/bool","benchmarks":["Convert/AFlexStr/bool"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_AFlexStr_bool"} {"reason":"benchmark-complete","id":"Convert/AFlexStr/char","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_AFlexStr_char","iteration_count":[98730,197460,296190,394920,493650,592380,691110,789840,888570,987300,1086030,1184760,1283490,1382220,1480950,1579680,1678410,1777140,1875870,1974600,2073330,2172060,2270790,2369520,2468250,2566980,2665710,2764440,2863170,2961900,3060630,3159360,3258090,3356820,3455550,3554280,3653010,3751740,3850470,3949200,4047930,4146660,4245390,4344120,4442850,4541580,4640310,4739040,4837770,4936500,5035230,5133960,5232690,5331420,5430150,5528880,5627610,5726340,5825070,5923800,6022530,6121260,6219990,6318720,6417450,6516180,6614910,6713640,6812370,6911100,7009830,7108560,7207290,7306020,7404750,7503480,7602210,7700940,7799670,7898400,7997130,8095860,8194590,8293320,8392050,8490780,8589510,8688240,8786970,8885700,8984430,9083160,9181890,9280620,9379350,9478080,9576810,9675540,9774270,9873000],"measured_values":[987951.0,1994727.0,2944185.0,4062052.0,4982895.0,5916954.0,6821967.0,7863960.0,8871549.0,9816678.0,10760415.0,11880546.0,12763648.0,13987204.0,15008228.0,15777334.0,16884891.0,17649680.0,18705649.0,19983489.0,20740102.0,21835245.0,22789162.0,23843418.0,24913684.0,25784963.0,26827438.0,27639145.0,28604994.0,29698284.0,30745517.0,31660029.0,32766474.0,33602687.0,34627778.0,35547429.0,36587939.0,37652957.0,38714657.0,39488181.0,40391051.0,41314139.0,42661129.0,43204999.0,44655907.0,45219984.0,46362929.0,47621673.0,48878782.0,49795859.0,50736421.0,50974570.0,52498216.0,53332886.0,54197974.0,55047644.0,56970835.0,57482874.0,59785915.0,68580488.0,60453289.0,61431071.0,62917434.0,63583727.0,64242353.0,65155432.0,66568097.0,67356900.0,68165412.0,69549071.0,70528346.0,71156866.0,72112987.0,73695523.0,73759354.0,75210081.0,75985740.0,77006652.0,77946983.0,79547384.0,80319837.0,81266829.0,82033081.0,82649377.0,83620777.0,84826980.0,86087157.0,86918842.0,88017082.0,89039066.0,89739143.0,91175431.0,91853295.0,92555796.0,94115979.0,94994422.0,95593388.0,97146878.0,97831756.0,98925476.0],"unit":"ns","throughput":[],"typical":{"estimate":10.037447472542192,"lower_bound":10.01376602218984,"upper_bound":10.078852628390228,"unit":"ns"},"mean":{"estimate":10.039891768773327,"lower_bound":10.01552317891078,"upper_bound":10.078349159282796,"unit":"ns"},"median":{"estimate":10.020703136178675,"lower_bound":10.006593740504407,"upper_bound":10.034381806841626,"unit":"ns"},"median_abs_dev":{"estimate":0.04637599134078357,"lower_bound":0.03522164720322793,"upper_bound":0.05890790901901657,"unit":"ns"},"slope":{"estimate":10.037447472542192,"lower_bound":10.01376602218984,"upper_bound":10.078852628390228,"unit":"ns"},"change":{"mean":{"estimate":-0.25604225591245655,"lower_bound":-0.2579122820470962,"upper_bound":-0.25303885779245266,"unit":"%"},"median":{"estimate":-0.2567402328244386,"lower_bound":-0.2578998492944833,"upper_bound":-0.2556617961539118,"unit":"%"},"change":"Improved"}} {"reason":"group-complete","group_name":"Convert/AFlexStr/char","benchmarks":["Convert/AFlexStr/char"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_AFlexStr_char"} {"reason":"benchmark-complete","id":"Convert/AFlexStr/i8","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_AFlexStr_i8","iteration_count":[98660,197320,295980,394640,493300,591960,690620,789280,887940,986600,1085260,1183920,1282580,1381240,1479900,1578560,1677220,1775880,1874540,1973200,2071860,2170520,2269180,2367840,2466500,2565160,2663820,2762480,2861140,2959800,3058460,3157120,3255780,3354440,3453100,3551760,3650420,3749080,3847740,3946400,4045060,4143720,4242380,4341040,4439700,4538360,4637020,4735680,4834340,4933000,5031660,5130320,5228980,5327640,5426300,5524960,5623620,5722280,5820940,5919600,6018260,6116920,6215580,6314240,6412900,6511560,6610220,6708880,6807540,6906200,7004860,7103520,7202180,7300840,7399500,7498160,7596820,7695480,7794140,7892800,7991460,8090120,8188780,8287440,8386100,8484760,8583420,8682080,8780740,8879400,8978060,9076720,9175380,9274040,9372700,9471360,9570020,9668680,9767340,9866000],"measured_values":[999964.0,2003433.0,2989019.0,3974506.0,4815247.0,5995913.0,7004744.0,7788748.0,8810412.0,9578827.0,10926841.0,12023556.0,12694107.0,13940025.0,14643668.0,15771163.0,16977437.0,17734881.0,18782375.0,19924758.0,20911115.0,21649714.0,22684744.0,23406571.0,24654263.0,25620102.0,26547027.0,27541611.0,28598211.0,29727409.0,30830277.0,31526566.0,32821457.0,33680915.0,34851242.0,35688326.0,36597938.0,37922657.0,38872887.0,39277583.0,40513953.0,41333685.0,42505965.0,43522931.0,44357773.0,45351654.0,46442409.0,47506864.0,48424934.0,49713423.0,49980048.0,51596319.0,52384540.0,53584003.0,54682612.0,55561857.0,56211266.0,57226259.0,58591244.0,59480537.0,59960426.0,61443443.0,62229773.0,62956689.0,64263925.0,64903025.0,65933254.0,67125934.0,67408959.0,69357580.0,69678477.0,71068638.0,71903410.0,73108702.0,73998708.0,74881358.0,76051104.0,77489757.0,77487433.0,79416586.0,80066276.0,81302377.0,81836388.0,82833065.0,83744961.0,84561058.0,85879573.0,86895027.0,87933523.0,88324773.0,89679860.0,91001072.0,91671110.0,92853329.0,93087852.0,94546775.0,95913613.0,96798409.0,98879008.0,99250692.0],"unit":"ns","throughput":[],"typical":{"estimate":10.009162712428708,"lower_bound":9.99797454050834,"upper_bound":10.020973828745683,"unit":"ns"},"mean":{"estimate":10.012795425660322,"lower_bound":9.998542679881226,"upper_bound":10.026445741933633,"unit":"ns"},"median":{"estimate":10.012039058096494,"lower_bound":9.996890506702862,"upper_bound":10.020203644761086,"unit":"ns"},"median_abs_dev":{"estimate":0.05527850781699576,"lower_bound":0.037200165382838636,"upper_bound":0.06951965541656417,"unit":"ns"},"slope":{"estimate":10.009162712428708,"lower_bound":9.99797454050834,"upper_bound":10.020973828745683,"unit":"ns"},"change":{"mean":{"estimate":-0.26279858751690155,"lower_bound":-0.26428805976665437,"upper_bound":-0.2612970224620452,"unit":"%"},"median":{"estimate":-0.2606345066914382,"lower_bound":-0.26427944079434684,"upper_bound":-0.2589949897686913,"unit":"%"},"change":"Improved"}} {"reason":"group-complete","group_name":"Convert/AFlexStr/i8","benchmarks":["Convert/AFlexStr/i8"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_AFlexStr_i8"} {"reason":"benchmark-complete","id":"Convert/AFlexStr/i16","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_AFlexStr_i16","iteration_count":[93182,186364,279546,372728,465910,559092,652274,745456,838638,931820,1025002,1118184,1211366,1304548,1397730,1490912,1584094,1677276,1770458,1863640,1956822,2050004,2143186,2236368,2329550,2422732,2515914,2609096,2702278,2795460,2888642,2981824,3075006,3168188,3261370,3354552,3447734,3540916,3634098,3727280,3820462,3913644,4006826,4100008,4193190,4286372,4379554,4472736,4565918,4659100,4752282,4845464,4938646,5031828,5125010,5218192,5311374,5404556,5497738,5590920,5684102,5777284,5870466,5963648,6056830,6150012,6243194,6336376,6429558,6522740,6615922,6709104,6802286,6895468,6988650,7081832,7175014,7268196,7361378,7454560,7547742,7640924,7734106,7827288,7920470,8013652,8106834,8200016,8293198,8386380,8479562,8572744,8665926,8759108,8852290,8945472,9038654,9131836,9225018,9318200],"measured_values":[998541.0,1997011.0,2977589.0,3995866.0,4996361.0,5982458.0,6928218.0,7980611.0,8958914.0,9958847.0,10952067.0,11961499.0,12974066.0,13946618.0,14962581.0,15963036.0,16937010.0,17827086.0,18926297.0,19867419.0,20879515.0,21883537.0,22811664.0,23684737.0,24761025.0,25713168.0,26622561.0,27625368.0,28557304.0,29648800.0,30542943.0,31523390.0,32746837.0,33674172.0,34529262.0,35507213.0,36668733.0,37571542.0,38505772.0,39475907.0,40557787.0,41423195.0,42401007.0,43553298.0,44716562.0,45840870.0,46563538.0,47508237.0,48736373.0,49571654.0,50659164.0,51511788.0,52499849.0,53434199.0,54487572.0,55565615.0,56603238.0,57665099.0,58650765.0,59599793.0,60620806.0,61379543.0,62459347.0,63586652.0,64526391.0,65348118.0,66212804.0,67327155.0,68202502.0,69104088.0,70229881.0,71367806.0,72095423.0,73125123.0,73841390.0,75100002.0,75994406.0,77131509.0,78305973.0,78994096.0,80077708.0,80991147.0,81817192.0,82983760.0,84094875.0,84909657.0,85826152.0,87011617.0,87893196.0,88875477.0,90072523.0,90884600.0,91810534.0,92925395.0,93803588.0,94919090.0,95857076.0,96929407.0,97915294.0,98725948.0],"unit":"ns","throughput":[],"typical":{"estimate":10.61398922841909,"lower_bound":10.609061879887614,"upper_bound":10.619572036453853,"unit":"ns"},"mean":{"estimate":10.632211367484041,"lower_bound":10.624467869896216,"upper_bound":10.640236503367047,"unit":"ns"},"median":{"estimate":10.622521661228172,"lower_bound":10.613148857812526,"upper_bound":10.631700621071959,"unit":"ns"},"median_abs_dev":{"estimate":0.03983109885214081,"lower_bound":0.028163227455533155,"upper_bound":0.05092111271359427,"unit":"ns"},"slope":{"estimate":10.61398922841909,"lower_bound":10.609061879887614,"upper_bound":10.619572036453853,"unit":"ns"},"change":{"mean":{"estimate":-0.11630263895626325,"lower_bound":-0.11707755624024495,"upper_bound":-0.11554110609496794,"unit":"%"},"median":{"estimate":-0.1166490814560891,"lower_bound":-0.11777148625907774,"upper_bound":-0.11572789463056743,"unit":"%"},"change":"Improved"}} {"reason":"group-complete","group_name":"Convert/AFlexStr/i16","benchmarks":["Convert/AFlexStr/i16"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_AFlexStr_i16"} {"reason":"benchmark-complete","id":"Convert/AFlexStr/i32","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_AFlexStr_i32","iteration_count":[77724,155448,233172,310896,388620,466344,544068,621792,699516,777240,854964,932688,1010412,1088136,1165860,1243584,1321308,1399032,1476756,1554480,1632204,1709928,1787652,1865376,1943100,2020824,2098548,2176272,2253996,2331720,2409444,2487168,2564892,2642616,2720340,2798064,2875788,2953512,3031236,3108960,3186684,3264408,3342132,3419856,3497580,3575304,3653028,3730752,3808476,3886200,3963924,4041648,4119372,4197096,4274820,4352544,4430268,4507992,4585716,4663440,4741164,4818888,4896612,4974336,5052060,5129784,5207508,5285232,5362956,5440680,5518404,5596128,5673852,5751576,5829300,5907024,5984748,6062472,6140196,6217920,6295644,6373368,6451092,6528816,6606540,6684264,6761988,6839712,6917436,6995160,7072884,7150608,7228332,7306056,7383780,7461504,7539228,7616952,7694676,7772400],"measured_values":[1005875.0,2000628.0,3006203.0,3988893.0,4987564.0,5959575.0,6959117.0,7944092.0,8929408.0,9927418.0,11067977.0,11953585.0,12941424.0,13852260.0,14832636.0,15898414.0,16841940.0,17748687.0,18768047.0,19822745.0,20776080.0,21805189.0,22780395.0,23681210.0,24704819.0,25705844.0,26638780.0,27565064.0,28429131.0,29643650.0,30580114.0,31603251.0,32511641.0,33633625.0,34588884.0,35415329.0,36504211.0,37532208.0,38398609.0,39602857.0,40405277.0,41404981.0,42295637.0,43304838.0,44676635.0,45595415.0,46646876.0,47732392.0,48570368.0,49518524.0,50446011.0,51347516.0,52155556.0,53071733.0,54114476.0,55116113.0,56119743.0,56984241.0,58120481.0,58811009.0,59971146.0,61053756.0,61928672.0,63136871.0,64333837.0,65104285.0,66212594.0,67212828.0,67870684.0,68752253.0,69652808.0,70893518.0,71775317.0,72601712.0,73654646.0,74701939.0,75916909.0,76729157.0,77685057.0,78667087.0,79543527.0,80569730.0,81475515.0,82509202.0,83521519.0,84466137.0,85423982.0,86797812.0,87845146.0,88817817.0,89844621.0,90508288.0,91491680.0,92310641.0,93309353.0,95258372.0,96604181.0,97155114.0,97725134.0,98714817.0],"unit":"ns","throughput":[],"typical":{"estimate":12.679492658532167,"lower_bound":12.667337383524464,"upper_bound":12.692858553720443,"unit":"ns"},"mean":{"estimate":12.707586822134374,"lower_bound":12.694752198646295,"upper_bound":12.721254345369047,"unit":"ns"},"median":{"estimate":12.694525274141931,"lower_bound":12.679411262616563,"upper_bound":12.710432754858171,"unit":"ns"},"median_abs_dev":{"estimate":0.06337564965120272,"lower_bound":0.04854243618525918,"upper_bound":0.07763920311109376,"unit":"ns"},"slope":{"estimate":12.679492658532167,"lower_bound":12.667337383524464,"upper_bound":12.692858553720443,"unit":"ns"},"change":{"mean":{"estimate":0.1612685727294929,"lower_bound":0.15961076481757736,"upper_bound":0.16276414716210455,"unit":"%"},"median":{"estimate":0.16011900856521355,"lower_bound":0.1584175598551405,"upper_bound":0.1617992745292962,"unit":"%"},"change":"Regressed"}} {"reason":"group-complete","group_name":"Convert/AFlexStr/i32","benchmarks":["Convert/AFlexStr/i32"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_AFlexStr_i32"} {"reason":"benchmark-complete","id":"Convert/AFlexStr/i64","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_AFlexStr_i64","iteration_count":[81786,163572,245358,327144,408930,490716,572502,654288,736074,817860,899646,981432,1063218,1145004,1226790,1308576,1390362,1472148,1553934,1635720,1717506,1799292,1881078,1962864,2044650,2126436,2208222,2290008,2371794,2453580,2535366,2617152,2698938,2780724,2862510,2944296,3026082,3107868,3189654,3271440,3353226,3435012,3516798,3598584,3680370,3762156,3843942,3925728,4007514,4089300,4171086,4252872,4334658,4416444,4498230,4580016,4661802,4743588,4825374,4907160,4988946,5070732,5152518,5234304,5316090,5397876,5479662,5561448,5643234,5725020,5806806,5888592,5970378,6052164,6133950,6215736,6297522,6379308,6461094,6542880,6624666,6706452,6788238,6870024,6951810,7033596,7115382,7197168,7278954,7360740,7442526,7524312,7606098,7687884,7769670,7851456,7933242,8015028,8096814,8178600],"measured_values":[993792.0,1984508.0,2985383.0,3966591.0,4975561.0,5964634.0,6956873.0,7931278.0,8937895.0,9880308.0,10833163.0,11814992.0,12891630.0,13880183.0,14803230.0,15834292.0,16809208.0,17777873.0,18725387.0,19775314.0,20837595.0,21686904.0,22762261.0,23777042.0,24784891.0,25785104.0,26657135.0,27715089.0,28806786.0,29782804.0,30569924.0,31681820.0,32571565.0,33528165.0,34696399.0,35574751.0,36504432.0,37521406.0,38461968.0,39466430.0,40564089.0,41426872.0,42535972.0,43394688.0,44513798.0,45458847.0,46396392.0,47465727.0,48386781.0,49410509.0,50397428.0,51294878.0,52361997.0,53428949.0,54343690.0,55277549.0,56322757.0,57306510.0,58431450.0,59465459.0,60486852.0,61337573.0,62230865.0,63443851.0,64205233.0,65125195.0,66404757.0,67246703.0,68202692.0,69488317.0,70261481.0,71158820.0,72115982.0,73092019.0,73889781.0,75084322.0,76916562.0,77627979.0,78558672.0,79192552.0,80169361.0,81182189.0,82431014.0,83288096.0,84138337.0,84989298.0,85858334.0,86868175.0,87925868.0,89008478.0,89946985.0,90880924.0,92067601.0,92967194.0,94063781.0,95033236.0,95998845.0,96819228.0,97919261.0,98893495.0],"unit":"ns","throughput":[],"typical":{"estimate":12.096396070045962,"lower_bound":12.089724900769395,"upper_bound":12.103858520515502,"unit":"ns"},"mean":{"estimate":12.097316758310138,"lower_bound":12.091245720707805,"upper_bound":12.103683583869985,"unit":"ns"},"median":{"estimate":12.092033104008564,"lower_bound":12.083106101061249,"upper_bound":12.10039921257917,"unit":"ns"},"median_abs_dev":{"estimate":0.02743906053644189,"lower_bound":0.019783737880906812,"upper_bound":0.038129785136387366,"unit":"ns"},"slope":{"estimate":12.096396070045962,"lower_bound":12.089724900769395,"upper_bound":12.103858520515502,"unit":"ns"},"change":{"mean":{"estimate":-0.0015600968945148619,"lower_bound":-0.00257618605509079,"upper_bound":-0.0005010862388641032,"unit":"%"},"median":{"estimate":-0.0024652099845744457,"lower_bound":-0.0035932364262067917,"upper_bound":-0.0013555794697274457,"unit":"%"},"change":"NoChange"}} {"reason":"group-complete","group_name":"Convert/AFlexStr/i64","benchmarks":["Convert/AFlexStr/i64"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_AFlexStr_i64"} {"reason":"benchmark-complete","id":"Convert/AFlexStr/i128","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_AFlexStr_i128","iteration_count":[28990,57980,86970,115960,144950,173940,202930,231920,260910,289900,318890,347880,376870,405860,434850,463840,492830,521820,550810,579800,608790,637780,666770,695760,724750,753740,782730,811720,840710,869700,898690,927680,956670,985660,1014650,1043640,1072630,1101620,1130610,1159600,1188590,1217580,1246570,1275560,1304550,1333540,1362530,1391520,1420510,1449500,1478490,1507480,1536470,1565460,1594450,1623440,1652430,1681420,1710410,1739400,1768390,1797380,1826370,1855360,1884350,1913340,1942330,1971320,2000310,2029300,2058290,2087280,2116270,2145260,2174250,2203240,2232230,2261220,2290210,2319200,2348190,2377180,2406170,2435160,2464150,2493140,2522130,2551120,2580110,2609100,2638090,2667080,2696070,2725060,2754050,2783040,2812030,2841020,2870010,2899000],"measured_values":[996747.0,1973526.0,2929628.0,3882892.0,4872496.0,5898939.0,6905115.0,7808685.0,8858052.0,9867905.0,10815148.0,11843285.0,12779898.0,13797837.0,14744890.0,15741076.0,16547673.0,17682352.0,18528233.0,19675546.0,20584837.0,21679380.0,22599272.0,23567846.0,24529487.0,25489404.0,26593826.0,27341100.0,28533749.0,29386284.0,30686585.0,31855429.0,32380613.0,33393431.0,34092595.0,35407975.0,36290496.0,37348590.0,38446039.0,39534890.0,40600477.0,41464483.0,42650840.0,43209438.0,44523014.0,45288525.0,46310699.0,48195118.0,48822937.0,49658648.0,50432214.0,51340985.0,52329155.0,53145382.0,54387012.0,54971780.0,56264597.0,57145054.0,58000415.0,59157304.0,60025308.0,60942816.0,62341574.0,62195719.0,64060448.0,65342487.0,66181786.0,68852563.0,67901792.0,69071859.0,70313188.0,71067486.0,71856109.0,72302476.0,74326277.0,74666822.0,75625587.0,76921753.0,78067922.0,79058789.0,80511579.0,80550984.0,81543403.0,82838285.0,83916327.0,85140965.0,85489274.0,86774339.0,88422749.0,89123366.0,89915836.0,91068329.0,91844218.0,92573379.0,93435931.0,94910324.0,95901580.0,97282866.0,97559029.0,98503377.0],"unit":"ns","throughput":[],"typical":{"estimate":34.04566457525521,"lower_bound":34.00496775379245,"upper_bound":34.08927062910866,"unit":"ns"},"mean":{"estimate":33.99383776169847,"lower_bound":33.95392692537755,"upper_bound":34.03554796835612,"unit":"ns"},"median":{"estimate":33.9903481357875,"lower_bound":33.945634426663865,"upper_bound":34.02782096453621,"unit":"ns"},"median_abs_dev":{"estimate":0.14771478233741733,"lower_bound":0.11338825804822784,"upper_bound":0.17939279983133416,"unit":"ns"},"slope":{"estimate":34.04566457525521,"lower_bound":34.00496775379245,"upper_bound":34.08927062910866,"unit":"ns"},"change":{"mean":{"estimate":-0.016041468016439575,"lower_bound":-0.017290060081579885,"upper_bound":-0.014485260788610099,"unit":"%"},"median":{"estimate":-0.015971070408411503,"lower_bound":-0.01748864154379859,"upper_bound":-0.014661899449869176,"unit":"%"},"change":"Improved"}} {"reason":"group-complete","group_name":"Convert/AFlexStr/i128","benchmarks":["Convert/AFlexStr/i128"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_AFlexStr_i128"} {"reason":"benchmark-complete","id":"Convert/AFlexStr/f32","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_AFlexStr_f32","iteration_count":[53534,107068,160602,214136,267670,321204,374738,428272,481806,535340,588874,642408,695942,749476,803010,856544,910078,963612,1017146,1070680,1124214,1177748,1231282,1284816,1338350,1391884,1445418,1498952,1552486,1606020,1659554,1713088,1766622,1820156,1873690,1927224,1980758,2034292,2087826,2141360,2194894,2248428,2301962,2355496,2409030,2462564,2516098,2569632,2623166,2676700,2730234,2783768,2837302,2890836,2944370,2997904,3051438,3104972,3158506,3212040,3265574,3319108,3372642,3426176,3479710,3533244,3586778,3640312,3693846,3747380,3800914,3854448,3907982,3961516,4015050,4068584,4122118,4175652,4229186,4282720,4336254,4389788,4443322,4496856,4550390,4603924,4657458,4710992,4764526,4818060,4871594,4925128,4978662,5032196,5085730,5139264,5192798,5246332,5299866,5353400],"measured_values":[987159.0,1967535.0,2950467.0,3925724.0,4912862.0,5916823.0,6875489.0,7921630.0,8874875.0,9847095.0,10815870.0,11823808.0,12905437.0,13782888.0,14860147.0,15972654.0,16736460.0,17674116.0,18705209.0,19656250.0,20660341.0,21658099.0,22645480.0,23590960.0,24650165.0,25573965.0,26644692.0,27688828.0,28538949.0,29555834.0,30548785.0,31579576.0,32515589.0,33518297.0,34552756.0,35833561.0,36544257.0,37517300.0,38476435.0,39354508.0,40405047.0,41489210.0,42465169.0,43398405.0,44325581.0,45432056.0,46278018.0,47421312.0,48243260.0,49594277.0,50275918.0,51379117.0,52933961.0,53278313.0,54239583.0,55286175.0,56185939.0,57316940.0,58215502.0,59336704.0,60177046.0,61182580.0,62238099.0,63069081.0,64268874.0,65549218.0,65923407.0,66955981.0,68010119.0,69091054.0,70083453.0,70939726.0,71799062.0,72937137.0,73957088.0,75103169.0,75974739.0,76923806.0,85231286.0,79919769.0,80254883.0,80871821.0,82097592.0,82996043.0,84036635.0,84861907.0,85755107.0,86856222.0,87846218.0,88740030.0,89703625.0,90720280.0,91744188.0,92745835.0,93774883.0,94773515.0,96182713.0,96626723.0,97764689.0,98628584.0],"unit":"ns","throughput":[],"typical":{"estimate":18.474187256144045,"lower_bound":18.433766783806007,"upper_bound":18.548236553277018,"unit":"ns"},"mean":{"estimate":18.450310968316124,"lower_bound":18.424518659046726,"upper_bound":18.491960533483393,"unit":"ns"},"median":{"estimate":18.423928964430424,"lower_bound":18.41814145578282,"upper_bound":18.433440550895,"unit":"ns"},"median_abs_dev":{"estimate":0.03656345373960221,"lower_bound":0.025811502507369324,"upper_bound":0.047375431306994224,"unit":"ns"},"slope":{"estimate":18.474187256144045,"lower_bound":18.433766783806007,"upper_bound":18.548236553277018,"unit":"ns"},"change":{"mean":{"estimate":-0.08925147966818858,"lower_bound":-0.09172384286130639,"upper_bound":-0.08635916066230442,"unit":"%"},"median":{"estimate":-0.0921262078247187,"lower_bound":-0.09342418700436117,"upper_bound":-0.09038092003573674,"unit":"%"},"change":"Improved"}} {"reason":"group-complete","group_name":"Convert/AFlexStr/f32","benchmarks":["Convert/AFlexStr/f32"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_AFlexStr_f32"} {"reason":"benchmark-complete","id":"Convert/AFlexStr/f64","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_AFlexStr_f64","iteration_count":[32647,65294,97941,130588,163235,195882,228529,261176,293823,326470,359117,391764,424411,457058,489705,522352,554999,587646,620293,652940,685587,718234,750881,783528,816175,848822,881469,914116,946763,979410,1012057,1044704,1077351,1109998,1142645,1175292,1207939,1240586,1273233,1305880,1338527,1371174,1403821,1436468,1469115,1501762,1534409,1567056,1599703,1632350,1664997,1697644,1730291,1762938,1795585,1828232,1860879,1893526,1926173,1958820,1991467,2024114,2056761,2089408,2122055,2154702,2187349,2219996,2252643,2285290,2317937,2350584,2383231,2415878,2448525,2481172,2513819,2546466,2579113,2611760,2644407,2677054,2709701,2742348,2774995,2807642,2840289,2872936,2905583,2938230,2970877,3003524,3036171,3068818,3101465,3134112,3166759,3199406,3232053,3264700],"measured_values":[993071.0,1943029.0,3042451.0,4004993.0,5086992.0,6122513.0,7039670.0,7904277.0,9106132.0,9776371.0,10987164.0,11847473.0,12739853.0,13919577.0,15541288.0,16003753.0,17227059.0,17954768.0,18833702.0,19899861.0,21353843.0,22083666.0,22669425.0,23676882.0,25343999.0,26409747.0,27059698.0,28068157.0,28767091.0,30340379.0,31159911.0,32071338.0,32990638.0,33718927.0,35162350.0,35881161.0,37401089.0,38237123.0,39017881.0,39467662.0,40979345.0,41336751.0,43065805.0,43994955.0,44138036.0,45904310.0,46901499.0,47856456.0,48289878.0,49416951.0,50858902.0,52093940.0,52022045.0,53681696.0,54299476.0,55624475.0,57252118.0,57642577.0,58802453.0,58917971.0,60475832.0,61125321.0,62526905.0,63834491.0,65056976.0,65845008.0,67032006.0,67894719.0,69052441.0,69814624.0,71190550.0,72302505.0,73089426.0,74311329.0,74993531.0,75995589.0,78035000.0,78432161.0,79774623.0,79068607.0,80202263.0,81419018.0,84054518.0,84286698.0,84703176.0,85327368.0,86620066.0,87332685.0,87307117.0,89450214.0,90243286.0,92015001.0,93442133.0,93737392.0,94200389.0,94641694.0,97593574.0,97650872.0,98925656.0,101687567.0],"unit":"ns","throughput":[],"typical":{"estimate":30.56106401397353,"lower_bound":30.494595829231148,"upper_bound":30.62893204034761,"unit":"ns"},"mean":{"estimate":30.57769035209425,"lower_bound":30.517135017620387,"upper_bound":30.64077945637792,"unit":"ns"},"median":{"estimate":30.566729204080758,"lower_bound":30.528126497464143,"upper_bound":30.63568028755555,"unit":"ns"},"median_abs_dev":{"estimate":0.2752533889796244,"lower_bound":0.20603625454241237,"upper_bound":0.3352111927434108,"unit":"ns"},"slope":{"estimate":30.56106401397353,"lower_bound":30.494595829231148,"upper_bound":30.62893204034761,"unit":"ns"},"change":{"mean":{"estimate":-0.0021242715562125314,"lower_bound":-0.004522149088296376,"upper_bound":0.000384481260427738,"unit":"%"},"median":{"estimate":-0.0021433422946978142,"lower_bound":-0.003959560807586415,"upper_bound":0.001257934638902114,"unit":"%"},"change":"NoChange"}} {"reason":"group-complete","group_name":"Convert/AFlexStr/f64","benchmarks":["Convert/AFlexStr/f64"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_AFlexStr_f64"} {"reason":"benchmark-complete","id":"Convert/FlexStr/bool","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_FlexStr_bool","iteration_count":[1150258,2300516,3450774,4601032,5751290,6901548,8051806,9202064,10352322,11502580,12652838,13803096,14953354,16103612,17253870,18404128,19554386,20704644,21854902,23005160,24155418,25305676,26455934,27606192,28756450,29906708,31056966,32207224,33357482,34507740,35657998,36808256,37958514,39108772,40259030,41409288,42559546,43709804,44860062,46010320,47160578,48310836,49461094,50611352,51761610,52911868,54062126,55212384,56362642,57512900,58663158,59813416,60963674,62113932,63264190,64414448,65564706,66714964,67865222,69015480,70165738,71315996,72466254,73616512,74766770,75917028,77067286,78217544,79367802,80518060,81668318,82818576,83968834,85119092,86269350,87419608,88569866,89720124,90870382,92020640,93170898,94321156,95471414,96621672,97771930,98922188,100072446,101222704,102372962,103523220,104673478,105823736,106973994,108124252,109274510,110424768,111575026,112725284,113875542,115025800],"measured_values":[981308.0,1962957.0,2929808.0,3919251.0,4901922.0,5959665.0,6894054.0,7915348.0,8859355.0,9839020.0,10780783.0,11799944.0,12767155.0,13777768.0,14731434.0,15695099.0,16625651.0,17681290.0,18670092.0,19668332.0,20611357.0,21638944.0,22547945.0,23552848.0,24520379.0,25510655.0,26488536.0,27404991.0,28514763.0,29571945.0,30484583.0,31358458.0,32381785.0,33301567.0,34396490.0,35438453.0,36373413.0,38461156.0,38386925.0,39308511.0,40398855.0,41230240.0,42276722.0,43228984.0,44188231.0,45284426.0,46131030.0,47139138.0,48241706.0,49212845.0,50021456.0,50998997.0,51947032.0,53187520.0,54162928.0,55042754.0,55913583.0,57141307.0,58002018.0,59143809.0,59795343.0,60782762.0,61980921.0,62918748.0,63849099.0,64882355.0,65780555.0,66803032.0,68109216.0,68991044.0,70224851.0,71188826.0,72271406.0,73198732.0,74086934.0,75106425.0,76119643.0,76987887.0,77752825.0,78994367.0,79905191.0,80742877.0,81781945.0,82867961.0,83955090.0,85109996.0,85892388.0,87048598.0,88109145.0,89066538.0,90007519.0,90924056.0,91816295.0,92631859.0,93882177.0,94690938.0,95884448.0,96680275.0,98194882.0,99842793.0],"unit":"ns","throughput":[],"typical":{"estimate":0.8577405921304245,"lower_bound":0.8569002237118896,"upper_bound":0.8586101993688906,"unit":"ns"},"mean":{"estimate":0.8560052038532083,"lower_bound":0.8552778619864702,"upper_bound":0.8568279967897054,"unit":"ns"},"median":{"estimate":0.8553412116486662,"lower_bound":0.8546482483481835,"upper_bound":0.8560420633521497,"unit":"ns"},"median_abs_dev":{"estimate":0.0032583702110399195,"lower_bound":0.002336603821882186,"upper_bound":0.003964643506616535,"unit":"ns"},"slope":{"estimate":0.8577405921304245,"lower_bound":0.8569002237118896,"upper_bound":0.8586101993688906,"unit":"ns"},"change":{"mean":{"estimate":-0.006276388654383402,"lower_bound":-0.007193461225298498,"upper_bound":-0.005184594884184566,"unit":"%"},"median":{"estimate":-0.006196267628456931,"lower_bound":-0.007282001228879786,"upper_bound":-0.005142171915930693,"unit":"%"},"change":"NoChange"}} {"reason":"group-complete","group_name":"Convert/FlexStr/bool","benchmarks":["Convert/FlexStr/bool"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_FlexStr_bool"} {"reason":"benchmark-complete","id":"Convert/FlexStr/char","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_FlexStr_char","iteration_count":[96391,192782,289173,385564,481955,578346,674737,771128,867519,963910,1060301,1156692,1253083,1349474,1445865,1542256,1638647,1735038,1831429,1927820,2024211,2120602,2216993,2313384,2409775,2506166,2602557,2698948,2795339,2891730,2988121,3084512,3180903,3277294,3373685,3470076,3566467,3662858,3759249,3855640,3952031,4048422,4144813,4241204,4337595,4433986,4530377,4626768,4723159,4819550,4915941,5012332,5108723,5205114,5301505,5397896,5494287,5590678,5687069,5783460,5879851,5976242,6072633,6169024,6265415,6361806,6458197,6554588,6650979,6747370,6843761,6940152,7036543,7132934,7229325,7325716,7422107,7518498,7614889,7711280,7807671,7904062,8000453,8096844,8193235,8289626,8386017,8482408,8578799,8675190,8771581,8867972,8964363,9060754,9157145,9253536,9349927,9446318,9542709,9639100],"measured_values":[999994.0,1982874.0,3016331.0,4009432.0,4965994.0,6031480.0,7080167.0,8061685.0,9131480.0,10137886.0,11173838.0,12100532.0,13238247.0,14264871.0,15147702.0,16139810.0,17140876.0,18300762.0,19311126.0,20341536.0,21227113.0,22210896.0,23292985.0,24287569.0,25435853.0,26439955.0,27329479.0,28297712.0,29426579.0,30219220.0,31463827.0,32449844.0,33299603.0,34240445.0,35585832.0,36667610.0,37584676.0,38154256.0,39566069.0,40548438.0,41403037.0,42258356.0,43007595.0,43445604.0,44811101.0,45624970.0,46609575.0,47779640.0,48697649.0,49388097.0,50289063.0,51631424.0,52563901.0,53737872.0,54628499.0,55545946.0,56295586.0,57462125.0,58173863.0,59572121.0,60718421.0,61699058.0,62490877.0,63368128.0,64291917.0,65353627.0,66164222.0,66904483.0,68185159.0,69540135.0,70495092.0,71294567.0,72069563.0,72668278.0,74309996.0,75346860.0,76241544.0,77604695.0,78138516.0,78983275.0,80071536.0,80699315.0,82265250.0,82724980.0,83510909.0,84810679.0,85952342.0,87382760.0,88323481.0,89231380.0,90060300.0,90963711.0,91954206.0,92890960.0,94102343.0,94739450.0,95751286.0,96597919.0,97980276.0,98998354.0],"unit":"ns","throughput":[],"typical":{"estimate":10.282149672657084,"lower_bound":10.271077767119014,"upper_bound":10.295262181960354,"unit":"ns"},"mean":{"estimate":10.361244000411341,"lower_bound":10.338545555147986,"upper_bound":10.384475800138246,"unit":"ns"},"median":{"estimate":10.304096006699986,"lower_bound":10.289032477199253,"upper_bound":10.374350302414125,"unit":"ns"},"median_abs_dev":{"estimate":0.10093641064538499,"lower_bound":0.06283540674906538,"upper_bound":0.16300660168618164,"unit":"ns"},"slope":{"estimate":10.282149672657084,"lower_bound":10.271077767119014,"upper_bound":10.295262181960354,"unit":"ns"},"change":{"mean":{"estimate":-0.21730723379706773,"lower_bound":-0.21906946341096814,"upper_bound":-0.21552109670921293,"unit":"%"},"median":{"estimate":-0.22134412851970786,"lower_bound":-0.22261213656589385,"upper_bound":-0.2163023315164867,"unit":"%"},"change":"Improved"}} {"reason":"group-complete","group_name":"Convert/FlexStr/char","benchmarks":["Convert/FlexStr/char"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_FlexStr_char"} {"reason":"benchmark-complete","id":"Convert/FlexStr/i8","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_FlexStr_i8","iteration_count":[96980,193960,290940,387920,484900,581880,678860,775840,872820,969800,1066780,1163760,1260740,1357720,1454700,1551680,1648660,1745640,1842620,1939600,2036580,2133560,2230540,2327520,2424500,2521480,2618460,2715440,2812420,2909400,3006380,3103360,3200340,3297320,3394300,3491280,3588260,3685240,3782220,3879200,3976180,4073160,4170140,4267120,4364100,4461080,4558060,4655040,4752020,4849000,4945980,5042960,5139940,5236920,5333900,5430880,5527860,5624840,5721820,5818800,5915780,6012760,6109740,6206720,6303700,6400680,6497660,6594640,6691620,6788600,6885580,6982560,7079540,7176520,7273500,7370480,7467460,7564440,7661420,7758400,7855380,7952360,8049340,8146320,8243300,8340280,8437260,8534240,8631220,8728200,8825180,8922160,9019140,9116120,9213100,9310080,9407060,9504040,9601020,9698000],"measured_values":[1001767.0,1993925.0,2968792.0,3941944.0,4893105.0,6033864.0,6932257.0,7968538.0,8956940.0,10027437.0,11010038.0,12019900.0,13008632.0,13629929.0,14725612.0,15822651.0,16854754.0,17846402.0,18940885.0,19903047.0,20768565.0,21658491.0,22926291.0,23981750.0,24520419.0,26046108.0,26920964.0,27608407.0,28379357.0,29679448.0,30751098.0,31668434.0,32635374.0,33895312.0,34593523.0,35524605.0,36156742.0,37746564.0,38398037.0,39479495.0,40455353.0,41345648.0,42326025.0,43211581.0,44458633.0,45255111.0,46263600.0,47335340.0,48618921.0,49535545.0,49350576.0,51389135.0,52501382.0,53203702.0,53926029.0,55104731.0,56503359.0,57757234.0,58351830.0,59153948.0,60725354.0,62036967.0,62348658.0,63169702.0,64663551.0,65200447.0,66097988.0,67425200.0,68518300.0,69236239.0,70429268.0,70793578.0,72616189.0,73193081.0,74390279.0,74864787.0,76433357.0,77147149.0,78737319.0,79119644.0,80732398.0,81568681.0,82162475.0,82938565.0,84016966.0,85863053.0,86377747.0,87229239.0,87868930.0,88941802.0,90173785.0,91149943.0,92376856.0,93144600.0,93486687.0,95058263.0,95706020.0,96575075.0,97924561.0,98843411.0],"unit":"ns","throughput":[],"typical":{"estimate":10.20460635324528,"lower_bound":10.194083315906308,"upper_bound":10.21507502773982,"unit":"ns"},"mean":{"estimate":10.208052405668552,"lower_bound":10.195157015786954,"upper_bound":10.220802484150791,"unit":"ns"},"median":{"estimate":10.202682340001374,"lower_bound":10.194811411581636,"upper_bound":10.21757063312023,"unit":"ns"},"median_abs_dev":{"estimate":0.05442193120270872,"lower_bound":0.039827382629693514,"upper_bound":0.07566342455780821,"unit":"ns"},"slope":{"estimate":10.20460635324528,"lower_bound":10.194083315906308,"upper_bound":10.21507502773982,"unit":"ns"},"change":{"mean":{"estimate":-0.022649203880530155,"lower_bound":-0.0239194270832613,"upper_bound":-0.021361713176464264,"unit":"%"},"median":{"estimate":-0.022373060818289048,"lower_bound":-0.023773471049203687,"upper_bound":-0.021123023963591003,"unit":"%"},"change":"Improved"}} {"reason":"group-complete","group_name":"Convert/FlexStr/i8","benchmarks":["Convert/FlexStr/i8"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_FlexStr_i8"} {"reason":"benchmark-complete","id":"Convert/FlexStr/i16","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_FlexStr_i16","iteration_count":[92868,185736,278604,371472,464340,557208,650076,742944,835812,928680,1021548,1114416,1207284,1300152,1393020,1485888,1578756,1671624,1764492,1857360,1950228,2043096,2135964,2228832,2321700,2414568,2507436,2600304,2693172,2786040,2878908,2971776,3064644,3157512,3250380,3343248,3436116,3528984,3621852,3714720,3807588,3900456,3993324,4086192,4179060,4271928,4364796,4457664,4550532,4643400,4736268,4829136,4922004,5014872,5107740,5200608,5293476,5386344,5479212,5572080,5664948,5757816,5850684,5943552,6036420,6129288,6222156,6315024,6407892,6500760,6593628,6686496,6779364,6872232,6965100,7057968,7150836,7243704,7336572,7429440,7522308,7615176,7708044,7800912,7893780,7986648,8079516,8172384,8265252,8358120,8450988,8543856,8636724,8729592,8822460,8915328,9008196,9101064,9193932,9286800],"measured_values":[989003.0,1977685.0,2973099.0,3957695.0,4952617.0,5920290.0,6909233.0,7864561.0,8859967.0,9867424.0,10816431.0,11806115.0,12790989.0,13781145.0,14798511.0,15817540.0,16803267.0,17831134.0,18842548.0,19719579.0,20697410.0,21674210.0,22664285.0,23636606.0,24595733.0,25596056.0,26686331.0,27653392.0,28579957.0,29592193.0,30577388.0,31521918.0,32469130.0,33556399.0,34565280.0,35671885.0,36524690.0,37475420.0,38521581.0,39570858.0,40432069.0,41585161.0,42333028.0,43360603.0,44427704.0,45323060.0,46353020.0,47479052.0,48497400.0,49259493.0,50209492.0,51318091.0,52139878.0,53284795.0,54392302.0,55301795.0,56404703.0,57264841.0,58114490.0,59162174.0,60207202.0,61318477.0,62099746.0,63245937.0,64258494.0,65454418.0,66169472.0,67069637.0,68109786.0,69096134.0,70214292.0,71368677.0,72336039.0,72882323.0,73923705.0,74984584.0,75848309.0,76907404.0,77982410.0,79029583.0,79843625.0,80932867.0,82007902.0,82830120.0,84073443.0,85089126.0,85896987.0,86902240.0,87861777.0,88787129.0,90033308.0,90833383.0,91745290.0,92951474.0,93663012.0,94904722.0,96096049.0,96700874.0,97970317.0,98747228.0],"unit":"ns","throughput":[],"typical":{"estimate":10.633465163382068,"lower_bound":10.628966315923973,"upper_bound":10.63804778438185,"unit":"ns"},"mean":{"estimate":10.62966759334403,"lower_bound":10.625410717933027,"upper_bound":10.633971956242547,"unit":"ns"},"median":{"estimate":10.628185150911484,"lower_bound":10.623329887582376,"upper_bound":10.632262833565772,"unit":"ns"},"median_abs_dev":{"estimate":0.024366669531267704,"lower_bound":0.016591741944463646,"upper_bound":0.02930049605409302,"unit":"ns"},"slope":{"estimate":10.633465163382068,"lower_bound":10.628966315923973,"upper_bound":10.63804778438185,"unit":"ns"},"change":{"mean":{"estimate":0.01557776525247312,"lower_bound":0.01428777591003742,"upper_bound":0.0168780954214648,"unit":"%"},"median":{"estimate":0.016701046369604677,"lower_bound":0.015196035748367365,"upper_bound":0.017719166537590203,"unit":"%"},"change":"Regressed"}} {"reason":"group-complete","group_name":"Convert/FlexStr/i16","benchmarks":["Convert/FlexStr/i16"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_FlexStr_i16"} {"reason":"benchmark-complete","id":"Convert/FlexStr/i32","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_FlexStr_i32","iteration_count":[78220,156440,234660,312880,391100,469320,547540,625760,703980,782200,860420,938640,1016860,1095080,1173300,1251520,1329740,1407960,1486180,1564400,1642620,1720840,1799060,1877280,1955500,2033720,2111940,2190160,2268380,2346600,2424820,2503040,2581260,2659480,2737700,2815920,2894140,2972360,3050580,3128800,3207020,3285240,3363460,3441680,3519900,3598120,3676340,3754560,3832780,3911000,3989220,4067440,4145660,4223880,4302100,4380320,4458540,4536760,4614980,4693200,4771420,4849640,4927860,5006080,5084300,5162520,5240740,5318960,5397180,5475400,5553620,5631840,5710060,5788280,5866500,5944720,6022940,6101160,6179380,6257600,6335820,6414040,6492260,6570480,6648700,6726920,6805140,6883360,6961580,7039800,7118020,7196240,7274460,7352680,7430900,7509120,7587340,7665560,7743780,7822000],"measured_values":[993661.0,2003964.0,2979923.0,3942826.0,4949622.0,5907676.0,6916076.0,7857408.0,8860949.0,9844651.0,10875763.0,11786719.0,12743610.0,13815740.0,14757002.0,15757226.0,16803548.0,17901556.0,18798635.0,19732564.0,20829972.0,21800560.0,22691747.0,23556284.0,24518736.0,25637585.0,26657216.0,27570444.0,28561111.0,29586953.0,30768279.0,31647946.0,32455685.0,33711513.0,34595487.0,35645435.0,36489253.0,37734640.0,38468861.0,39415212.0,40267997.0,41291415.0,42415043.0,43405588.0,44356179.0,45208523.0,46344103.0,47502647.0,48567373.0,49497814.0,50292810.0,51173999.0,52708895.0,53434648.0,54428180.0,55127714.0,56066021.0,57383926.0,58567348.0,59575637.0,60521107.0,61336962.0,62340482.0,63289228.0,64207517.0,65340583.0,66644823.0,67260859.0,68283575.0,69446147.0,70157433.0,71410537.0,72284040.0,73512507.0,74252928.0,75558941.0,76960104.0,78206915.0,78422513.0,79487099.0,80532018.0,81232314.0,82185149.0,83036269.0,84087159.0,85342627.0,86173901.0,86913751.0,88566391.0,90277812.0,90670194.0,91302121.0,92022515.0,93026447.0,94296821.0,95198309.0,96186901.0,97100891.0,97789455.0,99175770.0],"unit":"ns","throughput":[],"typical":{"estimate":12.670252597197653,"lower_bound":12.657964270946778,"upper_bound":12.68330958675442,"unit":"ns"},"mean":{"estimate":12.647213311654047,"lower_bound":12.636280274602939,"upper_bound":12.658387210752466,"unit":"ns"},"median":{"estimate":12.64952218554982,"lower_bound":12.636716952186141,"upper_bound":12.656722492116254,"unit":"ns"},"median_abs_dev":{"estimate":0.057033375464874095,"lower_bound":0.04299371985102309,"upper_bound":0.06536537480497465,"unit":"ns"},"slope":{"estimate":12.670252597197653,"lower_bound":12.657964270946778,"upper_bound":12.68330958675442,"unit":"ns"},"change":{"mean":{"estimate":0.11832785005279844,"lower_bound":0.11495288826241601,"upper_bound":0.12137068662867383,"unit":"%"},"median":{"estimate":0.1233335621048075,"lower_bound":0.12091471654411211,"upper_bound":0.12503417771726322,"unit":"%"},"change":"Regressed"}} {"reason":"group-complete","group_name":"Convert/FlexStr/i32","benchmarks":["Convert/FlexStr/i32"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_FlexStr_i32"} {"reason":"benchmark-complete","id":"Convert/FlexStr/i64","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_FlexStr_i64","iteration_count":[81616,163232,244848,326464,408080,489696,571312,652928,734544,816160,897776,979392,1061008,1142624,1224240,1305856,1387472,1469088,1550704,1632320,1713936,1795552,1877168,1958784,2040400,2122016,2203632,2285248,2366864,2448480,2530096,2611712,2693328,2774944,2856560,2938176,3019792,3101408,3183024,3264640,3346256,3427872,3509488,3591104,3672720,3754336,3835952,3917568,3999184,4080800,4162416,4244032,4325648,4407264,4488880,4570496,4652112,4733728,4815344,4896960,4978576,5060192,5141808,5223424,5305040,5386656,5468272,5549888,5631504,5713120,5794736,5876352,5957968,6039584,6121200,6202816,6284432,6366048,6447664,6529280,6610896,6692512,6774128,6855744,6937360,7018976,7100592,7182208,7263824,7345440,7427056,7508672,7590288,7671904,7753520,7835136,7916752,7998368,8079984,8161600],"measured_values":[991718.0,1990429.0,2978911.0,3979085.0,4993445.0,5983459.0,6983373.0,7953460.0,8945979.0,9925915.0,10908355.0,11864466.0,12812000.0,13860425.0,14839439.0,15852937.0,16871236.0,17855410.0,18794778.0,19799440.0,20741675.0,21776965.0,22723146.0,23677895.0,24672447.0,25630040.0,26714645.0,27656668.0,28699983.0,29696461.0,30600181.0,31601978.0,32627180.0,33713796.0,34747314.0,35634373.0,36640480.0,37736664.0,38696232.0,39595965.0,40639741.0,41677677.0,42483091.0,43564439.0,44498678.0,45353527.0,46377096.0,47521311.0,48697649.0,49865020.0,50771847.0,51714722.0,52554803.0,53543565.0,54312512.0,55351488.0,56395796.0,57256987.0,58289411.0,59339910.0,60361595.0,61266608.0,62324571.0,63210470.0,64234539.0,65299464.0,66167839.0,67041644.0,68264018.0,69093158.0,70015013.0,71177135.0,72101725.0,73091840.0,74381822.0,75346699.0,76042837.0,77073729.0,78137744.0,79229793.0,80406840.0,81124029.0,82192903.0,83026380.0,83951112.0,85114996.0,86227472.0,87042736.0,88039673.0,89008638.0,90094164.0,91041859.0,91809802.0,93100486.0,93875514.0,95053634.0,95940304.0,97051618.0,98011936.0,98874509.0],"unit":"ns","throughput":[],"typical":{"estimate":12.122131855754196,"lower_bound":12.117339679764582,"upper_bound":12.127143749067756,"unit":"ns"},"mean":{"estimate":12.130082613775187,"lower_bound":12.123774031258442,"upper_bound":12.136695790754302,"unit":"ns"},"median":{"estimate":12.12363777052656,"lower_bound":12.119216820231328,"upper_bound":12.13021411923588,"unit":"ns"},"median_abs_dev":{"estimate":0.030590090369084846,"lower_bound":0.019965594977442574,"upper_bound":0.03614815780756561,"unit":"ns"},"slope":{"estimate":12.122131855754196,"lower_bound":12.117339679764582,"upper_bound":12.127143749067756,"unit":"ns"},"change":{"mean":{"estimate":-0.002631887247776521,"lower_bound":-0.004502284309640841,"upper_bound":-0.0008695554628428,"unit":"%"},"median":{"estimate":0.0005501506203158257,"lower_bound":-0.0008993313813971319,"upper_bound":0.0020785283105366143,"unit":"%"},"change":"NoChange"}} {"reason":"group-complete","group_name":"Convert/FlexStr/i64","benchmarks":["Convert/FlexStr/i64"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_FlexStr_i64"} {"reason":"benchmark-complete","id":"Convert/FlexStr/i128","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_FlexStr_i128","iteration_count":[29498,58996,88494,117992,147490,176988,206486,235984,265482,294980,324478,353976,383474,412972,442470,471968,501466,530964,560462,589960,619458,648956,678454,707952,737450,766948,796446,825944,855442,884940,914438,943936,973434,1002932,1032430,1061928,1091426,1120924,1150422,1179920,1209418,1238916,1268414,1297912,1327410,1356908,1386406,1415904,1445402,1474900,1504398,1533896,1563394,1592892,1622390,1651888,1681386,1710884,1740382,1769880,1799378,1828876,1858374,1887872,1917370,1946868,1976366,2005864,2035362,2064860,2094358,2123856,2153354,2182852,2212350,2241848,2271346,2300844,2330342,2359840,2389338,2418836,2448334,2477832,2507330,2536828,2566326,2595824,2625322,2654820,2684318,2713816,2743314,2772812,2802310,2831808,2861306,2890804,2920302,2949800],"measured_values":[990376.0,1978887.0,2985563.0,3935563.0,4855133.0,5869885.0,6821356.0,7913003.0,9100201.0,9866352.0,10910129.0,11971478.0,12862295.0,13951638.0,15052302.0,15664630.0,16700973.0,17629342.0,18824274.0,19881125.0,20643929.0,21512665.0,22587710.0,23410668.0,24599530.0,25702097.0,26524184.0,27688268.0,28755338.0,29761093.0,30564434.0,31417249.0,32425047.0,33525541.0,34645381.0,35551086.0,36331313.0,37343260.0,38460655.0,39369366.0,40411319.0,41201174.0,41951275.0,43259101.0,44589831.0,45446313.0,46496651.0,47165048.0,48226948.0,49412653.0,50181148.0,51341385.0,52117025.0,53122738.0,53868190.0,55550735.0,56228057.0,56903317.0,58528965.0,59323569.0,60384598.0,60984655.0,62179577.0,63252510.0,64205833.0,64926068.0,66060286.0,67007489.0,68705434.0,68616165.0,69911126.0,71632316.0,71929869.0,72918211.0,74173217.0,75270636.0,75811349.0,76544658.0,77981037.0,78690672.0,80154463.0,80627198.0,82050764.0,82641923.0,83688985.0,84178483.0,85927013.0,86740273.0,88156534.0,88487582.0,89650163.0,90821461.0,91554398.0,92720627.0,93990802.0,95071528.0,95879558.0,97164020.0,97962523.0,98836447.0],"unit":"ns","throughput":[],"typical":{"estimate":33.44581820912375,"lower_bound":33.415367792111724,"upper_bound":33.47506152918056,"unit":"ns"},"mean":{"estimate":33.44152476119615,"lower_bound":33.40461998676544,"upper_bound":33.47960817275963,"unit":"ns"},"median":{"estimate":33.42965564707866,"lower_bound":33.38069518200804,"upper_bound":33.482501054036,"unit":"ns"},"median_abs_dev":{"estimate":0.15697045348648922,"lower_bound":0.12761852460765455,"upper_bound":0.18813866581750718,"unit":"ns"},"slope":{"estimate":33.44581820912375,"lower_bound":33.415367792111724,"upper_bound":33.47506152918056,"unit":"ns"},"change":{"mean":{"estimate":0.01432323724924589,"lower_bound":0.012986825546091091,"upper_bound":0.015611873720698577,"unit":"%"},"median":{"estimate":0.014192989126774025,"lower_bound":0.01254683886895025,"upper_bound":0.0161828559059225,"unit":"%"},"change":"Regressed"}} {"reason":"group-complete","group_name":"Convert/FlexStr/i128","benchmarks":["Convert/FlexStr/i128"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_FlexStr_i128"} {"reason":"benchmark-complete","id":"Convert/FlexStr/f32","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_FlexStr_f32","iteration_count":[57268,114536,171804,229072,286340,343608,400876,458144,515412,572680,629948,687216,744484,801752,859020,916288,973556,1030824,1088092,1145360,1202628,1259896,1317164,1374432,1431700,1488968,1546236,1603504,1660772,1718040,1775308,1832576,1889844,1947112,2004380,2061648,2118916,2176184,2233452,2290720,2347988,2405256,2462524,2519792,2577060,2634328,2691596,2748864,2806132,2863400,2920668,2977936,3035204,3092472,3149740,3207008,3264276,3321544,3378812,3436080,3493348,3550616,3607884,3665152,3722420,3779688,3836956,3894224,3951492,4008760,4066028,4123296,4180564,4237832,4295100,4352368,4409636,4466904,4524172,4581440,4638708,4695976,4753244,4810512,4867780,4925048,4982316,5039584,5096852,5154120,5211388,5268656,5325924,5383192,5440460,5497728,5554996,5612264,5669532,5726800],"measured_values":[987219.0,1976042.0,2966367.0,3950440.0,5002502.0,6050938.0,6913311.0,7901722.0,8889683.0,9933118.0,10865324.0,11852933.0,12839041.0,13930317.0,15176016.0,15844251.0,16791996.0,17795516.0,18885690.0,19762179.0,20904513.0,21877505.0,23007344.0,23726586.0,24817402.0,26167037.0,26926135.0,27648713.0,28703070.0,35038375.0,42960726.0,40616938.0,34432598.0,35196073.0,35529435.0,36512857.0,36886856.0,37785687.0,39091641.0,40405057.0,42083465.0,46625635.0,43772924.0,48012683.0,46055937.0,47012529.0,47118509.0,49990778.0,51335113.0,51141366.0,50463684.0,51986536.0,52779007.0,54890034.0,55176607.0,55628222.0,56727744.0,57352477.0,58886362.0,59835148.0,60478156.0,61005875.0,62272003.0,62820721.0,64259396.0,65178906.0,66494799.0,67574523.0,68072124.0,69848439.0,70273403.0,70970943.0,71541083.0,73051944.0,73664013.0,75556106.0,75784558.0,76471409.0,77539411.0,78608686.0,79748013.0,80817428.0,81565965.0,82967719.0,83751083.0,85033852.0,85696577.0,86904665.0,87903806.0,88553186.0,89814995.0,90996893.0,91151576.0,92366827.0,93886645.0,94944127.0,96481998.0,97279058.0,97424674.0,98357491.0],"unit":"ns","throughput":[],"typical":{"estimate":17.362803034540406,"lower_bound":17.299497789512067,"upper_bound":17.447217014613877,"unit":"ns"},"mean":{"estimate":17.562315848995574,"lower_bound":17.4043256052235,"upper_bound":17.767801728543716,"unit":"ns"},"median":{"estimate":17.28301384647079,"lower_bound":17.261684272554216,"upper_bound":17.356703293471508,"unit":"ns"},"median_abs_dev":{"estimate":0.13564791081458938,"lower_bound":0.10046834760117808,"upper_bound":0.19606182846574097,"unit":"ns"},"slope":{"estimate":17.362803034540406,"lower_bound":17.299497789512067,"upper_bound":17.447217014613877,"unit":"ns"},"change":{"mean":{"estimate":0.02175197271914242,"lower_bound":0.013020133771453035,"upper_bound":0.03244373035760385,"unit":"%"},"median":{"estimate":0.006587943145849096,"lower_bound":0.005059651888781769,"upper_bound":0.010844105585810171,"unit":"%"},"change":"Regressed"}} {"reason":"group-complete","group_name":"Convert/FlexStr/f32","benchmarks":["Convert/FlexStr/f32"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_FlexStr_f32"} {"reason":"benchmark-complete","id":"Convert/FlexStr/f64","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_FlexStr_f64","iteration_count":[32813,65626,98439,131252,164065,196878,229691,262504,295317,328130,360943,393756,426569,459382,492195,525008,557821,590634,623447,656260,689073,721886,754699,787512,820325,853138,885951,918764,951577,984390,1017203,1050016,1082829,1115642,1148455,1181268,1214081,1246894,1279707,1312520,1345333,1378146,1410959,1443772,1476585,1509398,1542211,1575024,1607837,1640650,1673463,1706276,1739089,1771902,1804715,1837528,1870341,1903154,1935967,1968780,2001593,2034406,2067219,2100032,2132845,2165658,2198471,2231284,2264097,2296910,2329723,2362536,2395349,2428162,2460975,2493788,2526601,2559414,2592227,2625040,2657853,2690666,2723479,2756292,2789105,2821918,2854731,2887544,2920357,2953170,2985983,3018796,3051609,3084422,3117235,3150048,3182861,3215674,3248487,3281300],"measured_values":[968764.0,1935244.0,2992877.0,3972642.0,4904577.0,6018686.0,6861663.0,8022411.0,8938976.0,9931826.0,10896312.0,11831233.0,12675040.0,14175472.0,14760479.0,15858518.0,16650587.0,17583314.0,18871683.0,19825870.0,20720043.0,21662669.0,22738465.0,23470522.0,24553883.0,25527807.0,26647848.0,27488128.0,28908729.0,30203300.0,30476668.0,31605045.0,32972844.0,33640367.0,34593293.0,35561245.0,36245210.0,37184439.0,38504298.0,39129391.0,40662875.0,41503547.0,42332928.0,43809974.0,44331192.0,45634419.0,46200240.0,47441761.0,47866866.0,49286073.0,50322716.0,51337388.0,52104861.0,54039043.0,54090430.0,55697524.0,57027492.0,57465691.0,58278802.0,59355029.0,60595257.0,61394661.0,62317258.0,63393987.0,64557119.0,64810188.0,66122934.0,66726156.0,68242137.0,68360381.0,70192429.0,70624809.0,72098288.0,73249428.0,73999288.0,75224808.0,75798374.0,77745261.0,79087784.0,80201752.0,80026791.0,80894324.0,82938715.0,83480430.0,84243866.0,84552310.0,85923246.0,87242113.0,88163909.0,89650073.0,89805427.0,90112939.0,91866229.0,93021726.0,94046979.0,94519082.0,95883807.0,96999719.0,97619061.0,99019704.0],"unit":"ns","throughput":[],"typical":{"estimate":30.13782342157142,"lower_bound":30.09768804092641,"upper_bound":30.179378589555718,"unit":"ns"},"mean":{"estimate":30.11930423053122,"lower_bound":30.07527660949904,"upper_bound":30.164244353851615,"unit":"ns"},"median":{"estimate":30.112528030814993,"lower_bound":30.078241347433437,"upper_bound":30.153370884208375,"unit":"ns"},"median_abs_dev":{"estimate":0.17317094437139582,"lower_bound":0.12315986387958408,"upper_bound":0.2418023738951856,"unit":"ns"},"slope":{"estimate":30.13782342157142,"lower_bound":30.09768804092641,"upper_bound":30.179378589555718,"unit":"ns"},"change":{"mean":{"estimate":0.007561473841981137,"lower_bound":0.005242524534996085,"upper_bound":0.01001144962747395,"unit":"%"},"median":{"estimate":0.008299939101912068,"lower_bound":0.00620204563632365,"upper_bound":0.01005046867849324,"unit":"%"},"change":"NoChange"}} {"reason":"group-complete","group_name":"Convert/FlexStr/f64","benchmarks":["Convert/FlexStr/f64"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Convert_FlexStr_f64"} ================================================ FILE: benchmarks/archive/0.8.1/create.json ================================================ {"reason":"benchmark-complete","id":"Create and Destroy - Literal/String/40","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Literal/String/40","iteration_count":[124118,248236,372354,496472,620590,744708,868826,992944,1117062,1241180,1365298,1489416,1613534,1737652,1861770,1985888,2110006,2234124,2358242,2482360,2606478,2730596,2854714,2978832,3102950,3227068,3351186,3475304,3599422,3723540,3847658,3971776,4095894,4220012,4344130,4468248,4592366,4716484,4840602,4964720,5088838,5212956,5337074,5461192,5585310,5709428,5833546,5957664,6081782,6205900,6330018,6454136,6578254,6702372,6826490,6950608,7074726,7198844,7322962,7447080,7571198,7695316,7819434,7943552,8067670,8191788,8315906,8440024,8564142,8688260,8812378,8936496,9060614,9184732,9308850,9432968,9557086,9681204,9805322,9929440,10053558,10177676,10301794,10425912,10550030,10674148,10798266,10922384,11046502,11170620,11294738,11418856,11542974,11667092,11791210,11915328,12039446,12163564,12287682,12411800],"measured_values":[981829.0,2053769.0,2988659.0,3932686.0,4908745.0,5944235.0,7644464.0,7933050.0,8821242.0,9877262.0,10800610.0,11878331.0,12837757.0,13834745.0,14813017.0,15777012.0,16724146.0,17801796.0,18723992.0,19652671.0,20672992.0,21639702.0,22690091.0,23633699.0,24622890.0,25579273.0,26659466.0,27664991.0,28554665.0,29551232.0,30564511.0,31530389.0,32493123.0,33525607.0,34470868.0,35489014.0,36511831.0,37410793.0,38421017.0,39388688.0,40341602.0,41513752.0,42385222.0,43416465.0,44377124.0,45246740.0,46388452.0,47337770.0,48361567.0,49235843.0,50245555.0,51214841.0,52341854.0,53071525.0,54346559.0,55426014.0,56249844.0,57238685.0,58083575.0,59154713.0,60162401.0,61216998.0,62663918.0,63029360.0,64084327.0,65167788.0,65989364.0,67032499.0,68091575.0,68859729.0,69868028.0,71220399.0,72969310.0,73022912.0,73907566.0,75028038.0,75892354.0,77688525.0,77859980.0,78840848.0,79627777.0,80684708.0,82478013.0,82600546.0,83724945.0,84780894.0,85946581.0,87984650.0,89189903.0,90745677.0,91107854.0,92158262.0,93092932.0,94883292.0,95264934.0,96203602.0,96556620.0,97170212.0,97957011.0,98614998.0],"unit":"ns","throughput":[],"typical":{"estimate":7.98367587584802,"lower_bound":7.966224426262211,"upper_bound":8.00135124827179,"unit":"ns"},"mean":{"estimate":7.972202852459889,"lower_bound":7.956072479092832,"upper_bound":7.99411876825086,"unit":"ns"},"median":{"estimate":7.9452951671438115,"lower_bound":7.941583940808884,"upper_bound":7.951396093698685,"unit":"ns"},"median_abs_dev":{"estimate":0.019301150128746305,"lower_bound":0.015048873452542829,"upper_bound":0.028099828055817205,"unit":"ns"},"slope":{"estimate":7.98367587584802,"lower_bound":7.966224426262211,"upper_bound":8.00135124827179,"unit":"ns"},"change":{"mean":{"estimate":0.06582274433343827,"lower_bound":0.06351758759630463,"upper_bound":0.06912783514936727,"unit":"%"},"median":{"estimate":0.06362993497178615,"lower_bound":0.06278411236476367,"upper_bound":0.06490506471443669,"unit":"%"},"change":"Regressed"}} {"reason":"benchmark-complete","id":"Create and Destroy - Literal/FlexStr/40","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Literal/FlexStr/40","iteration_count":[1782421,3564842,5347263,7129684,8912105,10694526,12476947,14259368,16041789,17824210,19606631,21389052,23171473,24953894,26736315,28518736,30301157,32083578,33865999,35648420,37430841,39213262,40995683,42778104,44560525,46342946,48125367,49907788,51690209,53472630,55255051,57037472,58819893,60602314,62384735,64167156,65949577,67731998,69514419,71296840,73079261,74861682,76644103,78426524,80208945,81991366,83773787,85556208,87338629,89121050,90903471,92685892,94468313,96250734,98033155,99815576,101597997,103380418,105162839,106945260,108727681,110510102,112292523,114074944,115857365,117639786,119422207,121204628,122987049,124769470,126551891,128334312,130116733,131899154,133681575,135463996,137246417,139028838,140811259,142593680,144376101,146158522,147940943,149723364,151505785,153288206,155070627,156853048,158635469,160417890,162200311,163982732,165765153,167547574,169329995,171112416,172894837,174677258,176459679,178242100],"measured_values":[990987.0,1970561.0,2952861.0,3963264.0,4965372.0,5942261.0,6953967.0,7941316.0,8876476.0,9876981.0,10865002.0,11903118.0,12917057.0,13882915.0,14865055.0,15848167.0,16838502.0,17780175.0,18830734.0,19736028.0,20687781.0,21757515.0,22706814.0,23848134.0,24829762.0,25806212.0,26786527.0,27693014.0,28644756.0,29563255.0,30580762.0,31587768.0,32607279.0,33641486.0,34685694.0,35670288.0,36550945.0,37511034.0,38439681.0,39546388.0,40556379.0,41509223.0,42515238.0,43477670.0,44394346.0,45391234.0,46588080.0,47388545.0,48445256.0,49626834.0,50623731.0,51600981.0,52470177.0,53371093.0,54338394.0,55419100.0,56410177.0,57374673.0,58296499.0,59254322.0,60357230.0,61166873.0,62180403.0,63179934.0,64296849.0,65143132.0,66166470.0,67352525.0,68459832.0,69168814.0,70116870.0,71132472.0,72275957.0,73092073.0,74104259.0,75302598.0,76069509.0,76881578.0,78254147.0,78973959.0,79910602.0,81111637.0,81891554.0,82884974.0,84067363.0,84992114.0,85882891.0,86930494.0,87908486.0,88838587.0,90037436.0,91000471.0,91948374.0,92921418.0,93891144.0,94815493.0,96081140.0,96924246.0,98201845.0,98871433.0],"unit":"ns","throughput":[],"typical":{"estimate":0.5546425469417191,"lower_bound":0.5544307628326275,"upper_bound":0.5548652845377882,"unit":"ns"},"mean":{"estimate":0.5548303457087573,"lower_bound":0.5545980321195942,"upper_bound":0.5550678251058291,"unit":"ns"},"median":{"estimate":0.5546347982334856,"lower_bound":0.5543154659413483,"upper_bound":0.5549393517849184,"unit":"ns"},"median_abs_dev":{"estimate":0.0012033019636727464,"lower_bound":0.0008174207394938643,"upper_bound":0.0015173271006655162,"unit":"ns"},"slope":{"estimate":0.5546425469417191,"lower_bound":0.5544307628326275,"upper_bound":0.5548652845377882,"unit":"ns"},"change":{"mean":{"estimate":-0.13543660706532812,"lower_bound":-0.1360331474074661,"upper_bound":-0.13488747539551701,"unit":"%"},"median":{"estimate":-0.13522758279563685,"lower_bound":-0.13596260511797897,"upper_bound":-0.13458632173210483,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Literal/AFlexStr/40","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Literal/AFlexStr/40","iteration_count":[1782551,3565102,5347653,7130204,8912755,10695306,12477857,14260408,16042959,17825510,19608061,21390612,23173163,24955714,26738265,28520816,30303367,32085918,33868469,35651020,37433571,39216122,40998673,42781224,44563775,46346326,48128877,49911428,51693979,53476530,55259081,57041632,58824183,60606734,62389285,64171836,65954387,67736938,69519489,71302040,73084591,74867142,76649693,78432244,80214795,81997346,83779897,85562448,87344999,89127550,90910101,92692652,94475203,96257754,98040305,99822856,101605407,103387958,105170509,106953060,108735611,110518162,112300713,114083264,115865815,117648366,119430917,121213468,122996019,124778570,126561121,128343672,130126223,131908774,133691325,135473876,137256427,139038978,140821529,142604080,144386631,146169182,147951733,149734284,151516835,153299386,155081937,156864488,158647039,160429590,162212141,163994692,165777243,167559794,169342345,171124896,172907447,174689998,176472549,178255100],"measured_values":[1247341.0,2415293.0,3032822.0,3960670.0,5445330.0,6244293.0,6960429.0,7989598.0,9063771.0,9924481.0,11183595.0,12277998.0,13274324.0,14022219.0,15261545.0,15775159.0,16838052.0,18191944.0,18941544.0,20044242.0,20990564.0,21883133.0,23100058.0,23835660.0,24771943.0,26107212.0,26943424.0,27961553.0,29018273.0,29568685.0,30561334.0,32424994.0,32629490.0,33634153.0,34939284.0,35520214.0,36503696.0,37428077.0,38765718.0,40091148.0,40911161.0,41774044.0,42639203.0,43837753.0,45578488.0,45487165.0,46790783.0,47457736.0,48403768.0,49463123.0,50892840.0,51524346.0,52393873.0,53305067.0,55337886.0,55361972.0,56215087.0,57089213.0,58174758.0,59287074.0,60149027.0,61493942.0,62310800.0,64466029.0,64309093.0,65267297.0,66879038.0,67579725.0,68529925.0,69327134.0,70902316.0,71307664.0,72239488.0,73190218.0,74736496.0,75074265.0,76120968.0,77781171.0,78102379.0,79298664.0,80400059.0,82016841.0,83264022.0,83795358.0,84066882.0,85588713.0,86942356.0,87073364.0,89484700.0,93343918.0,90396245.0,90884431.0,92125930.0,93184345.0,93786195.0,95353582.0,96130894.0,97231217.0,97960928.0,99161262.0],"unit":"ns","throughput":[],"typical":{"estimate":0.5575973136813726,"lower_bound":0.556465307403071,"upper_bound":0.5591258123503402,"unit":"ns"},"mean":{"estimate":0.5618588389260185,"lower_bound":0.558547665619384,"upper_bound":0.5661713164950877,"unit":"ns"},"median":{"estimate":0.5571621285563723,"lower_bound":0.5559673436159173,"upper_bound":0.5586180034133874,"unit":"ns"},"median_abs_dev":{"estimate":0.0039058840931482297,"lower_bound":0.0026917880553286007,"upper_bound":0.0053420257908071865,"unit":"ns"},"slope":{"estimate":0.5575973136813726,"lower_bound":0.556465307403071,"upper_bound":0.5591258123503402,"unit":"ns"},"change":{"mean":{"estimate":-0.6230994101396141,"lower_bound":-0.6254984344208793,"upper_bound":-0.6200693968310119,"unit":"%"},"median":{"estimate":-0.626469294873609,"lower_bound":-0.6273883703386033,"upper_bound":-0.6253433859595791,"unit":"%"},"change":"Improved"}} {"reason":"group-complete","group_name":"Create and Destroy - Literal","benchmarks":["Create and Destroy - Literal/String/40","Create and Destroy - Literal/FlexStr/40","Create and Destroy - Literal/AFlexStr/40"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Literal"} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/String/0","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/String/0","iteration_count":[2318884,4637768,6956652,9275536,11594420,13913304,16232188,18551072,20869956,23188840,25507724,27826608,30145492,32464376,34783260,37102144,39421028,41739912,44058796,46377680,48696564,51015448,53334332,55653216,57972100,60290984,62609868,64928752,67247636,69566520,71885404,74204288,76523172,78842056,81160940,83479824,85798708,88117592,90436476,92755360,95074244,97393128,99712012,102030896,104349780,106668664,108987548,111306432,113625316,115944200,118263084,120581968,122900852,125219736,127538620,129857504,132176388,134495272,136814156,139133040,141451924,143770808,146089692,148408576,150727460,153046344,155365228,157684112,160002996,162321880,164640764,166959648,169278532,171597416,173916300,176235184,178554068,180872952,183191836,185510720,187829604,190148488,192467372,194786256,197105140,199424024,201742908,204061792,206380676,208699560,211018444,213337328,215656212,217975096,220293980,222612864,224931748,227250632,229569516,231888400],"measured_values":[992269.0,1986211.0,2978730.0,3962894.0,4974869.0,5935789.0,6923158.0,7893386.0,8893048.0,9893713.0,10910468.0,11857010.0,12860569.0,13864091.0,14887778.0,15821115.0,16800309.0,17820652.0,18858206.0,19756537.0,20814410.0,21733621.0,22719336.0,23717477.0,24669009.0,25754724.0,26679725.0,27707440.0,28653714.0,29640350.0,30717100.0,31650727.0,32661592.0,33520127.0,34714739.0,35521216.0,36558069.0,37569053.0,38467153.0,39483338.0,40594111.0,41597199.0,42462599.0,43474183.0,44469217.0,45381957.0,46567942.0,47358829.0,48515629.0,49425803.0,50419053.0,51500010.0,52278654.0,53408734.0,54363271.0,55282031.0,56430907.0,57303258.0,58452113.0,59377075.0,60335018.0,61295998.0,62300008.0,63182790.0,64378755.0,65236428.0,66127996.0,67041666.0,68152480.0,69141122.0,70105718.0,71103026.0,72173934.0,73052617.0,74111832.0,75295695.0,75927461.0,77038966.0,78103600.0,79060773.0,79968553.0,81040702.0,81836738.0,82940138.0,83929201.0,85055634.0,85932565.0,87041033.0,87837882.0,88831213.0,89943468.0,90962458.0,91846060.0,92765082.0,93867959.0,94895905.0,96145852.0,96944855.0,98023828.0,99077102.0],"unit":"ns","throughput":[],"typical":{"estimate":0.4262227732064979,"lower_bound":0.42607432543492,"upper_bound":0.42638009154375306,"unit":"ns"},"mean":{"estimate":0.42640676969414926,"lower_bound":0.4262606164339837,"upper_bound":0.4265588787782905,"unit":"ns"},"median":{"estimate":0.4262511269135576,"lower_bound":0.426114917699555,"upper_bound":0.42642050551040933,"unit":"ns"},"median_abs_dev":{"estimate":0.00066137765522772,"lower_bound":0.000489272098882378,"upper_bound":0.0009172166657454707,"unit":"ns"},"slope":{"estimate":0.4262227732064979,"lower_bound":0.42607432543492,"upper_bound":0.42638009154375306,"unit":"ns"},"change":{"mean":{"estimate":-0.43796679344558453,"lower_bound":-0.4382941666913218,"upper_bound":-0.43766461479860036,"unit":"%"},"median":{"estimate":-0.4379782027473247,"lower_bound":-0.4382136298021311,"upper_bound":-0.4376009426217664,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/Rc/0","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/Rc_str_/0","iteration_count":[100488,200976,301464,401952,502440,602928,703416,803904,904392,1004880,1105368,1205856,1306344,1406832,1507320,1607808,1708296,1808784,1909272,2009760,2110248,2210736,2311224,2411712,2512200,2612688,2713176,2813664,2914152,3014640,3115128,3215616,3316104,3416592,3517080,3617568,3718056,3818544,3919032,4019520,4120008,4220496,4320984,4421472,4521960,4622448,4722936,4823424,4923912,5024400,5124888,5225376,5325864,5426352,5526840,5627328,5727816,5828304,5928792,6029280,6129768,6230256,6330744,6431232,6531720,6632208,6732696,6833184,6933672,7034160,7134648,7235136,7335624,7436112,7536600,7637088,7737576,7838064,7938552,8039040,8139528,8240016,8340504,8440992,8541480,8641968,8742456,8842944,8943432,9043920,9144408,9244896,9345384,9445872,9546360,9646848,9747336,9847824,9948312,10048800],"measured_values":[1052713.0,2015997.0,3034175.0,4050028.0,5058749.0,6073869.0,7087479.0,8093795.0,9094500.0,10116835.0,11122870.0,12113725.0,13132625.0,14139552.0,15131250.0,16122666.0,17143338.0,18233844.0,19151772.0,20198063.0,21193598.0,22181379.0,23235674.0,24256828.0,25503137.0,26282905.0,27203648.0,28291296.0,29259871.0,30248652.0,31230762.0,32329493.0,33266417.0,34271108.0,35315777.0,36280834.0,37359846.0,38288075.0,39373559.0,40384464.0,41310598.0,42436238.0,43506364.0,44390659.0,45986912.0,46415583.0,47415696.0,48407224.0,49339470.0,50526938.0,51432572.0,52617917.0,53515746.0,54479310.0,55499202.0,56514985.0,57468881.0,58509611.0,59567064.0,60495081.0,61564656.0,62599916.0,63709077.0,64710332.0,65624173.0,66546790.0,67678562.0,68606599.0,69478671.0,70742894.0,71779718.0,72519438.0,73642805.0,74674849.0,75535007.0,76719250.0,77807620.0,78883608.0,79611495.0,81232756.0,81758401.0,82616065.0,84383863.0,84745987.0,85663666.0,86680470.0,87718196.0,88838286.0,89857776.0,90909408.0,91692280.0,92766403.0,93782237.0,94693853.0,95915536.0,96845336.0,98347141.0,98765712.0,99864273.0,101039749.0],"unit":"ns","throughput":[],"typical":{"estimate":10.045928151219066,"lower_bound":10.040801069821086,"upper_bound":10.051866279762912,"unit":"ns"},"mean":{"estimate":10.052939231625947,"lower_bound":10.045276936085195,"upper_bound":10.063872724200184,"unit":"ns"},"median":{"estimate":10.044083030045115,"lower_bound":10.039813685405697,"upper_bound":10.047534459680563,"unit":"ns"},"median_abs_dev":{"estimate":0.016019211385285902,"lower_bound":0.012344659206477943,"upper_bound":0.020712975399035206,"unit":"ns"},"slope":{"estimate":10.045928151219066,"lower_bound":10.040801069821086,"upper_bound":10.051866279762912,"unit":"ns"},"change":{"mean":{"estimate":-0.011302829812843807,"lower_bound":-0.012336430236348613,"upper_bound":-0.010175971364456091,"unit":"%"},"median":{"estimate":-0.011452512440599416,"lower_bound":-0.012032152834472343,"upper_bound":-0.010805153890145802,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/Arc/0","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/Arc_str_/0","iteration_count":[91863,183726,275589,367452,459315,551178,643041,734904,826767,918630,1010493,1102356,1194219,1286082,1377945,1469808,1561671,1653534,1745397,1837260,1929123,2020986,2112849,2204712,2296575,2388438,2480301,2572164,2664027,2755890,2847753,2939616,3031479,3123342,3215205,3307068,3398931,3490794,3582657,3674520,3766383,3858246,3950109,4041972,4133835,4225698,4317561,4409424,4501287,4593150,4685013,4776876,4868739,4960602,5052465,5144328,5236191,5328054,5419917,5511780,5603643,5695506,5787369,5879232,5971095,6062958,6154821,6246684,6338547,6430410,6522273,6614136,6705999,6797862,6889725,6981588,7073451,7165314,7257177,7349040,7440903,7532766,7624629,7716492,7808355,7900218,7992081,8083944,8175807,8267670,8359533,8451396,8543259,8635122,8726985,8818848,8910711,9002574,9094437,9186300],"measured_values":[987490.0,1980770.0,2974422.0,3962603.0,5776598.0,5925089.0,6923208.0,7897904.0,8885524.0,9882470.0,10936468.0,11927033.0,12877753.0,13853981.0,14835760.0,15853106.0,16859592.0,17824118.0,18803743.0,19770974.0,20796556.0,21752787.0,22769522.0,23731243.0,24763607.0,25797294.0,26722126.0,27707622.0,28672939.0,29932384.0,30900196.0,31836279.0,32874515.0,33844651.0,35293645.0,35881097.0,36886491.0,37832862.0,38874064.0,39784929.0,40804809.0,41622628.0,42690150.0,43583451.0,44549860.0,45586242.0,46505624.0,47453268.0,48502975.0,49526703.0,50506709.0,51593807.0,52494153.0,53496680.0,54501263.0,55472000.0,56449411.0,57492757.0,58389715.0,59375992.0,60394811.0,61488502.0,62368579.0,63386025.0,64345741.0,65275864.0,66314940.0,67367714.0,68296874.0,69352692.0,70366342.0,71358870.0,72311385.0,73491318.0,74358410.0,76357804.0,76380358.0,77263120.0,78388971.0,79618881.0,80180363.0,81238025.0,82095750.0,83229707.0,84386116.0,85512819.0,86504056.0,87345069.0,88312059.0,89130870.0,90168254.0,91133653.0,92114499.0,93611403.0,95094893.0,95638702.0,96414101.0,97062577.0,98346028.0,99159889.0],"unit":"ns","throughput":[],"typical":{"estimate":10.801842858686959,"lower_bound":10.793603969408723,"upper_bound":10.811171736847278,"unit":"ns"},"mean":{"estimate":10.814198530889179,"lower_bound":10.791100755540999,"upper_bound":10.854124174134121,"unit":"ns"},"median":{"estimate":10.784434079715705,"lower_bound":10.782428964169295,"upper_bound":10.788622616685931,"unit":"ns"},"median_abs_dev":{"estimate":0.017841922400071424,"lower_bound":0.013034688838006387,"upper_bound":0.027399092547671183,"unit":"ns"},"slope":{"estimate":10.801842858686959,"lower_bound":10.793603969408723,"upper_bound":10.811171736847278,"unit":"ns"},"change":{"mean":{"estimate":-0.015134829999275401,"lower_bound":-0.017385720097796535,"upper_bound":-0.011205229466712253,"unit":"%"},"median":{"estimate":-0.0173823296756751,"lower_bound":-0.017937393713267857,"upper_bound":-0.016655372169396276,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/FlexStr/0","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/FlexStr/0","iteration_count":[2294420,4588840,6883260,9177680,11472100,13766520,16060940,18355360,20649780,22944200,25238620,27533040,29827460,32121880,34416300,36710720,39005140,41299560,43593980,45888400,48182820,50477240,52771660,55066080,57360500,59654920,61949340,64243760,66538180,68832600,71127020,73421440,75715860,78010280,80304700,82599120,84893540,87187960,89482380,91776800,94071220,96365640,98660060,100954480,103248900,105543320,107837740,110132160,112426580,114721000,117015420,119309840,121604260,123898680,126193100,128487520,130781940,133076360,135370780,137665200,139959620,142254040,144548460,146842880,149137300,151431720,153726140,156020560,158314980,160609400,162903820,165198240,167492660,169787080,172081500,174375920,176670340,178964760,181259180,183553600,185848020,188142440,190436860,192731280,195025700,197320120,199614540,201908960,204203380,206497800,208792220,211086640,213381060,215675480,217969900,220264320,222558740,224853160,227147580,229442000],"measured_values":[983532.0,2706635.0,4090966.0,5033600.0,5140513.0,6326128.0,7863619.0,8152716.0,9631747.0,10205454.0,11788620.0,12856593.0,13596954.0,13942238.0,15005341.0,15910785.0,16980551.0,18680379.0,18758056.0,20616455.0,21771873.0,22704187.0,22697276.0,24758116.0,25615390.0,26603411.0,27400460.0,28350008.0,28592718.0,29306498.0,30446819.0,32018854.0,33358291.0,34272321.0,34131375.0,36343903.0,37041083.0,37580917.0,39919733.0,39831666.0,40300184.0,42641877.0,42985068.0,44045205.0,46172464.0,45759961.0,47158970.0,48742308.0,49112309.0,49785474.0,50833949.0,51168142.0,53265693.0,53441326.0,54807091.0,54802122.0,57805007.0,58462693.0,59274931.0,59648488.0,60880982.0,61310786.0,62823250.0,62984364.0,64553846.0,65303444.0,65839090.0,67598521.0,68228804.0,71653538.0,72655224.0,72445668.0,74136150.0,74850692.0,75318648.0,87740878.0,147346384.0,78188702.0,78379874.0,81312025.0,90312678.0,83080474.0,82650510.0,84425140.0,84472079.0,85762422.0,89408587.0,87769632.0,88744479.0,90486286.0,92591903.0,92038384.0,93222517.0,93482039.0,93855926.0,94243792.0,96289133.0,96631792.0,97190861.0,99453775.0],"unit":"ns","throughput":[],"typical":{"estimate":0.44484647511271125,"lower_bound":0.43566728806663174,"upper_bound":0.46148427187217744,"unit":"ns"},"mean":{"estimate":0.44806490252138287,"lower_bound":0.4403144081157315,"upper_bound":0.45852398523792415,"unit":"ns"},"median":{"estimate":0.43686087907230187,"lower_bound":0.4346990445594886,"upper_bound":0.43931689294777826,"unit":"ns"},"median_abs_dev":{"estimate":0.008420601862078757,"lower_bound":0.005738052489844801,"upper_bound":0.010663076944977644,"unit":"ns"},"slope":{"estimate":0.44484647511271125,"lower_bound":0.43566728806663174,"upper_bound":0.46148427187217744,"unit":"ns"},"change":{"mean":{"estimate":-0.30114970618633874,"lower_bound":-0.31293555443547283,"upper_bound":-0.2843114460361224,"unit":"%"},"median":{"estimate":-0.3171697166977271,"lower_bound":-0.320258216984563,"upper_bound":-0.3141378652574983,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/AFlexStr/0","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/AFlexStr/0","iteration_count":[2305022,4610044,6915066,9220088,11525110,13830132,16135154,18440176,20745198,23050220,25355242,27660264,29965286,32270308,34575330,36880352,39185374,41490396,43795418,46100440,48405462,50710484,53015506,55320528,57625550,59930572,62235594,64540616,66845638,69150660,71455682,73760704,76065726,78370748,80675770,82980792,85285814,87590836,89895858,92200880,94505902,96810924,99115946,101420968,103725990,106031012,108336034,110641056,112946078,115251100,117556122,119861144,122166166,124471188,126776210,129081232,131386254,133691276,135996298,138301320,140606342,142911364,145216386,147521408,149826430,152131452,154436474,156741496,159046518,161351540,163656562,165961584,168266606,170571628,172876650,175181672,177486694,179791716,182096738,184401760,186706782,189011804,191316826,193621848,195926870,198231892,200536914,202841936,205146958,207451980,209757002,212062024,214367046,216672068,218977090,221282112,223587134,225892156,228197178,230502200],"measured_values":[998069.0,1975971.0,2966146.0,4668950.0,5431714.0,5931871.0,7600151.0,8721563.0,8878401.0,10188982.0,11689293.0,12548609.0,13650917.0,14121117.0,15673637.0,16688868.0,17531524.0,17981867.0,19610149.0,20694143.0,21413775.0,21555483.0,23773903.0,24893432.0,25621032.0,25844964.0,26435664.0,27596952.0,29006230.0,29506308.0,31589401.0,32494915.0,33363330.0,33854510.0,34325112.0,35802648.0,36935944.0,37652081.0,39492154.0,40439808.0,41190531.0,42423734.0,42551045.0,43695283.0,44671161.0,45313767.0,47348780.0,48440126.0,49486668.0,50423231.0,51429747.0,52481959.0,53132021.0,53917026.0,54208378.0,55853293.0,56920112.0,57210653.0,58210666.0,59584797.0,61273314.0,62623371.0,63012708.0,65374039.0,64810462.0,65598795.0,67118772.0,67901584.0,68080172.0,69842820.0,70698931.0,70643376.0,71758767.0,73342937.0,73785846.0,76445190.0,76829339.0,77077258.0,82411117.0,80573027.0,81475315.0,82845179.0,81623155.0,85690886.0,83933068.0,85651451.0,85897358.0,88246996.0,89076206.0,89268361.0,91933426.0,92454954.0,92963085.0,92552128.0,95079784.0,95388618.0,98982923.0,97481672.0,99002020.0,99757720.0],"unit":"ns","throughput":[],"typical":{"estimate":0.43373510973723595,"lower_bound":0.4324868006862741,"upper_bound":0.4350990938263429,"unit":"ns"},"mean":{"estimate":0.4371991153947895,"lower_bound":0.43502272804996867,"upper_bound":0.4396664471490224,"unit":"ns"},"median":{"estimate":0.43388352005449804,"lower_bound":0.432829019284116,"upper_bound":0.43607790306013217,"unit":"ns"},"median_abs_dev":{"estimate":0.006542149931041033,"lower_bound":0.005248096743949968,"upper_bound":0.008957631602169745,"unit":"ns"},"slope":{"estimate":0.43373510973723595,"lower_bound":0.4324868006862741,"upper_bound":0.4350990938263429,"unit":"ns"},"change":{"mean":{"estimate":-0.70694649424737,"lower_bound":-0.7082459682442295,"upper_bound":-0.7052245526920553,"unit":"%"},"median":{"estimate":-0.7089151224147464,"lower_bound":-0.7096473689561822,"upper_bound":-0.7072962034531352,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/CompactStr/0","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/CompactStr/0","iteration_count":[930622,1861244,2791866,3722488,4653110,5583732,6514354,7444976,8375598,9306220,10236842,11167464,12098086,13028708,13959330,14889952,15820574,16751196,17681818,18612440,19543062,20473684,21404306,22334928,23265550,24196172,25126794,26057416,26988038,27918660,28849282,29779904,30710526,31641148,32571770,33502392,34433014,35363636,36294258,37224880,38155502,39086124,40016746,40947368,41877990,42808612,43739234,44669856,45600478,46531100,47461722,48392344,49322966,50253588,51184210,52114832,53045454,53976076,54906698,55837320,56767942,57698564,58629186,59559808,60490430,61421052,62351674,63282296,64212918,65143540,66074162,67004784,67935406,68866028,69796650,70727272,71657894,72588516,73519138,74449760,75380382,76311004,77241626,78172248,79102870,80033492,80964114,81894736,82825358,83755980,84686602,85617224,86547846,87478468,88409090,89339712,90270334,91200956,92131578,93062200],"measured_values":[991928.0,1983816.0,2978209.0,3959277.0,4963197.0,5954213.0,6937416.0,7921869.0,8897446.0,9895807.0,10870341.0,11848995.0,12878474.0,13879089.0,14902546.0,15801689.0,16834255.0,17795964.0,18765170.0,19772047.0,20784192.0,21748960.0,22785693.0,23763293.0,24749411.0,25711361.0,26660549.0,27666794.0,28575725.0,29610784.0,30643040.0,31741269.0,32556613.0,33477025.0,34550558.0,35638889.0,36621569.0,37615060.0,38648937.0,39568177.0,40434207.0,41438970.0,42461596.0,43408339.0,44593914.0,45623484.0,46660417.0,47403093.0,48365525.0,49460718.0,50437297.0,51447220.0,52302981.0,53330616.0,54515339.0,55427797.0,56312812.0,57277790.0,58386980.0,59322781.0,60550666.0,61551101.0,62264902.0,63391325.0,64222168.0,65203204.0,66238275.0,67144121.0,68011302.0,68992811.0,70213021.0,71287165.0,72147354.0,73285859.0,74161327.0,75062022.0,76332808.0,77420668.0,78304131.0,79144802.0,80033124.0,81080227.0,81930066.0,83263149.0,83976721.0,85362735.0,86266336.0,87014663.0,87915089.0,88941681.0,90039520.0,90817694.0,92032033.0,92821869.0,93855425.0,94929749.0,95976070.0,97091793.0,97634861.0,98914374.0],"unit":"ns","throughput":[],"typical":{"estimate":1.0627176624507044,"lower_bound":1.062244541296121,"upper_bound":1.0631972015148239,"unit":"ns"},"mean":{"estimate":1.0629163624358395,"lower_bound":1.0625105767900414,"upper_bound":1.0633242984139402,"unit":"ns"},"median":{"estimate":1.0626303100143746,"lower_bound":1.0622971528828042,"upper_bound":1.063354079314695,"unit":"ns"},"median_abs_dev":{"estimate":0.002126178683312418,"lower_bound":0.0016557261373709622,"upper_bound":0.002714559090259954,"unit":"ns"},"slope":{"estimate":1.0627176624507044,"lower_bound":1.062244541296121,"upper_bound":1.0631972015148239,"unit":"ns"},"change":{"mean":{"estimate":-0.2920563794784343,"lower_bound":-0.2926923345158221,"upper_bound":-0.2914532536188638,"unit":"%"},"median":{"estimate":-0.2918306910127567,"lower_bound":-0.2923149542676882,"upper_bound":-0.2910464104073046,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/KString/0","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/KString/0","iteration_count":[155567,311134,466701,622268,777835,933402,1088969,1244536,1400103,1555670,1711237,1866804,2022371,2177938,2333505,2489072,2644639,2800206,2955773,3111340,3266907,3422474,3578041,3733608,3889175,4044742,4200309,4355876,4511443,4667010,4822577,4978144,5133711,5289278,5444845,5600412,5755979,5911546,6067113,6222680,6378247,6533814,6689381,6844948,7000515,7156082,7311649,7467216,7622783,7778350,7933917,8089484,8245051,8400618,8556185,8711752,8867319,9022886,9178453,9334020,9489587,9645154,9800721,9956288,10111855,10267422,10422989,10578556,10734123,10889690,11045257,11200824,11356391,11511958,11667525,11823092,11978659,12134226,12289793,12445360,12600927,12756494,12912061,13067628,13223195,13378762,13534329,13689896,13845463,14001030,14156597,14312164,14467731,14623298,14778865,14934432,15089999,15245566,15401133,15556700],"measured_values":[994954.0,1990248.0,2979292.0,3939018.0,4939703.0,5933485.0,6950069.0,7908865.0,8892507.0,9867944.0,10897022.0,11840830.0,12842526.0,13869661.0,14804109.0,15826416.0,16890361.0,17807836.0,18740072.0,19742461.0,20778111.0,21674729.0,22700341.0,23732655.0,24716308.0,25709678.0,26612799.0,27748098.0,28594461.0,29646101.0,30637649.0,31692907.0,32755940.0,33560524.0,34626521.0,35582772.0,36526328.0,37614148.0,38584555.0,39660704.0,40680934.0,41540021.0,42498367.0,43412407.0,44545422.0,45540726.0,46405213.0,47562454.0,48364674.0,49561970.0,50392924.0,51475744.0,52365288.0,53383376.0,54434416.0,55394003.0,56378187.0,57418616.0,58466380.0,59386452.0,60265196.0,61276410.0,62239254.0,63296586.0,64371340.0,65367898.0,66259325.0,67028451.0,68116512.0,69232184.0,70160833.0,71314005.0,72187289.0,73221257.0,74173008.0,75090146.0,76160161.0,77056838.0,78104403.0,79126928.0,80061919.0,81047955.0,81939234.0,83021683.0,84287290.0,85058268.0,86090063.0,87297389.0,88146456.0,88806245.0,89947176.0,91036969.0,91861480.0,93415082.0,93919306.0,95018779.0,95725476.0,96859593.0,97950288.0,98731138.0],"unit":"ns","throughput":[],"typical":{"estimate":6.3572844294491535,"lower_bound":6.35475821112065,"upper_bound":6.36006920810334,"unit":"ns"},"mean":{"estimate":6.357615699755123,"lower_bound":6.355209652960003,"upper_bound":6.360116461342188,"unit":"ns"},"median":{"estimate":6.356685991468005,"lower_bound":6.353653108219737,"upper_bound":6.3581672205544875,"unit":"ns"},"median_abs_dev":{"estimate":0.009283907647018735,"lower_bound":0.007022505249526887,"upper_bound":0.013736560527846442,"unit":"ns"},"slope":{"estimate":6.3572844294491535,"lower_bound":6.35475821112065,"upper_bound":6.36006920810334,"unit":"ns"},"change":{"mean":{"estimate":-0.31295472525829926,"lower_bound":-0.31374984563087854,"upper_bound":-0.31219789759484234,"unit":"%"},"median":{"estimate":-0.31189700728735537,"lower_bound":-0.31255847522421376,"upper_bound":-0.3113895377922985,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/SmartString/0","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/SmartString/0","iteration_count":[137934,275868,413802,551736,689670,827604,965538,1103472,1241406,1379340,1517274,1655208,1793142,1931076,2069010,2206944,2344878,2482812,2620746,2758680,2896614,3034548,3172482,3310416,3448350,3586284,3724218,3862152,4000086,4138020,4275954,4413888,4551822,4689756,4827690,4965624,5103558,5241492,5379426,5517360,5655294,5793228,5931162,6069096,6207030,6344964,6482898,6620832,6758766,6896700,7034634,7172568,7310502,7448436,7586370,7724304,7862238,8000172,8138106,8276040,8413974,8551908,8689842,8827776,8965710,9103644,9241578,9379512,9517446,9655380,9793314,9931248,10069182,10207116,10345050,10482984,10620918,10758852,10896786,11034720,11172654,11310588,11448522,11586456,11724390,11862324,12000258,12138192,12276126,12414060,12551994,12689928,12827862,12965796,13103730,13241664,13379598,13517532,13655466,13793400],"measured_values":[1003310.0,1993134.0,2980443.0,3976068.0,4956745.0,5983449.0,6976780.0,7972024.0,8941260.0,9888774.0,10919634.0,11902527.0,12914412.0,13898506.0,14856479.0,15867804.0,16875362.0,17851740.0,18834571.0,19838523.0,20871818.0,21828240.0,22804949.0,23777079.0,24793254.0,25722102.0,26856510.0,27746975.0,28825098.0,29749537.0,30725986.0,31716292.0,32753184.0,33731156.0,34678950.0,35673915.0,36657488.0,37635719.0,38666831.0,39727330.0,40660456.0,41616907.0,42631057.0,43690714.0,44605235.0,45653841.0,46482079.0,47553056.0,48586103.0,50041989.0,51114591.0,51975039.0,52938524.0,53837175.0,54612563.0,55696185.0,56583856.0,57691813.0,58589332.0,59637467.0,60545617.0,61452534.0,62614945.0,63663330.0,64526874.0,65558448.0,66444365.0,67418340.0,68554801.0,69471307.0,70436004.0,71399206.0,72294722.0,73563936.0,74527179.0,75425170.0,76351183.0,77446997.0,78477369.0,79397851.0,80304198.0,81384933.0,82489366.0,83274341.0,84468132.0,85221949.0,86471424.0,87320403.0,88557253.0,89436299.0,90254788.0,91347958.0,92192867.0,93381088.0,94233151.0,95319116.0,96140743.0,97344712.0,98136692.0,99182171.0],"unit":"ns","throughput":[],"typical":{"estimate":7.1974237837342985,"lower_bound":7.194713120200691,"upper_bound":7.200359075074255,"unit":"ns"},"mean":{"estimate":7.1985306422589135,"lower_bound":7.195215717088274,"upper_bound":7.202217473872209,"unit":"ns"},"median":{"estimate":7.195281590644171,"lower_bound":7.190955014287916,"upper_bound":7.19842430679407,"unit":"ns"},"median_abs_dev":{"estimate":0.01175167013181279,"lower_bound":0.008686515407574097,"upper_bound":0.013932310906352168,"unit":"ns"},"slope":{"estimate":7.1974237837342985,"lower_bound":7.194713120200691,"upper_bound":7.200359075074255,"unit":"ns"},"change":{"mean":{"estimate":-0.17988719538915565,"lower_bound":-0.1810227882545326,"upper_bound":-0.17883067182509002,"unit":"%"},"median":{"estimate":-0.17871917315115193,"lower_bound":-0.18002092756507648,"upper_bound":-0.17790069176178713,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/SmolStr/0","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/SmolStr/0","iteration_count":[89711,179422,269133,358844,448555,538266,627977,717688,807399,897110,986821,1076532,1166243,1255954,1345665,1435376,1525087,1614798,1704509,1794220,1883931,1973642,2063353,2153064,2242775,2332486,2422197,2511908,2601619,2691330,2781041,2870752,2960463,3050174,3139885,3229596,3319307,3409018,3498729,3588440,3678151,3767862,3857573,3947284,4036995,4126706,4216417,4306128,4395839,4485550,4575261,4664972,4754683,4844394,4934105,5023816,5113527,5203238,5292949,5382660,5472371,5562082,5651793,5741504,5831215,5920926,6010637,6100348,6190059,6279770,6369481,6459192,6548903,6638614,6728325,6818036,6907747,6997458,7087169,7176880,7266591,7356302,7446013,7535724,7625435,7715146,7804857,7894568,7984279,8073990,8163701,8253412,8343123,8432834,8522545,8612256,8701967,8791678,8881389,8971100],"measured_values":[994403.0,1976943.0,2952801.0,3961000.0,4943300.0,5964624.0,6939750.0,7909496.0,8888008.0,9914733.0,10838281.0,11850769.0,12864838.0,13823323.0,14807997.0,15829281.0,16762427.0,17724890.0,18758558.0,19710870.0,20768273.0,21736035.0,22708886.0,23643727.0,24791439.0,25655397.0,26648916.0,27720176.0,28702054.0,29668014.0,30588706.0,31584963.0,32542055.0,33510729.0,34540890.0,35610625.0,36474420.0,37505253.0,38463907.0,39444253.0,40489502.0,41602380.0,42474711.0,43616523.0,44341556.0,45479601.0,46404382.0,47444381.0,48362619.0,49406536.0,50478886.0,51444515.0,52260309.0,53545112.0,54410370.0,55248447.0,56357327.0,57315351.0,58201457.0,59255724.0,60317315.0,61107390.0,62443290.0,63313878.0,64106519.0,65127051.0,66276278.0,67246835.0,68200240.0,69237093.0,70362254.0,71340194.0,72183592.0,73223451.0,73981686.0,75025693.0,76097613.0,77119708.0,78062063.0,79035355.0,80011113.0,81168263.0,81988007.0,82940138.0,84046723.0,85023583.0,85950708.0,87126064.0,87893907.0,89021703.0,89911507.0,90787637.0,91896827.0,92961062.0,93930438.0,94842604.0,95934521.0,96707445.0,97708220.0,98860302.0],"unit":"ns","throughput":[],"typical":{"estimate":11.015914286193917,"lower_bound":11.012662310149436,"upper_bound":11.019187832813625,"unit":"ns"},"mean":{"estimate":11.015420228965661,"lower_bound":11.011484756531669,"upper_bound":11.019476840685703,"unit":"ns"},"median":{"estimate":11.0145807077551,"lower_bound":11.008632163279865,"upper_bound":11.020573241934422,"unit":"ns"},"median_abs_dev":{"estimate":0.01874908946337306,"lower_bound":0.014223179688704353,"upper_bound":0.02252581137785413,"unit":"ns"},"slope":{"estimate":11.015914286193917,"lower_bound":11.012662310149436,"upper_bound":11.019187832813625,"unit":"ns"},"change":{"mean":{"estimate":-0.19348169102622492,"lower_bound":-0.19496014930503502,"upper_bound":-0.19217146396913679,"unit":"%"},"median":{"estimate":-0.19163533784024245,"lower_bound":-0.19252507164082133,"upper_bound":-0.19084766014161333,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/String/10","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/String/10","iteration_count":[101110,202220,303330,404440,505550,606660,707770,808880,909990,1011100,1112210,1213320,1314430,1415540,1516650,1617760,1718870,1819980,1921090,2022200,2123310,2224420,2325530,2426640,2527750,2628860,2729970,2831080,2932190,3033300,3134410,3235520,3336630,3437740,3538850,3639960,3741070,3842180,3943290,4044400,4145510,4246620,4347730,4448840,4549950,4651060,4752170,4853280,4954390,5055500,5156610,5257720,5358830,5459940,5561050,5662160,5763270,5864380,5965490,6066600,6167710,6268820,6369930,6471040,6572150,6673260,6774370,6875480,6976590,7077700,7178810,7279920,7381030,7482140,7583250,7684360,7785470,7886580,7987690,8088800,8189910,8291020,8392130,8493240,8594350,8695460,8796570,8897680,8998790,9099900,9201010,9302120,9403230,9504340,9605450,9706560,9807670,9908780,10009890,10111000],"measured_values":[988292.0,1982944.0,2960445.0,3966600.0,4945574.0,5945177.0,6942154.0,7929534.0,8897527.0,9888463.0,10824294.0,11831392.0,13007960.0,14149961.0,15100441.0,16177120.0,17214955.0,18225358.0,19205043.0,20188485.0,21640143.0,22193471.0,23116508.0,24659941.0,25190805.0,26225506.0,27150326.0,28735899.0,29195478.0,30831206.0,31269866.0,32323551.0,33407574.0,34399852.0,35223362.0,36265815.0,37295906.0,38282374.0,39228405.0,40292360.0,41293605.0,42318485.0,43387039.0,44270152.0,45296674.0,46387240.0,47357005.0,48471336.0,50243490.0,50260803.0,51339236.0,52466440.0,53256786.0,54224659.0,55447434.0,56629241.0,57511762.0,58317128.0,59414745.0,60446438.0,61455429.0,62540554.0,63566336.0,64500425.0,65597872.0,66375465.0,67834899.0,70094265.0,71354582.0,72252533.0,73391629.0,74421149.0,75425310.0,76496138.0,78079475.0,78598769.0,79588532.0,80472206.0,80916747.0,81126314.0,82248528.0,83744863.0,83758858.0,84793717.0,85608401.0,87041924.0,87736239.0,88658035.0,89782323.0,91855518.0,92623022.0,93153608.0,93809899.0,94756050.0,95923651.0,97320195.0,97584035.0,98677556.0,99571339.0,101920606.0],"unit":"ns","throughput":[],"typical":{"estimate":10.035944668385154,"lower_bound":10.01210481532942,"upper_bound":10.06135631034912,"unit":"ns"},"mean":{"estimate":9.993831069305877,"lower_bound":9.970505919912721,"upper_bound":10.017247254753343,"unit":"ns"},"median":{"estimate":9.976332441086733,"lower_bound":9.965343201106021,"upper_bound":9.98133298870905,"unit":"ns"},"median_abs_dev":{"estimate":0.044513845729924034,"lower_bound":0.028962195477070955,"upper_bound":0.05823218847270531,"unit":"ns"},"slope":{"estimate":10.035944668385154,"lower_bound":10.01210481532942,"upper_bound":10.06135631034912,"unit":"ns"},"change":{"mean":{"estimate":0.037815651004700745,"lower_bound":0.035240248266596705,"upper_bound":0.04023328328335207,"unit":"%"},"median":{"estimate":0.03702248870886282,"lower_bound":0.035655363651781236,"upper_bound":0.03784443995196063,"unit":"%"},"change":"Regressed"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/Rc/10","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/Rc_str_/10","iteration_count":[98317,196634,294951,393268,491585,589902,688219,786536,884853,983170,1081487,1179804,1278121,1376438,1474755,1573072,1671389,1769706,1868023,1966340,2064657,2162974,2261291,2359608,2457925,2556242,2654559,2752876,2851193,2949510,3047827,3146144,3244461,3342778,3441095,3539412,3637729,3736046,3834363,3932680,4030997,4129314,4227631,4325948,4424265,4522582,4620899,4719216,4817533,4915850,5014167,5112484,5210801,5309118,5407435,5505752,5604069,5702386,5800703,5899020,5997337,6095654,6193971,6292288,6390605,6488922,6587239,6685556,6783873,6882190,6980507,7078824,7177141,7275458,7373775,7472092,7570409,7668726,7767043,7865360,7963677,8061994,8160311,8258628,8356945,8455262,8553579,8651896,8750213,8848530,8946847,9045164,9143481,9241798,9340115,9438432,9536749,9635066,9733383,9831700],"measured_values":[1004773.0,2005948.0,3026420.0,4024480.0,5018282.0,6275793.0,7274974.0,8026949.0,9039766.0,10037014.0,11017871.0,12055937.0,13022247.0,14085239.0,15118565.0,16121374.0,17115176.0,18109498.0,19093071.0,20095238.0,21083238.0,22059498.0,23089357.0,24124157.0,25080707.0,26084739.0,27156738.0,28165989.0,29097773.0,30281756.0,31120784.0,32210777.0,33388338.0,34389092.0,35417389.0,36432312.0,37451300.0,38466291.0,39792663.0,40348616.0,41238270.0,42278088.0,42497604.0,43508017.0,44398674.0,45238514.0,46305705.0,47303775.0,48295432.0,49178314.0,50089499.0,51153183.0,52141865.0,53058331.0,54175375.0,55136004.0,56048722.0,57070747.0,58058558.0,59024958.0,59949798.0,60954541.0,62661483.0,63034919.0,63997542.0,64964825.0,65948727.0,66989597.0,67882708.0,68883213.0,69953559.0,70997968.0,71762034.0,72801362.0,73807888.0,74789676.0,75740727.0,76851741.0,77975138.0,78758440.0,79745430.0,80633521.0,81690201.0,82743126.0,83637569.0,84642021.0,85484937.0,86582895.0,87650417.0,88895445.0,90133518.0,92769369.0,93547693.0,94448969.0,95595220.0,96464255.0,97511407.0,98393627.0,99560226.0,100480510.0],"unit":"ns","throughput":[],"typical":{"estimate":10.08690117205448,"lower_bound":10.05969204143017,"upper_bound":10.114519490505373,"unit":"ns"},"mean":{"estimate":10.135848155018508,"lower_bound":10.11068027042512,"upper_bound":10.162140590382965,"unit":"ns"},"median":{"estimate":10.188146221182217,"lower_bound":10.024930187297109,"upper_bound":10.210696898364695,"unit":"ns"},"median_abs_dev":{"estimate":0.18125274465291272,"lower_bound":0.04117492665596973,"upper_bound":0.22344419258084336,"unit":"ns"},"slope":{"estimate":10.08690117205448,"lower_bound":10.05969204143017,"upper_bound":10.114519490505373,"unit":"ns"},"change":{"mean":{"estimate":0.012524469521832282,"lower_bound":0.009712315077651064,"upper_bound":0.015493064765276926,"unit":"%"},"median":{"estimate":0.015843826370055325,"lower_bound":-0.00030111089859063966,"upper_bound":0.018071301979101007,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/Arc/10","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/Arc_str_/10","iteration_count":[91797,183594,275391,367188,458985,550782,642579,734376,826173,917970,1009767,1101564,1193361,1285158,1376955,1468752,1560549,1652346,1744143,1835940,1927737,2019534,2111331,2203128,2294925,2386722,2478519,2570316,2662113,2753910,2845707,2937504,3029301,3121098,3212895,3304692,3396489,3488286,3580083,3671880,3763677,3855474,3947271,4039068,4130865,4222662,4314459,4406256,4498053,4589850,4681647,4773444,4865241,4957038,5048835,5140632,5232429,5324226,5416023,5507820,5599617,5691414,5783211,5875008,5966805,6058602,6150399,6242196,6333993,6425790,6517587,6609384,6701181,6792978,6884775,6976572,7068369,7160166,7251963,7343760,7435557,7527354,7619151,7710948,7802745,7894542,7986339,8078136,8169933,8261730,8353527,8445324,8537121,8628918,8720715,8812512,8904309,8996106,9087903,9179700],"measured_values":[982470.0,1956885.0,2958081.0,3928989.0,4911941.0,5946238.0,6935642.0,8212209.0,8870816.0,9833338.0,10895450.0,11876777.0,12825333.0,13804227.0,14733015.0,15736125.0,16691974.0,17822134.0,18831666.0,19784008.0,20673303.0,21588465.0,22595873.0,23642665.0,24612672.0,25565235.0,26513530.0,27615096.0,28467140.0,29456923.0,30481905.0,31524338.0,32496028.0,33524836.0,34593980.0,35577703.0,36613464.0,38303062.0,38434832.0,39568199.0,40401005.0,41292362.0,42281956.0,43193713.0,44282183.0,45283249.0,46271410.0,47182916.0,48491915.0,49225683.0,50404144.0,51370434.0,52217799.0,53446486.0,54076658.0,55104254.0,56196472.0,57187639.0,57952878.0,59599977.0,61171532.0,61027869.0,61993218.0,62974005.0,64065592.0,64956317.0,66014883.0,66831589.0,67828545.0,68796288.0,69784790.0,70862831.0,72196887.0,72872305.0,73771930.0,75025142.0,75979830.0,76676389.0,77914974.0,79068908.0,79749117.0,80817889.0,81623656.0,82767742.0,83700167.0,84593740.0,85650329.0,86641005.0,87598067.0,88515164.0,89626968.0,90618516.0,91532166.0,92536327.0,93425312.0,94428570.0,95547669.0,96340200.0,97459439.0,98239506.0],"unit":"ns","throughput":[],"typical":{"estimate":10.730791635108906,"lower_bound":10.724750880283798,"upper_bound":10.738238834243036,"unit":"ns"},"mean":{"estimate":10.739967951954116,"lower_bound":10.729432888736413,"upper_bound":10.753219751810384,"unit":"ns"},"median":{"estimate":10.724863230824537,"lower_bound":10.721666707078416,"upper_bound":10.731407798366686,"unit":"ns"},"median_abs_dev":{"estimate":0.02363392053763505,"lower_bound":0.017767195199015526,"upper_bound":0.03030705901686007,"unit":"ns"},"slope":{"estimate":10.730791635108906,"lower_bound":10.724750880283798,"upper_bound":10.738238834243036,"unit":"ns"},"change":{"mean":{"estimate":0.003762320159557131,"lower_bound":0.002561003800326628,"upper_bound":0.005229637703714057,"unit":"%"},"median":{"estimate":0.0032038371588618553,"lower_bound":0.0024894565438946525,"upper_bound":0.004080284818284596,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/FlexStr/10","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/FlexStr/10","iteration_count":[161767,323534,485301,647068,808835,970602,1132369,1294136,1455903,1617670,1779437,1941204,2102971,2264738,2426505,2588272,2750039,2911806,3073573,3235340,3397107,3558874,3720641,3882408,4044175,4205942,4367709,4529476,4691243,4853010,5014777,5176544,5338311,5500078,5661845,5823612,5985379,6147146,6308913,6470680,6632447,6794214,6955981,7117748,7279515,7441282,7603049,7764816,7926583,8088350,8250117,8411884,8573651,8735418,8897185,9058952,9220719,9382486,9544253,9706020,9867787,10029554,10191321,10353088,10514855,10676622,10838389,11000156,11161923,11323690,11485457,11647224,11808991,11970758,12132525,12294292,12456059,12617826,12779593,12941360,13103127,13264894,13426661,13588428,13750195,13911962,14073729,14235496,14397263,14559030,14720797,14882564,15044331,15206098,15367865,15529632,15691399,15853166,16014933,16176700],"measured_values":[989574.0,1981302.0,2981044.0,3975688.0,4965702.0,5898659.0,6916857.0,7926137.0,8875465.0,9860299.0,10844734.0,11826352.0,12815135.0,13779249.0,14773532.0,15746796.0,16721289.0,17761240.0,18802180.0,19760053.0,20720433.0,21656934.0,22715249.0,23626955.0,24658869.0,25658532.0,26717607.0,27601240.0,28589061.0,29578093.0,30536027.0,31586666.0,32508271.0,33568008.0,34521543.0,35460570.0,36465805.0,37386477.0,38440272.0,39481113.0,40513218.0,41443920.0,42470874.0,43437114.0,44459369.0,45355706.0,46313690.0,47326177.0,48410460.0,49284565.0,50236978.0,51326120.0,52456611.0,53165202.0,54254926.0,55212849.0,56205580.0,57164675.0,58087132.0,59248611.0,60130861.0,61100106.0,62175262.0,63138916.0,64083685.0,64998978.0,66078692.0,67142989.0,68239885.0,69122937.0,70058699.0,71042130.0,71875519.0,73077856.0,74076716.0,75044990.0,76039632.0,77839641.0,79230274.0,79591898.0,80386564.0,81339347.0,82225375.0,82970667.0,83907169.0,84793697.0,85910693.0,87164276.0,87943772.0,88761120.0,89809926.0,90502257.0,91778352.0,92938279.0,93685574.0,94586439.0,95623162.0,96715761.0,97724961.0,98676132.0],"unit":"ns","throughput":[],"typical":{"estimate":6.105432985848673,"lower_bound":6.1005854404355935,"upper_bound":6.111162515167062,"unit":"ns"},"mean":{"estimate":6.1031120008083235,"lower_bound":6.099782267459287,"upper_bound":6.106907076309691,"unit":"ns"},"median":{"estimate":6.099753951647045,"lower_bound":6.096199699828181,"upper_bound":6.101620041360532,"unit":"ns"},"median_abs_dev":{"estimate":0.009138528413111762,"lower_bound":0.007433181090819181,"upper_bound":0.012058772230883233,"unit":"ns"},"slope":{"estimate":6.105432985848673,"lower_bound":6.1005854404355935,"upper_bound":6.111162515167062,"unit":"ns"},"change":{"mean":{"estimate":-0.403582706023607,"lower_bound":-0.404010274059795,"upper_bound":-0.4031184335504987,"unit":"%"},"median":{"estimate":-0.4037209460092488,"lower_bound":-0.40430791152771706,"upper_bound":-0.40329777367234565,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/AFlexStr/10","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/AFlexStr/10","iteration_count":[162219,324438,486657,648876,811095,973314,1135533,1297752,1459971,1622190,1784409,1946628,2108847,2271066,2433285,2595504,2757723,2919942,3082161,3244380,3406599,3568818,3731037,3893256,4055475,4217694,4379913,4542132,4704351,4866570,5028789,5191008,5353227,5515446,5677665,5839884,6002103,6164322,6326541,6488760,6650979,6813198,6975417,7137636,7299855,7462074,7624293,7786512,7948731,8110950,8273169,8435388,8597607,8759826,8922045,9084264,9246483,9408702,9570921,9733140,9895359,10057578,10219797,10382016,10544235,10706454,10868673,11030892,11193111,11355330,11517549,11679768,11841987,12004206,12166425,12328644,12490863,12653082,12815301,12977520,13139739,13301958,13464177,13626396,13788615,13950834,14113053,14275272,14437491,14599710,14761929,14924148,15086367,15248586,15410805,15573024,15735243,15897462,16059681,16221900],"measured_values":[992289.0,1982744.0,2945818.0,3929540.0,4942428.0,5955656.0,6965639.0,7943861.0,8924067.0,9864978.0,10884849.0,11905883.0,12784987.0,13773739.0,14799822.0,15808231.0,16759703.0,17684494.0,18784586.0,19725117.0,20661029.0,21647157.0,22638043.0,23580246.0,24624554.0,25651779.0,26580708.0,27686371.0,28516102.0,29532537.0,30574640.0,31537824.0,32743637.0,33637068.0,34451070.0,35467023.0,36440987.0,37500173.0,38466032.0,39457078.0,40434107.0,41321849.0,42310771.0,43374866.0,44411979.0,45544494.0,46368474.0,47377013.0,48249015.0,49275077.0,50247909.0,51220711.0,52241083.0,53185752.0,54211242.0,55473613.0,56137390.0,57195293.0,58340031.0,59158691.0,60099411.0,61089938.0,62096103.0,63156169.0,64132297.0,65079321.0,66000546.0,66930946.0,68053202.0,68959457.0,69934644.0,71130078.0,71897580.0,72886974.0,73837603.0,74817880.0,75912522.0,77023196.0,78119320.0,78893666.0,79889884.0,80696550.0,81756507.0,82688341.0,83951053.0,84659253.0,85938837.0,86680800.0,87784531.0,88926312.0,89977883.0,90858883.0,91876207.0,92687093.0,93803226.0,95016874.0,95866653.0,96671707.0,97714341.0,98725807.0],"unit":"ns","throughput":[],"typical":{"estimate":6.080933920364474,"lower_bound":6.078390392468148,"upper_bound":6.083385783463524,"unit":"ns"},"mean":{"estimate":6.081433552970161,"lower_bound":6.0784904951701275,"upper_bound":6.084501210897571,"unit":"ns"},"median":{"estimate":6.0791170158221615,"lower_bound":6.075786268730992,"upper_bound":6.081053236673879,"unit":"ns"},"median_abs_dev":{"estimate":0.011928781954120862,"lower_bound":0.008985929304280306,"upper_bound":0.015974260854053925,"unit":"ns"},"slope":{"estimate":6.080933920364474,"lower_bound":6.078390392468148,"upper_bound":6.083385783463524,"unit":"ns"},"change":{"mean":{"estimate":-0.4077712506884794,"lower_bound":-0.40865870479296346,"upper_bound":-0.40692936371492483,"unit":"%"},"median":{"estimate":-0.406225785389314,"lower_bound":-0.40738802474029323,"upper_bound":-0.40571077400881733,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/CompactStr/10","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/CompactStr/10","iteration_count":[142374,284748,427122,569496,711870,854244,996618,1138992,1281366,1423740,1566114,1708488,1850862,1993236,2135610,2277984,2420358,2562732,2705106,2847480,2989854,3132228,3274602,3416976,3559350,3701724,3844098,3986472,4128846,4271220,4413594,4555968,4698342,4840716,4983090,5125464,5267838,5410212,5552586,5694960,5837334,5979708,6122082,6264456,6406830,6549204,6691578,6833952,6976326,7118700,7261074,7403448,7545822,7688196,7830570,7972944,8115318,8257692,8400066,8542440,8684814,8827188,8969562,9111936,9254310,9396684,9539058,9681432,9823806,9966180,10108554,10250928,10393302,10535676,10678050,10820424,10962798,11105172,11247546,11389920,11532294,11674668,11817042,11959416,12101790,12244164,12386538,12528912,12671286,12813660,12956034,13098408,13240782,13383156,13525530,13667904,13810278,13952652,14095026,14237400],"measured_values":[999382.0,1994707.0,2985804.0,3974465.0,4974519.0,5902476.0,6935933.0,7877986.0,8869543.0,9816858.0,10883456.0,11888469.0,12852033.0,13751577.0,14836020.0,15791089.0,16820268.0,17792578.0,19004022.0,19827762.0,20798611.0,21903441.0,22670415.0,23777039.0,24764369.0,25832611.0,26798411.0,27852936.0,28864421.0,29685426.0,30621188.0,31728425.0,32822416.0,33751384.0,34626130.0,35716466.0,36845483.0,37941198.0,38876087.0,39822069.0,40651239.0,41485298.0,42722631.0,43690062.0,44707980.0,45564291.0,46426704.0,47618370.0,48611330.0,49509531.0,50479147.0,51645976.0,52326405.0,53956380.0,54543382.0,55539629.0,56391121.0,57232332.0,58482761.0,59500638.0,60190074.0,61468865.0,61972337.0,63320971.0,64001880.0,65383686.0,66281147.0,67327959.0,68397683.0,69621421.0,70468835.0,71368199.0,72371116.0,73336646.0,74103166.0,75440559.0,76128210.0,76914029.0,78351770.0,79205506.0,80082798.0,81232845.0,82056816.0,83047422.0,84237495.0,85065111.0,86056058.0,86682936.0,87899057.0,88859425.0,89973826.0,90807735.0,92067450.0,92979677.0,93957459.0,94852764.0,96041715.0,96573361.0,98142883.0,99057605.0],"unit":"ns","throughput":[],"typical":{"estimate":6.951606564742286,"lower_bound":6.947500454244029,"upper_bound":6.955880727386488,"unit":"ns"},"mean":{"estimate":6.957122891446667,"lower_bound":6.952240296084251,"upper_bound":6.962085459421393,"unit":"ns"},"median":{"estimate":6.957389780498516,"lower_bound":6.949495901019601,"upper_bound":6.9621207953075075,"unit":"ns"},"median_abs_dev":{"estimate":0.02003835692591926,"lower_bound":0.015028355438067067,"upper_bound":0.02681263954144238,"unit":"ns"},"slope":{"estimate":6.951606564742286,"lower_bound":6.947500454244029,"upper_bound":6.955880727386488,"unit":"ns"},"change":{"mean":{"estimate":-0.2919575137249678,"lower_bound":-0.29259166954171006,"upper_bound":-0.29133917735242126,"unit":"%"},"median":{"estimate":-0.29163978370854815,"lower_bound":-0.29253365843159773,"upper_bound":-0.29092192039164,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/KString/10","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/KString/10","iteration_count":[116695,233390,350085,466780,583475,700170,816865,933560,1050255,1166950,1283645,1400340,1517035,1633730,1750425,1867120,1983815,2100510,2217205,2333900,2450595,2567290,2683985,2800680,2917375,3034070,3150765,3267460,3384155,3500850,3617545,3734240,3850935,3967630,4084325,4201020,4317715,4434410,4551105,4667800,4784495,4901190,5017885,5134580,5251275,5367970,5484665,5601360,5718055,5834750,5951445,6068140,6184835,6301530,6418225,6534920,6651615,6768310,6885005,7001700,7118395,7235090,7351785,7468480,7585175,7701870,7818565,7935260,8051955,8168650,8285345,8402040,8518735,8635430,8752125,8868820,8985515,9102210,9218905,9335600,9452295,9568990,9685685,9802380,9919075,10035770,10152465,10269160,10385855,10502550,10619245,10735940,10852635,10969330,11086025,11202720,11319415,11436110,11552805,11669500],"measured_values":[995104.0,1994046.0,2972538.0,3977742.0,4941265.0,5967449.0,6963525.0,7953299.0,8943674.0,9914262.0,10920797.0,11886105.0,12846765.0,13821900.0,14850127.0,15802351.0,16768259.0,17812285.0,18796470.0,19776795.0,20805072.0,21741665.0,22781685.0,23731504.0,24804143.0,25690533.0,26643016.0,27663427.0,28704720.0,29600565.0,30573397.0,31694190.0,32625242.0,33604858.0,34686295.0,35606878.0,36768858.0,37646840.0,38581460.0,39606481.0,40713286.0,41588393.0,42524024.0,43517055.0,44567133.0,45639774.0,46488050.0,47453949.0,48492806.0,49630801.0,50610225.0,51532161.0,52343717.0,53263369.0,54355166.0,55328469.0,56295700.0,57281396.0,58387410.0,59342058.0,60422123.0,61399984.0,62465531.0,63370816.0,64161002.0,65289468.0,66209400.0,67384044.0,68311030.0,69104642.0,70140483.0,71113215.0,72122747.0,73179728.0,74242069.0,75547901.0,77574168.0,79053429.0,80141229.0,81123488.0,82208292.0,83258571.0,84259497.0,85233220.0,86039306.0,86898082.0,87316674.0,87578010.0,88436284.0,89250676.0,90057154.0,90935476.0,92300751.0,93224711.0,93940627.0,94921634.0,95890498.0,97676881.0,98498056.0,99240161.0],"unit":"ns","throughput":[],"typical":{"estimate":8.528510846774678,"lower_bound":8.50744128947037,"upper_bound":8.550618130800343,"unit":"ns"},"mean":{"estimate":8.506296974878012,"lower_bound":8.49445797163258,"upper_bound":8.519347476377446,"unit":"ns"},"median":{"estimate":8.48507230386906,"lower_bound":8.477551692333366,"upper_bound":8.490305136421757,"unit":"ns"},"median_abs_dev":{"estimate":0.025192066359383435,"lower_bound":0.017413187759036258,"upper_bound":0.03174871856017252,"unit":"ns"},"slope":{"estimate":8.528510846774678,"lower_bound":8.50744128947037,"upper_bound":8.550618130800343,"unit":"ns"},"change":{"mean":{"estimate":-0.21405658655948367,"lower_bound":-0.21613848595743734,"upper_bound":-0.21204152346284913,"unit":"%"},"median":{"estimate":-0.21406729982285433,"lower_bound":-0.21658440222948216,"upper_bound":-0.21170792017105225,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/SmartString/10","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/SmartString/10","iteration_count":[106761,213522,320283,427044,533805,640566,747327,854088,960849,1067610,1174371,1281132,1387893,1494654,1601415,1708176,1814937,1921698,2028459,2135220,2241981,2348742,2455503,2562264,2669025,2775786,2882547,2989308,3096069,3202830,3309591,3416352,3523113,3629874,3736635,3843396,3950157,4056918,4163679,4270440,4377201,4483962,4590723,4697484,4804245,4911006,5017767,5124528,5231289,5338050,5444811,5551572,5658333,5765094,5871855,5978616,6085377,6192138,6298899,6405660,6512421,6619182,6725943,6832704,6939465,7046226,7152987,7259748,7366509,7473270,7580031,7686792,7793553,7900314,8007075,8113836,8220597,8327358,8434119,8540880,8647641,8754402,8861163,8967924,9074685,9181446,9288207,9394968,9501729,9608490,9715251,9822012,9928773,10035534,10142295,10249056,10355817,10462578,10569339,10676100],"measured_values":[995735.0,1992142.0,2972458.0,3943727.0,4948960.0,5914790.0,6896628.0,7877514.0,8860216.0,9862143.0,10916550.0,11947341.0,12969777.0,13862187.0,14871328.0,15935361.0,16940405.0,17876387.0,18870138.0,19840686.0,20806024.0,21751114.0,22760935.0,23733918.0,24682103.0,25738824.0,26726534.0,27808663.0,28669452.0,29643487.0,30648600.0,31631159.0,32627035.0,33667566.0,34613046.0,35601397.0,36756555.0,37619389.0,38538238.0,39548831.0,40503029.0,41561742.0,42535226.0,43510473.0,44480650.0,45491944.0,46481959.0,47477804.0,48388428.0,49378022.0,50499545.0,51355576.0,52328648.0,53399206.0,54479391.0,55418199.0,56358399.0,57350526.0,58320313.0,59374690.0,60343063.0,61450840.0,62171866.0,63183351.0,64256763.0,65197675.0,66171428.0,67251543.0,68231880.0,69164024.0,70246655.0,71178298.0,72163133.0,73150763.0,73963964.0,75000174.0,76031468.0,77063632.0,78250448.0,79080170.0,80235878.0,81239878.0,81990820.0,83157169.0,84097209.0,85246315.0,85856550.0,86975890.0,87952589.0,88960177.0,89893163.0,90938963.0,91940329.0,92850182.0,93861627.0,94784384.0,96037557.0,96953320.0,97722917.0,98731567.0],"unit":"ns","throughput":[],"typical":{"estimate":9.260246992156306,"lower_bound":9.25739102019042,"upper_bound":9.263310078848699,"unit":"ns"},"mean":{"estimate":9.26632749848275,"lower_bound":9.262025563659362,"upper_bound":9.270938406126366,"unit":"ns"},"median":{"estimate":9.261556254245727,"lower_bound":9.259336916038166,"upper_bound":9.264144995506301,"unit":"ns"},"median_abs_dev":{"estimate":0.01470375936530053,"lower_bound":0.010489969702587998,"upper_bound":0.01844376030311093,"unit":"ns"},"slope":{"estimate":9.260246992156306,"lower_bound":9.25739102019042,"upper_bound":9.263310078848699,"unit":"ns"},"change":{"mean":{"estimate":-0.1428784958612057,"lower_bound":-0.14385132168590195,"upper_bound":-0.1419825935398707,"unit":"%"},"median":{"estimate":-0.14185549658308905,"lower_bound":-0.1422034809487334,"upper_bound":-0.1412856799934995,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/SmolStr/10","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/SmolStr/10","iteration_count":[72463,144926,217389,289852,362315,434778,507241,579704,652167,724630,797093,869556,942019,1014482,1086945,1159408,1231871,1304334,1376797,1449260,1521723,1594186,1666649,1739112,1811575,1884038,1956501,2028964,2101427,2173890,2246353,2318816,2391279,2463742,2536205,2608668,2681131,2753594,2826057,2898520,2970983,3043446,3115909,3188372,3260835,3333298,3405761,3478224,3550687,3623150,3695613,3768076,3840539,3913002,3985465,4057928,4130391,4202854,4275317,4347780,4420243,4492706,4565169,4637632,4710095,4782558,4855021,4927484,4999947,5072410,5144873,5217336,5289799,5362262,5434725,5507188,5579651,5652114,5724577,5797040,5869503,5941966,6014429,6086892,6159355,6231818,6304281,6376744,6449207,6521670,6594133,6666596,6739059,6811522,6883985,6956448,7028911,7101374,7173837,7246300],"measured_values":[990365.0,1974970.0,2950156.0,3925813.0,4921539.0,5915510.0,6939749.0,7924875.0,8905512.0,9835252.0,10831970.0,11818737.0,12852124.0,13841388.0,14718618.0,15705637.0,16779090.0,17787108.0,18734081.0,19669252.0,20669295.0,21611930.0,22664893.0,23697469.0,24685258.0,25642703.0,26521455.0,27697412.0,28566438.0,29627937.0,30613123.0,31729055.0,32575408.0,33443863.0,34466198.0,35395066.0,36509356.0,37530661.0,38383976.0,39531549.0,40563813.0,41601127.0,42545495.0,43290606.0,44450603.0,45432652.0,46369836.0,47321138.0,48304599.0,49410563.0,50297423.0,51210712.0,52207049.0,53285471.0,54275485.0,55303491.0,56235977.0,57227955.0,58169638.0,59077908.0,60167250.0,61184046.0,61910922.0,62997489.0,64185659.0,65011142.0,65842074.0,66969530.0,67979431.0,69057864.0,70016488.0,71095422.0,71889945.0,72930106.0,73804952.0,74945792.0,75855624.0,76742052.0,77978374.0,78803565.0,79778101.0,80976510.0,81746177.0,83173429.0,83924322.0,84636771.0,85693592.0,86740714.0,88215937.0,88701446.0,89563840.0,90544266.0,91650390.0,92630196.0,93883368.0,94918849.0,95498095.0,96593179.0,97546805.0,98504528.0],"unit":"ns","throughput":[],"typical":{"estimate":13.606669495067857,"lower_bound":13.600633775046084,"upper_bound":13.613518693611624,"unit":"ns"},"mean":{"estimate":13.60845150189677,"lower_bound":13.602455557978276,"upper_bound":13.614490773695579,"unit":"ns"},"median":{"estimate":13.60539430467963,"lower_bound":13.597537791347396,"upper_bound":13.615117443649158,"unit":"ns"},"median_abs_dev":{"estimate":0.03142017806437385,"lower_bound":0.02242554232084709,"upper_bound":0.0352744463956197,"unit":"ns"},"slope":{"estimate":13.606669495067857,"lower_bound":13.600633775046084,"upper_bound":13.613518693611624,"unit":"ns"},"change":{"mean":{"estimate":-0.03731453114741268,"lower_bound":-0.03861813485380089,"upper_bound":-0.036100042291481595,"unit":"%"},"median":{"estimate":-0.036953877580639616,"lower_bound":-0.03832939587588284,"upper_bound":-0.03470553948298316,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/String/20","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/String/20","iteration_count":[103033,206066,309099,412132,515165,618198,721231,824264,927297,1030330,1133363,1236396,1339429,1442462,1545495,1648528,1751561,1854594,1957627,2060660,2163693,2266726,2369759,2472792,2575825,2678858,2781891,2884924,2987957,3090990,3194023,3297056,3400089,3503122,3606155,3709188,3812221,3915254,4018287,4121320,4224353,4327386,4430419,4533452,4636485,4739518,4842551,4945584,5048617,5151650,5254683,5357716,5460749,5563782,5666815,5769848,5872881,5975914,6078947,6181980,6285013,6388046,6491079,6594112,6697145,6800178,6903211,7006244,7109277,7212310,7315343,7418376,7521409,7624442,7727475,7830508,7933541,8036574,8139607,8242640,8345673,8448706,8551739,8654772,8757805,8860838,8963871,9066904,9169937,9272970,9376003,9479036,9582069,9685102,9788135,9891168,9994201,10097234,10200267,10303300],"measured_values":[990555.0,1991290.0,2966627.0,3967673.0,4949231.0,5927964.0,6933148.0,7887333.0,8881726.0,9942255.0,10899918.0,11851450.0,12823620.0,13813695.0,14898559.0,15883173.0,16854272.0,17870887.0,18896328.0,19829275.0,20779173.0,21782052.0,23103543.0,23655791.0,24701990.0,25617735.0,26738146.0,27633111.0,28630538.0,29583022.0,30580962.0,31668360.0,32561972.0,33544824.0,34525309.0,35554248.0,36504137.0,37498329.0,38469970.0,39589017.0,40608648.0,41665819.0,42489259.0,43355439.0,44444331.0,45353953.0,46299062.0,47545663.0,48363621.0,49384454.0,50316188.0,51273632.0,52359417.0,53210869.0,54236951.0,55181550.0,56258840.0,57222324.0,58138759.0,59320808.0,60206325.0,62090091.0,62092886.0,63265116.0,64080299.0,65094510.0,66093681.0,66982855.0,68026381.0,69200033.0,70208182.0,71044705.0,72106176.0,72957066.0,74144154.0,74911127.0,75952878.0,77023807.0,77871341.0,79056324.0,79791346.0,80843860.0,81935706.0,82798801.0,83804164.0,84768941.0,85870637.0,86795427.0,87771927.0,88811154.0,89987701.0,90712885.0,93357141.0,92897441.0,93665475.0,94643598.0,96849785.0,97299095.0,97904402.0,98655413.0],"unit":"ns","throughput":[],"typical":{"estimate":9.589263192602589,"lower_bound":9.57944620825249,"upper_bound":9.601329559814792,"unit":"ns"},"mean":{"estimate":9.593162560895914,"lower_bound":9.586618369596515,"upper_bound":9.6005361595901,"unit":"ns"},"median":{"estimate":9.579503006084671,"lower_bound":9.575693909604063,"upper_bound":9.587232286266957,"unit":"ns"},"median_abs_dev":{"estimate":0.016931453106043617,"lower_bound":0.012769267012342106,"upper_bound":0.025999180322734253,"unit":"ns"},"slope":{"estimate":9.589263192602589,"lower_bound":9.57944620825249,"upper_bound":9.601329559814792,"unit":"ns"},"change":{"mean":{"estimate":0.010498696671842778,"lower_bound":0.00970735239262469,"upper_bound":0.011402030360818832,"unit":"%"},"median":{"estimate":0.009522178528356573,"lower_bound":0.008753670072712438,"upper_bound":0.010466763496871812,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/Rc/20","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/Rc_str_/20","iteration_count":[100540,201080,301620,402160,502700,603240,703780,804320,904860,1005400,1105940,1206480,1307020,1407560,1508100,1608640,1709180,1809720,1910260,2010800,2111340,2211880,2312420,2412960,2513500,2614040,2714580,2815120,2915660,3016200,3116740,3217280,3317820,3418360,3518900,3619440,3719980,3820520,3921060,4021600,4122140,4222680,4323220,4423760,4524300,4624840,4725380,4825920,4926460,5027000,5127540,5228080,5328620,5429160,5529700,5630240,5730780,5831320,5931860,6032400,6132940,6233480,6334020,6434560,6535100,6635640,6736180,6836720,6937260,7037800,7138340,7238880,7339420,7439960,7540500,7641040,7741580,7842120,7942660,8043200,8143740,8244280,8344820,8445360,8545900,8646440,8746980,8847520,8948060,9048600,9149140,9249680,9350220,9450760,9551300,9651840,9752380,9852920,9953460,10054000],"measured_values":[991256.0,1982573.0,2959133.0,4030622.0,4948610.0,5970004.0,7011195.0,7934503.0,9018496.0,9927867.0,10964851.0,11945949.0,12866021.0,13943109.0,14926041.0,15874566.0,16849993.0,17728918.0,18745663.0,19792175.0,20758684.0,21775199.0,22650667.0,23725321.0,24659249.0,25760195.0,26728096.0,27662276.0,28658070.0,29562743.0,30515729.0,31628615.0,32589374.0,33567096.0,34606764.0,35699252.0,36479700.0,37463102.0,38363247.0,39480552.0,40476257.0,41586780.0,42380363.0,43414220.0,44545593.0,45778176.0,46770465.0,47699704.0,48726569.0,49677730.0,50469278.0,51559573.0,52375778.0,53449991.0,54479401.0,55323709.0,56521057.0,57488819.0,58376279.0,59251627.0,60381446.0,61145762.0,62116602.0,63317084.0,64247325.0,65114288.0,66154015.0,67177323.0,68213604.0,69132726.0,70221416.0,71288387.0,72341190.0,73235794.0,74284660.0,75476927.0,76283495.0,77107595.0,78143676.0,78961175.0,79868012.0,80952795.0,81760745.0,82921904.0,83904684.0,84757429.0,85768944.0,86959368.0,87677789.0,88906595.0,89935533.0,90672860.0,91717227.0,92682925.0,93485555.0,94904011.0,95820686.0,96369115.0,97778493.0,98578487.0],"unit":"ns","throughput":[],"typical":{"estimate":9.825686865449992,"lower_bound":9.820062627720757,"upper_bound":9.831754918629661,"unit":"ns"},"mean":{"estimate":9.840065306687732,"lower_bound":9.832776697271342,"upper_bound":9.847937012116418,"unit":"ns"},"median":{"estimate":9.832225002841797,"lower_bound":9.825812763852971,"upper_bound":9.842785819320765,"unit":"ns"},"median_abs_dev":{"estimate":0.030649569016597385,"lower_bound":0.021730499025526196,"upper_bound":0.03760812103641016,"unit":"ns"},"slope":{"estimate":9.825686865449992,"lower_bound":9.820062627720757,"upper_bound":9.831754918629661,"unit":"ns"},"change":{"mean":{"estimate":0.017514528331104673,"lower_bound":0.014171000735413265,"upper_bound":0.02053665095081427,"unit":"%"},"median":{"estimate":0.023283596462085443,"lower_bound":0.020947782651442592,"upper_bound":0.025362235023383084,"unit":"%"},"change":"Regressed"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/Arc/20","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/Arc_str_/20","iteration_count":[94688,189376,284064,378752,473440,568128,662816,757504,852192,946880,1041568,1136256,1230944,1325632,1420320,1515008,1609696,1704384,1799072,1893760,1988448,2083136,2177824,2272512,2367200,2461888,2556576,2651264,2745952,2840640,2935328,3030016,3124704,3219392,3314080,3408768,3503456,3598144,3692832,3787520,3882208,3976896,4071584,4166272,4260960,4355648,4450336,4545024,4639712,4734400,4829088,4923776,5018464,5113152,5207840,5302528,5397216,5491904,5586592,5681280,5775968,5870656,5965344,6060032,6154720,6249408,6344096,6438784,6533472,6628160,6722848,6817536,6912224,7006912,7101600,7196288,7290976,7385664,7480352,7575040,7669728,7764416,7859104,7953792,8048480,8143168,8237856,8332544,8427232,8521920,8616608,8711296,8805984,8900672,8995360,9090048,9184736,9279424,9374112,9468800],"measured_values":[993931.0,1978095.0,2975814.0,3952664.0,4935775.0,5944576.0,6910715.0,7890289.0,8880495.0,9868675.0,10884769.0,11870226.0,12889254.0,13846356.0,14811855.0,15817930.0,16788016.0,17811965.0,18780738.0,19757179.0,20745590.0,21705597.0,22977646.0,23777160.0,24692723.0,25729015.0,26661861.0,27684619.0,28633434.0,29696276.0,30620126.0,31631892.0,32523930.0,33554873.0,34558934.0,35511747.0,36595780.0,37534858.0,38967702.0,39456537.0,40434458.0,41534331.0,42535176.0,43551069.0,44412019.0,45369492.0,46494352.0,47389938.0,48501462.0,49439588.0,50472495.0,51329286.0,52339519.0,53422710.0,54302866.0,55264318.0,56200840.0,57317995.0,58362023.0,59221430.0,60351308.0,61291750.0,62349502.0,63198489.0,64296599.0,65124776.0,66156771.0,67201579.0,68193928.0,69192689.0,70204084.0,71074612.0,72211786.0,73447585.0,74007725.0,75048828.0,76230975.0,77202043.0,78168653.0,79149512.0,80070014.0,81087551.0,82173135.0,83184962.0,83998572.0,84971665.0,85998429.0,86838319.0,88169189.0,88892037.0,89924502.0,91152197.0,91892138.0,92830114.0,93853962.0,94854266.0,95809786.0,96849383.0,97763735.0,99053508.0],"unit":"ns","throughput":[],"typical":{"estimate":10.440236517870979,"lower_bound":10.436698539502503,"upper_bound":10.443959485197933,"unit":"ns"},"mean":{"estimate":10.44100477791223,"lower_bound":10.43696222080847,"upper_bound":10.445628434513774,"unit":"ns"},"median":{"estimate":10.4370011242711,"lower_bound":10.433056333381613,"upper_bound":10.442045379109738,"unit":"ns"},"median_abs_dev":{"estimate":0.014970152280282204,"lower_bound":0.012386822861825663,"upper_bound":0.01861171024283542,"unit":"ns"},"slope":{"estimate":10.440236517870979,"lower_bound":10.436698539502503,"upper_bound":10.443959485197933,"unit":"ns"},"change":{"mean":{"estimate":-0.0022759330707432524,"lower_bound":-0.0058909477961102625,"upper_bound":-0.00005254263151445205,"unit":"%"},"median":{"estimate":-0.00026416036301013524,"lower_bound":-0.0010688988027909296,"upper_bound":0.0008236263870413651,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/FlexStr/20","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/FlexStr/20","iteration_count":[202896,405792,608688,811584,1014480,1217376,1420272,1623168,1826064,2028960,2231856,2434752,2637648,2840544,3043440,3246336,3449232,3652128,3855024,4057920,4260816,4463712,4666608,4869504,5072400,5275296,5478192,5681088,5883984,6086880,6289776,6492672,6695568,6898464,7101360,7304256,7507152,7710048,7912944,8115840,8318736,8521632,8724528,8927424,9130320,9333216,9536112,9739008,9941904,10144800,10347696,10550592,10753488,10956384,11159280,11362176,11565072,11767968,11970864,12173760,12376656,12579552,12782448,12985344,13188240,13391136,13594032,13796928,13999824,14202720,14405616,14608512,14811408,15014304,15217200,15420096,15622992,15825888,16028784,16231680,16434576,16637472,16840368,17043264,17246160,17449056,17651952,17854848,18057744,18260640,18463536,18666432,18869328,19072224,19275120,19478016,19680912,19883808,20086704,20289600],"measured_values":[1003500.0,1992012.0,2981856.0,3980747.0,4966764.0,5985373.0,6976258.0,7980140.0,8963642.0,9956311.0,10952318.0,11985432.0,12967813.0,13958640.0,14910751.0,15930213.0,16952808.0,17969392.0,18945612.0,19942649.0,20921213.0,21898211.0,22833833.0,23879172.0,24888895.0,25869631.0,26824680.0,27884737.0,29009336.0,29991947.0,30954950.0,32877760.0,35164370.0,36159103.0,35298293.0,36074954.0,37366860.0,38025497.0,38932345.0,39961904.0,40856627.0,41907457.0,42909624.0,44168809.0,45007196.0,46827092.0,47155013.0,48047283.0,49082652.0,50349020.0,51048565.0,52418008.0,53091303.0,54302927.0,55177262.0,56161997.0,57098300.0,58099626.0,58737853.0,59790968.0,60836087.0,61965544.0,62639652.0,63871874.0,65229586.0,66198229.0,67114585.0,68062539.0,69039710.0,69811089.0,70576119.0,71794375.0,72754944.0,73503771.0,74706768.0,76003995.0,76397030.0,77683846.0,78727862.0,79588291.0,80473798.0,81432573.0,82569276.0,83402494.0,84452151.0,85392822.0,86271896.0,87453814.0,88419022.0,89318385.0,90574994.0,91370129.0,92271235.0,93549005.0,94847574.0,95611650.0,96495945.0,97261494.0,98518804.0,99175368.0],"unit":"ns","throughput":[],"typical":{"estimate":4.914116160811022,"lower_bound":4.908852858932844,"upper_bound":4.920651068094435,"unit":"ns"},"mean":{"estimate":4.925730056915598,"lower_bound":4.916702273703455,"upper_bound":4.9372702929548415,"unit":"ns"},"median":{"estimate":4.914286541592033,"lower_bound":4.908722804896214,"upper_bound":4.917773614256048,"unit":"ns"},"median_abs_dev":{"estimate":0.021930705981092768,"lower_bound":0.013173738494712987,"upper_bound":0.026175482502453582,"unit":"ns"},"slope":{"estimate":4.914116160811022,"lower_bound":4.908852858932844,"upper_bound":4.920651068094435,"unit":"ns"},"change":{"mean":{"estimate":-0.43625675951226195,"lower_bound":-0.4372424926057989,"upper_bound":-0.4349923648540909,"unit":"%"},"median":{"estimate":-0.43767641343839003,"lower_bound":-0.438357274456855,"upper_bound":-0.4371458931753874,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/AFlexStr/20","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/AFlexStr/20","iteration_count":[201862,403724,605586,807448,1009310,1211172,1413034,1614896,1816758,2018620,2220482,2422344,2624206,2826068,3027930,3229792,3431654,3633516,3835378,4037240,4239102,4440964,4642826,4844688,5046550,5248412,5450274,5652136,5853998,6055860,6257722,6459584,6661446,6863308,7065170,7267032,7468894,7670756,7872618,8074480,8276342,8478204,8680066,8881928,9083790,9285652,9487514,9689376,9891238,10093100,10294962,10496824,10698686,10900548,11102410,11304272,11506134,11707996,11909858,12111720,12313582,12515444,12717306,12919168,13121030,13322892,13524754,13726616,13928478,14130340,14332202,14534064,14735926,14937788,15139650,15341512,15543374,15745236,15947098,16148960,16350822,16552684,16754546,16956408,17158270,17360132,17561994,17763856,17965718,18167580,18369442,18571304,18773166,18975028,19176890,19378752,19580614,19782476,19984338,20186200],"measured_values":[988281.0,1975390.0,2969853.0,3961941.0,4950343.0,5960976.0,6968304.0,7950183.0,8875936.0,9931404.0,10925717.0,11882167.0,12886119.0,13848351.0,14844626.0,15848107.0,16829495.0,17774623.0,18799785.0,19780783.0,20871969.0,21826255.0,22851797.0,23815702.0,24734983.0,25704389.0,26736483.0,27672595.0,28689300.0,29718409.0,30778776.0,31634947.0,32591027.0,33541658.0,34654905.0,35573344.0,36561455.0,37478992.0,38573896.0,39559221.0,40570085.0,41587912.0,42504959.0,43411896.0,44496038.0,45495642.0,46618767.0,47443289.0,48413145.0,49389282.0,50567965.0,51356618.0,52360539.0,53471493.0,54425489.0,55362993.0,56394657.0,57381005.0,58526173.0,59687933.0,60440287.0,61321215.0,62343291.0,63293859.0,64302901.0,65306350.0,66217696.0,67405936.0,68521709.0,69362170.0,70264018.0,71321259.0,72285716.0,73091420.0,74253601.0,75274174.0,76072585.0,77141188.0,78210553.0,79002533.0,80247360.0,81210103.0,82038401.0,83126871.0,84035933.0,85209505.0,85945097.0,86951934.0,87992444.0,89096284.0,90158135.0,90933653.0,92183971.0,92990337.0,94135285.0,95201223.0,96233457.0,97101270.0,98237782.0,98823912.0],"unit":"ns","throughput":[],"typical":{"estimate":4.903351046020452,"lower_bound":4.901441063489175,"upper_bound":4.905274064991829,"unit":"ns"},"mean":{"estimate":4.903630050437318,"lower_bound":4.901836928674327,"upper_bound":4.905474349342693,"unit":"ns"},"median":{"estimate":4.90218662520334,"lower_bound":4.900484807867327,"upper_bound":4.904806640651723,"unit":"ns"},"median_abs_dev":{"estimate":0.008517069686043547,"lower_bound":0.0065958943187697724,"upper_bound":0.010602375364604812,"unit":"ns"},"slope":{"estimate":4.903351046020452,"lower_bound":4.901441063489175,"upper_bound":4.905274064991829,"unit":"ns"},"change":{"mean":{"estimate":-0.4553471510515317,"lower_bound":-0.4558826551057425,"upper_bound":-0.45491639634778386,"unit":"%"},"median":{"estimate":-0.4550634640520702,"lower_bound":-0.4554626298924972,"upper_bound":-0.454727060254291,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/CompactStr/20","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/CompactStr/20","iteration_count":[155873,311746,467619,623492,779365,935238,1091111,1246984,1402857,1558730,1714603,1870476,2026349,2182222,2338095,2493968,2649841,2805714,2961587,3117460,3273333,3429206,3585079,3740952,3896825,4052698,4208571,4364444,4520317,4676190,4832063,4987936,5143809,5299682,5455555,5611428,5767301,5923174,6079047,6234920,6390793,6546666,6702539,6858412,7014285,7170158,7326031,7481904,7637777,7793650,7949523,8105396,8261269,8417142,8573015,8728888,8884761,9040634,9196507,9352380,9508253,9664126,9819999,9975872,10131745,10287618,10443491,10599364,10755237,10911110,11066983,11222856,11378729,11534602,11690475,11846348,12002221,12158094,12313967,12469840,12625713,12781586,12937459,13093332,13249205,13405078,13560951,13716824,13872697,14028570,14184443,14340316,14496189,14652062,14807935,14963808,15119681,15275554,15431427,15587300],"measured_values":[992709.0,1982774.0,2978089.0,3953114.0,4912191.0,5915501.0,6862383.0,7910398.0,8872489.0,9804494.0,10791222.0,11766319.0,12826185.0,13752178.0,14758033.0,15722559.0,16811390.0,17757953.0,18631567.0,19603828.0,20596016.0,21565242.0,22616582.0,23579806.0,24638230.0,25612284.0,26491438.0,27598245.0,28543243.0,29480788.0,30484169.0,31482609.0,32449329.0,33303337.0,34364255.0,35575659.0,36570602.0,37483260.0,38440142.0,39198768.0,40241633.0,41293554.0,42346989.0,43154288.0,44193385.0,45113247.0,46162504.0,47200108.0,48217825.0,48991671.0,50101892.0,51268641.0,52139440.0,53077516.0,54076589.0,54951725.0,56005170.0,57105021.0,58007532.0,58835008.0,59974475.0,61203322.0,62345494.0,63421803.0,64186440.0,65194809.0,65939409.0,66783127.0,68003978.0,69040251.0,69689789.0,70844356.0,72305022.0,73086301.0,74003198.0,74963325.0,75879399.0,76732084.0,77805617.0,78986102.0,79683582.0,80960210.0,81877957.0,82699312.0,83970720.0,84903596.0,85638847.0,86426649.0,87781124.0,88356303.0,89611539.0,91027581.0,91146426.0,92334385.0,93238627.0,94486200.0,95632741.0,96505473.0,97933325.0,98905838.0],"unit":"ns","throughput":[],"typical":{"estimate":6.318973722180801,"lower_bound":6.3143028428564,"upper_bound":6.323562800405616,"unit":"ns"},"mean":{"estimate":6.316162273195808,"lower_bound":6.312362231392572,"upper_bound":6.320083594980151,"unit":"ns"},"median":{"estimate":6.31349729741536,"lower_bound":6.308530997503821,"upper_bound":6.3189312575887575,"unit":"ns"},"median_abs_dev":{"estimate":0.021195507095164278,"lower_bound":0.016455476376489413,"upper_bound":0.025665988482724476,"unit":"ns"},"slope":{"estimate":6.318973722180801,"lower_bound":6.3143028428564,"upper_bound":6.323562800405616,"unit":"ns"},"change":{"mean":{"estimate":-0.27230166069231176,"lower_bound":-0.2728834593140341,"upper_bound":-0.2716603800805013,"unit":"%"},"median":{"estimate":-0.27265732506762386,"lower_bound":-0.2733031475228223,"upper_bound":-0.27178480992690424,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/KString/20","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/KString/20","iteration_count":[102837,205674,308511,411348,514185,617022,719859,822696,925533,1028370,1131207,1234044,1336881,1439718,1542555,1645392,1748229,1851066,1953903,2056740,2159577,2262414,2365251,2468088,2570925,2673762,2776599,2879436,2982273,3085110,3187947,3290784,3393621,3496458,3599295,3702132,3804969,3907806,4010643,4113480,4216317,4319154,4421991,4524828,4627665,4730502,4833339,4936176,5039013,5141850,5244687,5347524,5450361,5553198,5656035,5758872,5861709,5964546,6067383,6170220,6273057,6375894,6478731,6581568,6684405,6787242,6890079,6992916,7095753,7198590,7301427,7404264,7507101,7609938,7712775,7815612,7918449,8021286,8124123,8226960,8329797,8432634,8535471,8638308,8741145,8843982,8946819,9049656,9152493,9255330,9358167,9461004,9563841,9666678,9769515,9872352,9975189,10078026,10180863,10283700],"measured_values":[992459.0,1970501.0,2971807.0,3940000.0,4925777.0,5917153.0,6951782.0,7937539.0,8914980.0,9876891.0,10867707.0,11868512.0,12815695.0,13817802.0,14811845.0,16049187.0,16838442.0,17827585.0,18788764.0,19744665.0,20793771.0,21695989.0,22667568.0,23619321.0,24721697.0,25635137.0,26594994.0,27690479.0,28650778.0,29614401.0,30557688.0,31667629.0,32660379.0,34331232.0,34554054.0,35513571.0,36648921.0,37601554.0,38452074.0,39423494.0,40516774.0,41382533.0,42565463.0,43452152.0,44421367.0,45463841.0,46523908.0,47466092.0,48359694.0,49664665.0,50185320.0,51334647.0,52302159.0,53242228.0,54163713.0,55263275.0,56324255.0,57328525.0,58305124.0,59196453.0,60283610.0,61406537.0,62340425.0,63155147.0,64179848.0,65286362.0,66133838.0,67049220.0,68194228.0,69101256.0,70137298.0,71176726.0,73975053.0,76596517.0,77238833.0,78425751.0,79561310.0,81258675.0,81403849.0,82588563.0,83615988.0,84470956.0,85617217.0,86630796.0,87782266.0,89326189.0,90237204.0,91100529.0,91749407.0,92617391.0,93764713.0,94701196.0,96122107.0,97012422.0,98203188.0,99151562.0,99904167.0,100924469.0,102218550.0,102949614.0],"unit":"ns","throughput":[],"typical":{"estimate":9.873865865042267,"lower_bound":9.819067199567565,"upper_bound":9.919382402028353,"unit":"ns"},"mean":{"estimate":9.729526214202743,"lower_bound":9.692615472562006,"upper_bound":9.768020929806575,"unit":"ns"},"median":{"estimate":9.616324836201475,"lower_bound":9.609222678799313,"upper_bound":9.62863144032373,"unit":"ns"},"median_abs_dev":{"estimate":0.0405747073850776,"lower_bound":0.025892397904861225,"upper_bound":0.060364054940309185,"unit":"ns"},"slope":{"estimate":9.873865865042267,"lower_bound":9.819067199567565,"upper_bound":9.919382402028353,"unit":"ns"},"change":{"mean":{"estimate":-0.2142778160218981,"lower_bound":-0.2176447343588072,"upper_bound":-0.2111587205655881,"unit":"%"},"median":{"estimate":-0.22296019128355693,"lower_bound":-0.2241681548124349,"upper_bound":-0.22106731268439772,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/SmartString/20","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/SmartString/20","iteration_count":[106767,213534,320301,427068,533835,640602,747369,854136,960903,1067670,1174437,1281204,1387971,1494738,1601505,1708272,1815039,1921806,2028573,2135340,2242107,2348874,2455641,2562408,2669175,2775942,2882709,2989476,3096243,3203010,3309777,3416544,3523311,3630078,3736845,3843612,3950379,4057146,4163913,4270680,4377447,4484214,4590981,4697748,4804515,4911282,5018049,5124816,5231583,5338350,5445117,5551884,5658651,5765418,5872185,5978952,6085719,6192486,6299253,6406020,6512787,6619554,6726321,6833088,6939855,7046622,7153389,7260156,7366923,7473690,7580457,7687224,7793991,7900758,8007525,8114292,8221059,8327826,8434593,8541360,8648127,8754894,8861661,8968428,9075195,9181962,9288729,9395496,9502263,9609030,9715797,9822564,9929331,10036098,10142865,10249632,10356399,10463166,10569933,10676700],"measured_values":[992279.0,1993394.0,2968941.0,3950260.0,4951675.0,5983368.0,6904984.0,7911910.0,8918566.0,9877072.0,10865513.0,11862921.0,12896087.0,13854422.0,14788942.0,15869076.0,16739295.0,17762211.0,18772523.0,19705942.0,20760006.0,21728010.0,22732501.0,23715744.0,24738830.0,25838071.0,26653396.0,27780379.0,28595002.0,29561963.0,30751474.0,31791033.0,32598252.0,33676473.0,34653162.0,35595466.0,36578587.0,37440218.0,38487542.0,39547680.0,40612305.0,41605044.0,42548631.0,43442213.0,44545512.0,45483609.0,46432395.0,47381701.0,48348573.0,49318049.0,50301621.0,51584850.0,52558003.0,53356574.0,54318386.0,55396086.0,56413341.0,57306313.0,58225154.0,59396630.0,60464373.0,61200776.0,62476433.0,63218438.0,64393612.0,65347368.0,66139708.0,67121456.0,68602411.0,69442542.0,70201770.0,71165594.0,72110323.0,72844003.0,74089541.0,75270055.0,76069489.0,77179090.0,78298019.0,79185539.0,79915401.0,81259946.0,81950144.0,82933295.0,84155369.0,84966865.0,85824499.0,87043908.0,87826750.0,89035580.0,89856894.0,90738614.0,92163822.0,93275387.0,93928432.0,94860878.0,95766062.0,96748332.0,98025340.0,98792804.0],"unit":"ns","throughput":[],"typical":{"estimate":9.260598366330802,"lower_bound":9.256139002927354,"upper_bound":9.265204030611203,"unit":"ns"},"mean":{"estimate":9.262683660417606,"lower_bound":9.258465962948195,"upper_bound":9.267153348686657,"unit":"ns"},"median":{"estimate":9.259174015780692,"lower_bound":9.25312165744097,"upper_bound":9.265183262886206,"unit":"ns"},"median_abs_dev":{"estimate":0.020276815885867376,"lower_bound":0.015034854044687471,"upper_bound":0.024872864456075186,"unit":"ns"},"slope":{"estimate":9.260598366330802,"lower_bound":9.256139002927354,"upper_bound":9.265204030611203,"unit":"ns"},"change":{"mean":{"estimate":-0.15914693498994958,"lower_bound":-0.15986809190513543,"upper_bound":-0.15844287041097005,"unit":"%"},"median":{"estimate":-0.15885757404671252,"lower_bound":-0.15959063605056656,"upper_bound":-0.15836993979607428,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/SmolStr/20","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/SmolStr/20","iteration_count":[72745,145490,218235,290980,363725,436470,509215,581960,654705,727450,800195,872940,945685,1018430,1091175,1163920,1236665,1309410,1382155,1454900,1527645,1600390,1673135,1745880,1818625,1891370,1964115,2036860,2109605,2182350,2255095,2327840,2400585,2473330,2546075,2618820,2691565,2764310,2837055,2909800,2982545,3055290,3128035,3200780,3273525,3346270,3419015,3491760,3564505,3637250,3709995,3782740,3855485,3928230,4000975,4073720,4146465,4219210,4291955,4364700,4437445,4510190,4582935,4655680,4728425,4801170,4873915,4946660,5019405,5092150,5164895,5237640,5310385,5383130,5455875,5528620,5601365,5674110,5746855,5819600,5892345,5965090,6037835,6110580,6183325,6256070,6328815,6401560,6474305,6547050,6619795,6692540,6765285,6838030,6910775,6983520,7056265,7129010,7201755,7274500],"measured_values":[987450.0,1964430.0,2940107.0,3921595.0,4945133.0,5903818.0,6901688.0,7840705.0,8864143.0,9860930.0,10828112.0,11856598.0,12851653.0,13791984.0,14788751.0,15736125.0,16663941.0,17676858.0,18664549.0,19626390.0,20617718.0,21688134.0,22591866.0,23604633.0,24574349.0,25622093.0,26525644.0,27522320.0,28449396.0,29503251.0,30480271.0,31481757.0,32375109.0,33493957.0,34406896.0,35437668.0,36394088.0,37356440.0,38351324.0,39482707.0,40467861.0,41456303.0,42282538.0,43270538.0,44201030.0,45267529.0,46336914.0,47161375.0,48131191.0,49230513.0,50172156.0,51199911.0,52072954.0,53077076.0,54116865.0,55080298.0,56442358.0,57397647.0,58125944.0,59168068.0,60260126.0,61007191.0,62012234.0,62945410.0,64189466.0,64938884.0,65870408.0,66938059.0,67929006.0,68816177.0,69857317.0,71004649.0,71915103.0,72964860.0,74071587.0,75063695.0,75884409.0,76689744.0,77958636.0,78840917.0,79602418.0,80965880.0,81591205.0,82748375.0,83733741.0,84469884.0,85513691.0,86941354.0,87462590.0,88466470.0,89849670.0,90426443.0,91494805.0,92561054.0,95400080.0,99174776.0,99066983.0,97550832.0,97439200.0,98323956.0],"unit":"ns","throughput":[],"typical":{"estimate":13.579092803909449,"lower_bound":13.539295568530354,"upper_bound":13.628336940114762,"unit":"ns"},"mean":{"estimate":13.547627398494658,"lower_bound":13.531933109894942,"upper_bound":13.567981616190217,"unit":"ns"},"median":{"estimate":13.52640468952897,"lower_bound":13.520192109423329,"upper_bound":13.535654160628134,"unit":"ns"},"median_abs_dev":{"estimate":0.027536903429174753,"lower_bound":0.02035824312848883,"upper_bound":0.03619804768956027,"unit":"ns"},"slope":{"estimate":13.579092803909449,"lower_bound":13.539295568530354,"upper_bound":13.628336940114762,"unit":"ns"},"change":{"mean":{"estimate":-0.023879241320873268,"lower_bound":-0.025750357544462768,"upper_bound":-0.02189747995349958,"unit":"%"},"median":{"estimate":-0.023277031774896928,"lower_bound":-0.02475227134978908,"upper_bound":-0.02210868566712998,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/String/100","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/String/100","iteration_count":[94949,189898,284847,379796,474745,569694,664643,759592,854541,949490,1044439,1139388,1234337,1329286,1424235,1519184,1614133,1709082,1804031,1898980,1993929,2088878,2183827,2278776,2373725,2468674,2563623,2658572,2753521,2848470,2943419,3038368,3133317,3228266,3323215,3418164,3513113,3608062,3703011,3797960,3892909,3987858,4082807,4177756,4272705,4367654,4462603,4557552,4652501,4747450,4842399,4937348,5032297,5127246,5222195,5317144,5412093,5507042,5601991,5696940,5791889,5886838,5981787,6076736,6171685,6266634,6361583,6456532,6551481,6646430,6741379,6836328,6931277,7026226,7121175,7216124,7311073,7406022,7500971,7595920,7690869,7785818,7880767,7975716,8070665,8165614,8260563,8355512,8450461,8545410,8640359,8735308,8830257,8925206,9020155,9115104,9210053,9305002,9399951,9494900],"measured_values":[1751867.0,2033881.0,3030969.0,4034399.0,5047126.0,6049414.0,7214921.0,8067074.0,9076826.0,10086768.0,11094136.0,12105140.0,13122846.0,14120716.0,15127513.0,16137504.0,17652203.0,18156127.0,19162632.0,20174579.0,21201112.0,22188963.0,23211548.0,24155506.0,25156261.0,26060593.0,27126922.0,28389653.0,29128381.0,30108858.0,31030443.0,32171783.0,33112074.0,34091879.0,35026388.0,36198519.0,37195516.0,38176022.0,39079953.0,40073574.0,41021279.0,42047212.0,43230222.0,44281001.0,45605209.0,46406296.0,47414294.0,48237381.0,49444107.0,50258279.0,51128256.0,52076992.0,53174390.0,54325670.0,55780595.0,56405397.0,57163834.0,58378223.0,59796768.0,60116986.0,61148998.0,62395410.0,63586253.0,64547034.0,65408293.0,66287719.0,67062896.0,68175613.0,69004673.0,70810582.0,71211252.0,72185495.0,73480016.0,74317122.0,75128929.0,76133470.0,77427791.0,78647631.0,79399554.0,80701500.0,81346391.0,82077454.0,83363299.0,84400814.0,85327578.0,86422712.0,87144178.0,88223531.0,89460123.0,90515000.0,91131047.0,92205090.0,93087130.0,94417910.0,95330077.0,96450789.0,97293124.0,98792573.0,99297649.0,100645532.0],"unit":"ns","throughput":[],"typical":{"estimate":10.58122440298085,"lower_bound":10.57425869217458,"upper_bound":10.588635876060458,"unit":"ns"},"mean":{"estimate":10.677253557020117,"lower_bound":10.5907665113693,"upper_bound":10.841095695668821,"unit":"ns"},"median":{"estimate":10.588432836312126,"lower_bound":10.581117087644692,"upper_bound":10.599957029563239,"unit":"ns"},"median_abs_dev":{"estimate":0.047263739431993294,"lower_bound":0.03413359405786574,"upper_bound":0.051644012344049584,"unit":"ns"},"slope":{"estimate":10.58122440298085,"lower_bound":10.57425869217458,"upper_bound":10.588635876060458,"unit":"ns"},"change":{"mean":{"estimate":0.042088080164781605,"lower_bound":0.03304469283611887,"upper_bound":0.05769313050496259,"unit":"%"},"median":{"estimate":0.03244772289370412,"lower_bound":0.031592482167773994,"upper_bound":0.033593703134677085,"unit":"%"},"change":"Regressed"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/Rc/100","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/Rc_str_/100","iteration_count":[93229,186458,279687,372916,466145,559374,652603,745832,839061,932290,1025519,1118748,1211977,1305206,1398435,1491664,1584893,1678122,1771351,1864580,1957809,2051038,2144267,2237496,2330725,2423954,2517183,2610412,2703641,2796870,2890099,2983328,3076557,3169786,3263015,3356244,3449473,3542702,3635931,3729160,3822389,3915618,4008847,4102076,4195305,4288534,4381763,4474992,4568221,4661450,4754679,4847908,4941137,5034366,5127595,5220824,5314053,5407282,5500511,5593740,5686969,5780198,5873427,5966656,6059885,6153114,6246343,6339572,6432801,6526030,6619259,6712488,6805717,6898946,6992175,7085404,7178633,7271862,7365091,7458320,7551549,7644778,7738007,7831236,7924465,8017694,8110923,8204152,8297381,8390610,8483839,8577068,8670297,8763526,8856755,8949984,9043213,9136442,9229671,9322900],"measured_values":[986518.0,1963598.0,2954224.0,3932696.0,4938441.0,5956488.0,6931804.0,7936507.0,8915190.0,9916476.0,10869990.0,11819620.0,12808942.0,13760203.0,14810833.0,15802130.0,16818483.0,17853874.0,18789476.0,19762839.0,20730892.0,21697291.0,22620559.0,23660659.0,24583856.0,25705291.0,26759406.0,27754299.0,28537043.0,29614021.0,30697482.0,31621512.0,32450181.0,33563679.0,34499901.0,35548047.0,36749070.0,37620310.0,38597371.0,39628592.0,40691736.0,41688402.0,42693766.0,43668842.0,44628959.0,45645053.0,46629748.0,47654389.0,48632640.0,49606053.0,50571992.0,51630997.0,52587789.0,53557616.0,54598776.0,55583431.0,56562976.0,57607704.0,58559797.0,59450052.0,60248243.0,61207760.0,62094790.0,63189833.0,64036415.0,65151668.0,66255568.0,67026447.0,68306812.0,69097949.0,69976172.0,71048794.0,72200764.0,73022941.0,74077869.0,74995366.0,75949552.0,77330777.0,77744872.0,78944803.0,79842794.0,80870299.0,81973829.0,82720843.0,83759028.0,84924496.0,85852131.0,86972703.0,87886293.0,88784845.0,89706870.0,90708467.0,91669967.0,93015254.0,93735348.0,94463657.0,95810837.0,97416528.0,97767122.0,98710287.0],"unit":"ns","throughput":[],"typical":{"estimate":10.597509311155072,"lower_bound":10.590979802537207,"upper_bound":10.60491880781449,"unit":"ns"},"mean":{"estimate":10.601877978780893,"lower_bound":10.595558033639312,"upper_bound":10.608182446336869,"unit":"ns"},"median":{"estimate":10.59387427050597,"lower_bound":10.588822505157552,"upper_bound":10.60709730477497,"unit":"ns"},"median_abs_dev":{"estimate":0.03444853134059743,"lower_bound":0.02552876623231173,"upper_bound":0.046413476883715686,"unit":"ns"},"slope":{"estimate":10.597509311155072,"lower_bound":10.590979802537207,"upper_bound":10.60491880781449,"unit":"ns"},"change":{"mean":{"estimate":0.03278208214701106,"lower_bound":0.031973490547148944,"upper_bound":0.033527813706449486,"unit":"%"},"median":{"estimate":0.03263500859262369,"lower_bound":0.03213283777914788,"upper_bound":0.033918947413873246,"unit":"%"},"change":"Regressed"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/Arc/100","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/Arc_str_/100","iteration_count":[87433,174866,262299,349732,437165,524598,612031,699464,786897,874330,961763,1049196,1136629,1224062,1311495,1398928,1486361,1573794,1661227,1748660,1836093,1923526,2010959,2098392,2185825,2273258,2360691,2448124,2535557,2622990,2710423,2797856,2885289,2972722,3060155,3147588,3235021,3322454,3409887,3497320,3584753,3672186,3759619,3847052,3934485,4021918,4109351,4196784,4284217,4371650,4459083,4546516,4633949,4721382,4808815,4896248,4983681,5071114,5158547,5245980,5333413,5420846,5508279,5595712,5683145,5770578,5858011,5945444,6032877,6120310,6207743,6295176,6382609,6470042,6557475,6644908,6732341,6819774,6907207,6994640,7082073,7169506,7256939,7344372,7431805,7519238,7606671,7694104,7781537,7868970,7956403,8043836,8131269,8218702,8306135,8393568,8481001,8568434,8655867,8743300],"measured_values":[987610.0,1977284.0,2947702.0,3922246.0,4947888.0,5926421.0,6928839.0,7910087.0,8868251.0,9853096.0,10861495.0,11852832.0,12871401.0,13854321.0,14833816.0,15814844.0,16680613.0,17663334.0,18716247.0,19817212.0,20685815.0,21673456.0,22585733.0,23580908.0,25331092.0,25627523.0,26566832.0,27525877.0,28533184.0,29416517.0,30490550.0,31577178.0,32509323.0,33539624.0,34594681.0,35422228.0,36403295.0,37504220.0,38348498.0,39556346.0,40420281.0,41251515.0,42299319.0,43179857.0,44232189.0,46595493.0,46577319.0,47808360.0,48831978.0,49303289.0,50372474.0,51493919.0,52109494.0,53570349.0,54134167.0,55182542.0,56149924.0,57209580.0,58292160.0,59352116.0,60241942.0,61227707.0,62055375.0,64057195.0,64069880.0,64925740.0,66117948.0,67004546.0,67976566.0,68934871.0,69869540.0,70879042.0,71911166.0,72797104.0,74623561.0,74901107.0,75772357.0,76715172.0,77799275.0,78752730.0,79875826.0,80907419.0,81647110.0,82569516.0,83674288.0,84648804.0,85509793.0,86721829.0,87353043.0,88405967.0,89646326.0,90490834.0,91616325.0,92468669.0,93487699.0,94531856.0,95415038.0,96414660.0,97655771.0,98600930.0],"unit":"ns","throughput":[],"typical":{"estimate":11.2728328842383,"lower_bound":11.264747788852786,"upper_bound":11.282797024661797,"unit":"ns"},"mean":{"estimate":11.2821239200808,"lower_bound":11.271679856462454,"upper_bound":11.294392930363902,"unit":"ns"},"median":{"estimate":11.267416712849215,"lower_bound":11.262954391936809,"upper_bound":11.27454435815758,"unit":"ns"},"median_abs_dev":{"estimate":0.027081284451101015,"lower_bound":0.02167733857544318,"upper_bound":0.03795503391854951,"unit":"ns"},"slope":{"estimate":11.2728328842383,"lower_bound":11.264747788852786,"upper_bound":11.282797024661797,"unit":"ns"},"change":{"mean":{"estimate":-0.02339794050564936,"lower_bound":-0.024903907505385157,"upper_bound":-0.022005558778741295,"unit":"%"},"median":{"estimate":-0.023420013280729512,"lower_bound":-0.02399557562187205,"upper_bound":-0.022692971497223713,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/FlexStr/100","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/FlexStr/100","iteration_count":[88868,177736,266604,355472,444340,533208,622076,710944,799812,888680,977548,1066416,1155284,1244152,1333020,1421888,1510756,1599624,1688492,1777360,1866228,1955096,2043964,2132832,2221700,2310568,2399436,2488304,2577172,2666040,2754908,2843776,2932644,3021512,3110380,3199248,3288116,3376984,3465852,3554720,3643588,3732456,3821324,3910192,3999060,4087928,4176796,4265664,4354532,4443400,4532268,4621136,4710004,4798872,4887740,4976608,5065476,5154344,5243212,5332080,5420948,5509816,5598684,5687552,5776420,5865288,5954156,6043024,6131892,6220760,6309628,6398496,6487364,6576232,6665100,6753968,6842836,6931704,7020572,7109440,7198308,7287176,7376044,7464912,7553780,7642648,7731516,7820384,7909252,7998120,8086988,8175856,8264724,8353592,8442460,8531328,8620196,8709064,8797932,8886800],"measured_values":[1003310.0,2015226.0,2998787.0,3991587.0,4990399.0,6540854.0,6990075.0,8005067.0,9019968.0,9986458.0,10985691.0,11968621.0,13009171.0,14004396.0,15017765.0,16016134.0,16988256.0,18044335.0,18968074.0,19946286.0,21096434.0,22049128.0,23404163.0,24507863.0,24924683.0,26714931.0,27121001.0,28022538.0,28943261.0,30042061.0,30978686.0,32164259.0,32980515.0,33990077.0,35061545.0,36753779.0,37004394.0,38046277.0,39135098.0,39917840.0,41118664.0,41932946.0,43160269.0,44129374.0,44971428.0,45994766.0,47011571.0,47946852.0,48991109.0,50245605.0,50961019.0,51964840.0,52914548.0,54058674.0,55038920.0,56085161.0,57567608.0,58026698.0,58423237.0,58754525.0,60349185.0,60639905.0,61651621.0,62757154.0,63825276.0,64609471.0,66573249.0,66630628.0,67604832.0,68574969.0,69548132.0,71153672.0,71560061.0,72688618.0,73539810.0,74431217.0,75352732.0,76454347.0,77432449.0,78337965.0,79514111.0,80316481.0,81171760.0,82325895.0,83229396.0,84530429.0,85844377.0,86274331.0,87229810.0,88196731.0,89202234.0,90253033.0,91352657.0,92144966.0,93091889.0,94231256.0,95075676.0,96597597.0,97035355.0,98013708.0],"unit":"ns","throughput":[],"typical":{"estimate":11.087692898310635,"lower_bound":11.070413404085937,"upper_bound":11.109451814546583,"unit":"ns"},"mean":{"estimate":11.18929923996368,"lower_bound":11.158452267024163,"upper_bound":11.2244787426042,"unit":"ns"},"median":{"estimate":11.234119043546237,"lower_bound":11.142642525230718,"upper_bound":11.245203663183428,"unit":"ns"},"median_abs_dev":{"estimate":0.106745704246759,"lower_bound":0.05544265969322772,"upper_bound":0.20548858359419261,"unit":"ns"},"slope":{"estimate":11.087692898310635,"lower_bound":11.070413404085937,"upper_bound":11.109451814546583,"unit":"ns"},"change":{"mean":{"estimate":0.06339033375547132,"lower_bound":0.056973072208872926,"upper_bound":0.06827144759304256,"unit":"%"},"median":{"estimate":0.07186404005975455,"lower_bound":0.06239206424385972,"upper_bound":0.07311394959147433,"unit":"%"},"change":"Regressed"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/AFlexStr/100","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/AFlexStr/100","iteration_count":[90433,180866,271299,361732,452165,542598,633031,723464,813897,904330,994763,1085196,1175629,1266062,1356495,1446928,1537361,1627794,1718227,1808660,1899093,1989526,2079959,2170392,2260825,2351258,2441691,2532124,2622557,2712990,2803423,2893856,2984289,3074722,3165155,3255588,3346021,3436454,3526887,3617320,3707753,3798186,3888619,3979052,4069485,4159918,4250351,4340784,4431217,4521650,4612083,4702516,4792949,4883382,4973815,5064248,5154681,5245114,5335547,5425980,5516413,5606846,5697279,5787712,5878145,5968578,6059011,6149444,6239877,6330310,6420743,6511176,6601609,6692042,6782475,6872908,6963341,7053774,7144207,7234640,7325073,7415506,7505939,7596372,7686805,7777238,7867671,7958104,8048537,8138970,8229403,8319836,8410269,8500702,8591135,8681568,8772001,8862434,8952867,9043300],"measured_values":[995355.0,1986752.0,2964182.0,3970728.0,4933521.0,5943854.0,6955469.0,7952878.0,8941489.0,9901648.0,10872296.0,11857050.0,12863375.0,13845115.0,14858993.0,15816196.0,16796683.0,17747362.0,18738310.0,19824355.0,20770357.0,22452641.0,22674903.0,23665668.0,24720326.0,25685994.0,26692088.0,27666334.0,28723655.0,29657373.0,30598435.0,31575786.0,32598100.0,33557968.0,34617214.0,35544419.0,36464782.0,37489081.0,39456998.0,39673908.0,40653603.0,41519012.0,42520568.0,43471147.0,44508682.0,45559522.0,46629749.0,47819381.0,48508856.0,49497287.0,50368007.0,51525007.0,52344459.0,53301200.0,54475042.0,56072767.0,56289457.0,57281697.0,58429730.0,59552556.0,60598817.0,62088859.0,62181073.0,63366177.0,64278905.0,65278408.0,66613815.0,67786486.0,68301522.0,69304230.0,70146404.0,71135668.0,72261219.0,73321326.0,74382475.0,75365236.0,76950568.0,77072708.0,78153685.0,79019044.0,80138434.0,81146622.0,82183535.0,82921292.0,84066079.0,85747533.0,85945839.0,87235541.0,88554919.0,89209960.0,93988196.0,92349443.0,92987692.0,93574512.0,94019536.0,94967311.0,97524621.0,96858111.0,98239025.0,99054809.0],"unit":"ns","throughput":[],"typical":{"estimate":10.978832040214465,"lower_bound":10.956870849678069,"upper_bound":11.007465711461196,"unit":"ns"},"mean":{"estimate":10.963576819071347,"lower_bound":10.950408187674322,"upper_bound":10.979383745631653,"unit":"ns"},"median":{"estimate":10.943307628494585,"lower_bound":10.936273500033963,"upper_bound":10.951029013520076,"unit":"ns"},"median_abs_dev":{"estimate":0.028413434974414023,"lower_bound":0.02129886986938655,"upper_bound":0.03844059191095493,"unit":"ns"},"slope":{"estimate":10.978832040214465,"lower_bound":10.956870849678069,"upper_bound":11.007465711461196,"unit":"ns"},"change":{"mean":{"estimate":0.02496108045698775,"lower_bound":0.02359702724871915,"upper_bound":0.026541147466420407,"unit":"%"},"median":{"estimate":0.023057184889424986,"lower_bound":0.022131176311169565,"upper_bound":0.023961712628473464,"unit":"%"},"change":"Regressed"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/CompactStr/100","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/CompactStr/100","iteration_count":[82314,164628,246942,329256,411570,493884,576198,658512,740826,823140,905454,987768,1070082,1152396,1234710,1317024,1399338,1481652,1563966,1646280,1728594,1810908,1893222,1975536,2057850,2140164,2222478,2304792,2387106,2469420,2551734,2634048,2716362,2798676,2880990,2963304,3045618,3127932,3210246,3292560,3374874,3457188,3539502,3621816,3704130,3786444,3868758,3951072,4033386,4115700,4198014,4280328,4362642,4444956,4527270,4609584,4691898,4774212,4856526,4938840,5021154,5103468,5185782,5268096,5350410,5432724,5515038,5597352,5679666,5761980,5844294,5926608,6008922,6091236,6173550,6255864,6338178,6420492,6502806,6585120,6667434,6749748,6832062,6914376,6996690,7079004,7161318,7243632,7325946,7408260,7490574,7572888,7655202,7737516,7819830,7902144,7984458,8066772,8149086,8231400],"measured_values":[990235.0,1977173.0,2949965.0,3948857.0,4945464.0,5955326.0,6956993.0,7941997.0,8935778.0,9870248.0,10913563.0,11924387.0,12879836.0,13865262.0,14814781.0,15873043.0,16779089.0,17767751.0,18761694.0,19788357.0,20811404.0,21852054.0,22694931.0,23700143.0,24666073.0,25762188.0,26743907.0,27818542.0,28652751.0,29678112.0,31242354.0,31588229.0,32577131.0,33624824.0,34631381.0,35711265.0,36580801.0,37513007.0,38953044.0,39513494.0,40550968.0,41571261.0,42453401.0,43336533.0,44434682.0,45498155.0,46534057.0,47768545.0,48360615.0,49496094.0,50317451.0,51389711.0,52359778.0,53340354.0,54305371.0,55296277.0,56316309.0,57391775.0,58205365.0,59266134.0,60307505.0,61198543.0,62246316.0,63245950.0,64253266.0,65111712.0,66146642.0,67121697.0,68130508.0,68979285.0,70076592.0,70980424.0,72175857.0,73073807.0,74444111.0,75108269.0,76083465.0,76919087.0,78264405.0,78922481.0,80003678.0,80942606.0,81806362.0,83457357.0,83908952.0,85030686.0,85853093.0,86904484.0,87814396.0,88838665.0,90521673.0,91039424.0,91695956.0,93290865.0,93753161.0,95355716.0,95943528.0,96817263.0,97739428.0,98671133.0],"unit":"ns","throughput":[],"typical":{"estimate":12.00838309579756,"lower_bound":12.000995464628348,"upper_bound":12.016650044982143,"unit":"ns"},"mean":{"estimate":12.015203212101683,"lower_bound":12.00805830727273,"upper_bound":12.02331173214021,"unit":"ns"},"median":{"estimate":12.003008708144154,"lower_bound":11.996816560163925,"upper_bound":12.011067332494068,"unit":"ns"},"median_abs_dev":{"estimate":0.0201112733540342,"lower_bound":0.014673243116911632,"upper_bound":0.029464301605706105,"unit":"ns"},"slope":{"estimate":12.00838309579756,"lower_bound":12.000995464628348,"upper_bound":12.016650044982143,"unit":"ns"},"change":{"mean":{"estimate":0.003485836412476351,"lower_bound":0.002696879820186138,"upper_bound":0.004302908560585688,"unit":"%"},"median":{"estimate":0.0029865627937060157,"lower_bound":0.0023761418895680286,"upper_bound":0.003726208536468656,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/KString/100","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/KString/100","iteration_count":[94141,188282,282423,376564,470705,564846,658987,753128,847269,941410,1035551,1129692,1223833,1317974,1412115,1506256,1600397,1694538,1788679,1882820,1976961,2071102,2165243,2259384,2353525,2447666,2541807,2635948,2730089,2824230,2918371,3012512,3106653,3200794,3294935,3389076,3483217,3577358,3671499,3765640,3859781,3953922,4048063,4142204,4236345,4330486,4424627,4518768,4612909,4707050,4801191,4895332,4989473,5083614,5177755,5271896,5366037,5460178,5554319,5648460,5742601,5836742,5930883,6025024,6119165,6213306,6307447,6401588,6495729,6589870,6684011,6778152,6872293,6966434,7060575,7154716,7248857,7342998,7437139,7531280,7625421,7719562,7813703,7907844,8001985,8096126,8190267,8284408,8378549,8472690,8566831,8660972,8755113,8849254,8943395,9037536,9131677,9225818,9319959,9414100],"measured_values":[994914.0,2000558.0,2993909.0,3990465.0,4988755.0,5962709.0,6961090.0,7968337.0,8930459.0,9912969.0,10905158.0,11904080.0,12950670.0,13959661.0,14899631.0,15912328.0,16870943.0,18025129.0,19032947.0,20005979.0,20999872.0,21945671.0,23031007.0,23972830.0,24976661.0,25918053.0,26945689.0,27916417.0,29020036.0,29908048.0,31038588.0,34002831.0,32723820.0,33767855.0,34749965.0,36310400.0,36950111.0,37754844.0,38698200.0,39669620.0,40669332.0,41909671.0,42733020.0,43831149.0,44688744.0,45685550.0,46738142.0,47782941.0,48998653.0,49833074.0,50665600.0,51594599.0,52795833.0,53756012.0,54701701.0,55692939.0,56746593.0,57636589.0,58526243.0,59770779.0,60631769.0,61670847.0,62805756.0,63610680.0,64559426.0,65832677.0,66769801.0,67696315.0,68734891.0,69807203.0,70342435.0,70307539.0,71258350.0,72362561.0,73257245.0,74222873.0,75143666.0,76031831.0,76875533.0,78097607.0,79429230.0,79973106.0,81421530.0,81945172.0,82941109.0,83848207.0,84883468.0,85891728.0,86894026.0,87804612.0,88727369.0,89527296.0,90545483.0,91554164.0,92582353.0,93328526.0,94548657.0,96034752.0,98882507.0,101758045.0],"unit":"ns","throughput":[],"typical":{"estimate":10.461716200259508,"lower_bound":10.431006807058122,"upper_bound":10.498894131007498,"unit":"ns"},"mean":{"estimate":10.530621329825799,"lower_bound":10.506376432932209,"upper_bound":10.55681892809623,"unit":"ns"},"median":{"estimate":10.557079475418243,"lower_bound":10.548115450717145,"upper_bound":10.574329330472377,"unit":"ns"},"median_abs_dev":{"estimate":0.055140371888564174,"lower_bound":0.0391822131184085,"upper_bound":0.08883845216745043,"unit":"ns"},"slope":{"estimate":10.461716200259508,"lower_bound":10.431006807058122,"upper_bound":10.498894131007498,"unit":"ns"},"change":{"mean":{"estimate":-0.16799807271138,"lower_bound":-0.17013470013591747,"upper_bound":-0.1657379687723615,"unit":"%"},"median":{"estimate":-0.16462658371001992,"lower_bound":-0.16593374901125824,"upper_bound":-0.1631971771556422,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/SmartString/100","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/SmartString/100","iteration_count":[59171,118342,177513,236684,295855,355026,414197,473368,532539,591710,650881,710052,769223,828394,887565,946736,1005907,1065078,1124249,1183420,1242591,1301762,1360933,1420104,1479275,1538446,1597617,1656788,1715959,1775130,1834301,1893472,1952643,2011814,2070985,2130156,2189327,2248498,2307669,2366840,2426011,2485182,2544353,2603524,2662695,2721866,2781037,2840208,2899379,2958550,3017721,3076892,3136063,3195234,3254405,3313576,3372747,3431918,3491089,3550260,3609431,3668602,3727773,3786944,3846115,3905286,3964457,4023628,4082799,4141970,4201141,4260312,4319483,4378654,4437825,4496996,4556167,4615338,4674509,4733680,4792851,4852022,4911193,4970364,5029535,5088706,5147877,5207048,5266219,5325390,5384561,5443732,5502903,5562074,5621245,5680416,5739587,5798758,5857929,5917100],"measured_values":[984465.0,1986243.0,2978743.0,3957436.0,5036241.0,6026236.0,7058541.0,8070448.0,9072156.0,9987270.0,11007662.0,12101514.0,13045632.0,13987187.0,15129831.0,16083297.0,17151691.0,17960623.0,19094210.0,20083064.0,21098698.0,22206416.0,23227521.0,24208358.0,25209164.0,26353612.0,27184857.0,28471354.0,29493972.0,29597938.0,30910575.0,31660124.0,32545732.0,33540267.0,34707597.0,35608033.0,36697156.0,37488134.0,38387248.0,39437928.0,40434466.0,41410815.0,42490350.0,43359968.0,44375491.0,45188822.0,46451384.0,47451759.0,49196254.0,50087562.0,51174290.0,52163063.0,52701774.0,53341286.0,54020512.0,55049713.0,56315019.0,57217779.0,57977809.0,59227496.0,60677864.0,61370205.0,62417660.0,63471065.0,64608760.0,65278679.0,65932948.0,67128613.0,67867924.0,68927171.0,70071809.0,71067875.0,72244765.0,73019963.0,74029767.0,74815254.0,76499155.0,78622216.0,79253943.0,80736130.0,81458909.0,82015864.0,83124885.0,84105883.0,85248970.0,86267017.0,86924383.0,86648340.0,87853593.0,89110344.0,90229945.0,90969625.0,92166633.0,94557042.0,94441683.0,96009823.0,96419880.0,96797565.0,97455532.0,98205112.0],"unit":"ns","throughput":[],"typical":{"estimate":16.78074713409431,"lower_bound":16.746606803256416,"upper_bound":16.81574089386709,"unit":"ns"},"mean":{"estimate":16.819605480953875,"lower_bound":16.788822943462943,"upper_bound":16.851427184171044,"unit":"ns"},"median":{"estimate":16.77113248348313,"lower_bound":16.720671866285848,"upper_bound":16.865037962689875,"unit":"ns"},"median_abs_dev":{"estimate":0.182931137462358,"lower_bound":0.10998933652204136,"upper_bound":0.23152091938307992,"unit":"ns"},"slope":{"estimate":16.78074713409431,"lower_bound":16.746606803256416,"upper_bound":16.81574089386709,"unit":"ns"},"change":{"mean":{"estimate":0.007153945911129833,"lower_bound":0.005124195753815897,"upper_bound":0.009201207340751114,"unit":"%"},"median":{"estimate":0.005307362140446248,"lower_bound":0.0021211140554573404,"upper_bound":0.011482708294830113,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/SmolStr/100","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/SmolStr/100","iteration_count":[48750,97500,146250,195000,243750,292500,341250,390000,438750,487500,536250,585000,633750,682500,731250,780000,828750,877500,926250,975000,1023750,1072500,1121250,1170000,1218750,1267500,1316250,1365000,1413750,1462500,1511250,1560000,1608750,1657500,1706250,1755000,1803750,1852500,1901250,1950000,1998750,2047500,2096250,2145000,2193750,2242500,2291250,2340000,2388750,2437500,2486250,2535000,2583750,2632500,2681250,2730000,2778750,2827500,2876250,2925000,2973750,3022500,3071250,3120000,3168750,3217500,3266250,3315000,3363750,3412500,3461250,3510000,3558750,3607500,3656250,3705000,3753750,3802500,3851250,3900000,3948750,3997500,4046250,4095000,4143750,4192500,4241250,4290000,4338750,4387500,4436250,4485000,4533750,4582500,4631250,4680000,4728750,4777500,4826250,4875000],"measured_values":[998351.0,2001943.0,2986267.0,3966374.0,4927534.0,5885419.0,6936199.0,7891540.0,8873810.0,9884634.0,10821159.0,11810553.0,12779337.0,13872229.0,14839060.0,15790031.0,16755961.0,17772397.0,18848445.0,19794637.0,20737253.0,21765722.0,22683218.0,23823450.0,24711391.0,25854637.0,27187832.0,27687639.0,28746174.0,29713987.0,30600227.0,31739053.0,32658546.0,33538903.0,34734087.0,35508073.0,36532073.0,37656924.0,38456950.0,39737876.0,40544905.0,41476259.0,42439584.0,43426884.0,44454641.0,45574352.0,46565970.0,47765082.0,48655018.0,49655964.0,50434198.0,51268108.0,52290244.0,53357546.0,54174733.0,55592750.0,56493998.0,57328157.0,58292895.0,59300664.0,60165281.0,61139127.0,62399684.0,63315630.0,64423107.0,65752506.0,66292338.0,67538810.0,68403337.0,69464296.0,70261297.0,71420032.0,72005581.0,72844720.0,73948481.0,75335850.0,76218722.0,77372517.0,78516925.0,79011732.0,79897771.0,80922562.0,81969746.0,82664943.0,83859025.0,85112108.0,85847832.0,87252012.0,87697416.0,88725954.0,90514061.0,90821925.0,92146493.0,92792146.0,94246061.0,94995661.0,96269974.0,96954691.0,98038484.0,98731046.0],"unit":"ns","throughput":[],"typical":{"estimate":20.291998687082486,"lower_bound":20.27729001774016,"upper_bound":20.307152382898323,"unit":"ns"},"mean":{"estimate":20.295267894276087,"lower_bound":20.28077237086885,"upper_bound":20.31096846808989,"unit":"ns"},"median":{"estimate":20.288989844142783,"lower_bound":20.263487229831007,"upper_bound":20.302863660370637,"unit":"ns"},"median_abs_dev":{"estimate":0.0721295791293806,"lower_bound":0.05493955262916362,"upper_bound":0.0842721004475855,"unit":"ns"},"slope":{"estimate":20.291998687082486,"lower_bound":20.27729001774016,"upper_bound":20.307152382898323,"unit":"ns"},"change":{"mean":{"estimate":-0.1281045271001856,"lower_bound":-0.12910038527177453,"upper_bound":-0.12710685332271862,"unit":"%"},"median":{"estimate":-0.12778318791676924,"lower_bound":-0.12932111404284508,"upper_bound":-0.12654732304711414,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/String/1000","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/String/1000","iteration_count":[73289,146578,219867,293156,366445,439734,513023,586312,659601,732890,806179,879468,952757,1026046,1099335,1172624,1245913,1319202,1392491,1465780,1539069,1612358,1685647,1758936,1832225,1905514,1978803,2052092,2125381,2198670,2271959,2345248,2418537,2491826,2565115,2638404,2711693,2784982,2858271,2931560,3004849,3078138,3151427,3224716,3298005,3371294,3444583,3517872,3591161,3664450,3737739,3811028,3884317,3957606,4030895,4104184,4177473,4250762,4324051,4397340,4470629,4543918,4617207,4690496,4763785,4837074,4910363,4983652,5056941,5130230,5203519,5276808,5350097,5423386,5496675,5569964,5643253,5716542,5789831,5863120,5936409,6009698,6082987,6156276,6229565,6302854,6376143,6449432,6522721,6596010,6669299,6742588,6815877,6889166,6962455,7035744,7109033,7182322,7255611,7328900],"measured_values":[1028709.0,1974450.0,2964305.0,3947097.0,4926673.0,5939221.0,6935267.0,7937546.0,8914236.0,9933427.0,10909346.0,11827765.0,12803604.0,13807856.0,14796378.0,15846849.0,16796327.0,17771325.0,18800614.0,19778616.0,20801273.0,22793527.0,22737792.0,23666831.0,26187767.0,25791938.0,26721828.0,28363539.0,28671442.0,29667168.0,30576492.0,31684930.0,32650128.0,33563729.0,34614921.0,35587223.0,36660786.0,37571161.0,38487697.0,40691412.0,40451437.0,41409572.0,43222336.0,43493580.0,44394607.0,45510761.0,46363706.0,47346317.0,48322867.0,50113350.0,50243666.0,51335695.0,52311063.0,54203407.0,54338354.0,55281409.0,56199558.0,57364706.0,58419433.0,59275786.0,60342386.0,61239777.0,62166491.0,63273478.0,64111306.0,65112472.0,66096216.0,67087123.0,68100101.0,69220425.0,70065765.0,71779361.0,72018294.0,73196746.0,73956706.0,74973382.0,76124933.0,76953723.0,78046453.0,78868780.0,80123898.0,80934183.0,82043554.0,82957045.0,83838214.0,85122136.0,85839956.0,86934309.0,88069700.0,89696181.0,90645088.0,90803678.0,91828038.0,93662564.0,93820223.0,94957497.0,96077669.0,97554457.0,97730770.0,99559775.0],"unit":"ns","throughput":[],"typical":{"estimate":13.503941526994407,"lower_bound":13.490172539095877,"upper_bound":13.518938007377468,"unit":"ns"},"mean":{"estimate":13.521650803469292,"lower_bound":13.498221823350683,"upper_bound":13.549726593717955,"unit":"ns"},"median":{"estimate":13.484821875612536,"lower_bound":13.472666540197249,"upper_bound":13.49323363669855,"unit":"ns"},"median_abs_dev":{"estimate":0.034103035525196695,"lower_bound":0.023467543355692053,"upper_bound":0.0418033635497767,"unit":"ns"},"slope":{"estimate":13.503941526994407,"lower_bound":13.490172539095877,"upper_bound":13.518938007377468,"unit":"ns"},"change":{"mean":{"estimate":0.010335826502634982,"lower_bound":0.00109059938908972,"upper_bound":0.01650204625192784,"unit":"%"},"median":{"estimate":0.01540450527321302,"lower_bound":0.014275095697179774,"upper_bound":0.016303503233436878,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/Rc/1000","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/Rc_str_/1000","iteration_count":[70725,141450,212175,282900,353625,424350,495075,565800,636525,707250,777975,848700,919425,990150,1060875,1131600,1202325,1273050,1343775,1414500,1485225,1555950,1626675,1697400,1768125,1838850,1909575,1980300,2051025,2121750,2192475,2263200,2333925,2404650,2475375,2546100,2616825,2687550,2758275,2829000,2899725,2970450,3041175,3111900,3182625,3253350,3324075,3394800,3465525,3536250,3606975,3677700,3748425,3819150,3889875,3960600,4031325,4102050,4172775,4243500,4314225,4384950,4455675,4526400,4597125,4667850,4738575,4809300,4880025,4950750,5021475,5092200,5162925,5233650,5304375,5375100,5445825,5516550,5587275,5658000,5728725,5799450,5870175,5940900,6011625,6082350,6153075,6223800,6294525,6365250,6435975,6506700,6577425,6648150,6718875,6789600,6860325,6931050,7001775,7072500],"measured_values":[981940.0,1964832.0,2935511.0,3945314.0,4954785.0,5939030.0,6862159.0,7928710.0,8789039.0,9827416.0,10727791.0,11777009.0,12794988.0,13836109.0,14849860.0,15789600.0,16753175.0,17695481.0,18584965.0,19717390.0,21165894.0,21662725.0,23308293.0,23537286.0,24629745.0,26516609.0,26565753.0,27547422.0,28424284.0,29431342.0,30361353.0,31330248.0,32343777.0,33362758.0,34355359.0,35370722.0,36251370.0,37279727.0,38874669.0,39287272.0,40377476.0,41221945.0,42123323.0,43181158.0,44134403.0,45132273.0,46186470.0,47143834.0,48108611.0,49077967.0,49932195.0,50888748.0,52082569.0,53009245.0,53950457.0,54957154.0,55926150.0,56888262.0,57828893.0,58663476.0,62228538.0,60817996.0,61643541.0,63503163.0,64416983.0,64687857.0,65677210.0,66665663.0,67676898.0,68646966.0,69548154.0,70564749.0,71644564.0,73086136.0,73536588.0,74473604.0,75402483.0,76411956.0,77500588.0,79737214.0,79608550.0,80241510.0,81525903.0,82318164.0,83572129.0,84755941.0,85276086.0,86262976.0,87235318.0,88236925.0,89267638.0,90920328.0,91196532.0,93441855.0,93432056.0,94161197.0,95381709.0,95990563.0,98246917.0,98252277.0],"unit":"ns","throughput":[],"typical":{"estimate":13.902113522598366,"lower_bound":13.883475852218373,"upper_bound":13.92415232507817,"unit":"ns"},"mean":{"estimate":13.912401620111332,"lower_bound":13.89273623559086,"upper_bound":13.935089363047702,"unit":"ns"},"median":{"estimate":13.876333483295307,"lower_bound":13.869712539481636,"upper_bound":13.887614022722207,"unit":"ns"},"median_abs_dev":{"estimate":0.030536489057216745,"lower_bound":0.023438977608469587,"upper_bound":0.04651680873869417,"unit":"ns"},"slope":{"estimate":13.902113522598366,"lower_bound":13.883475852218373,"upper_bound":13.92415232507817,"unit":"ns"},"change":{"mean":{"estimate":-0.2433871546597478,"lower_bound":-0.24443045563923513,"upper_bound":-0.24216733928031645,"unit":"%"},"median":{"estimate":-0.24528282550227842,"lower_bound":-0.24578632447900006,"upper_bound":-0.24455950217619415,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/Arc/1000","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/Arc_str_/1000","iteration_count":[68836,137672,206508,275344,344180,413016,481852,550688,619524,688360,757196,826032,894868,963704,1032540,1101376,1170212,1239048,1307884,1376720,1445556,1514392,1583228,1652064,1720900,1789736,1858572,1927408,1996244,2065080,2133916,2202752,2271588,2340424,2409260,2478096,2546932,2615768,2684604,2753440,2822276,2891112,2959948,3028784,3097620,3166456,3235292,3304128,3372964,3441800,3510636,3579472,3648308,3717144,3785980,3854816,3923652,3992488,4061324,4130160,4198996,4267832,4336668,4405504,4474340,4543176,4612012,4680848,4749684,4818520,4887356,4956192,5025028,5093864,5162700,5231536,5300372,5369208,5438044,5506880,5575716,5644552,5713388,5782224,5851060,5919896,5988732,6057568,6126404,6195240,6264076,6332912,6401748,6470584,6539420,6608256,6677092,6745928,6814764,6883600],"measured_values":[984966.0,1967276.0,2964345.0,3961744.0,4966859.0,5931495.0,6876677.0,7949799.0,8881694.0,9957863.0,10932780.0,11871588.0,12844490.0,13763802.0,14767714.0,15750816.0,16725723.0,17680041.0,18717727.0,19653740.0,20695412.0,21676311.0,23212842.0,23658887.0,24669921.0,25539840.0,26626437.0,27665777.0,28436086.0,29456177.0,30455050.0,31430188.0,33335286.0,33443190.0,34504191.0,35399737.0,36386846.0,37400016.0,38357369.0,39445160.0,41172722.0,41286278.0,42305337.0,43217726.0,44372314.0,45483338.0,46901513.0,47213836.0,48227887.0,49167316.0,50225310.0,51196520.0,52242942.0,53829898.0,54054884.0,55078834.0,57195244.0,56955549.0,58057236.0,59103948.0,60139641.0,61028785.0,62593799.0,63236778.0,63995013.0,64907021.0,65988640.0,67679523.0,67984992.0,68905846.0,70156665.0,71654342.0,71999366.0,73384149.0,74053858.0,75005691.0,76623074.0,77109396.0,78130810.0,78861275.0,79846440.0,80843710.0,82009287.0,82939168.0,83974770.0,84857793.0,86295797.0,87824863.0,87683886.0,88743644.0,90073273.0,90595672.0,92165896.0,92914283.0,94020679.0,94955761.0,95600191.0,96610005.0,97812583.0,98622867.0],"unit":"ns","throughput":[],"typical":{"estimate":14.351510907080067,"lower_bound":14.338235054342922,"upper_bound":14.365697091489812,"unit":"ns"},"mean":{"estimate":14.34665430770861,"lower_bound":14.331875736196906,"upper_bound":14.363097957880262,"unit":"ns"},"median":{"estimate":14.32193752302421,"lower_bound":14.31301892452805,"upper_bound":14.335476204311698,"unit":"ns"},"median_abs_dev":{"estimate":0.04829891024405814,"lower_bound":0.03723275217185147,"upper_bound":0.05887497981366983,"unit":"ns"},"slope":{"estimate":14.351510907080067,"lower_bound":14.338235054342922,"upper_bound":14.365697091489812,"unit":"ns"},"change":{"mean":{"estimate":-0.03254913709305185,"lower_bound":-0.03510457620101103,"upper_bound":-0.030518218102564106,"unit":"%"},"median":{"estimate":-0.03214243164895192,"lower_bound":-0.03322714319149256,"upper_bound":-0.030919982409188473,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/FlexStr/1000","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/FlexStr/1000","iteration_count":[70428,140856,211284,281712,352140,422568,492996,563424,633852,704280,774708,845136,915564,985992,1056420,1126848,1197276,1267704,1338132,1408560,1478988,1549416,1619844,1690272,1760700,1831128,1901556,1971984,2042412,2112840,2183268,2253696,2324124,2394552,2464980,2535408,2605836,2676264,2746692,2817120,2887548,2957976,3028404,3098832,3169260,3239688,3310116,3380544,3450972,3521400,3591828,3662256,3732684,3803112,3873540,3943968,4014396,4084824,4155252,4225680,4296108,4366536,4436964,4507392,4577820,4648248,4718676,4789104,4859532,4929960,5000388,5070816,5141244,5211672,5282100,5352528,5422956,5493384,5563812,5634240,5704668,5775096,5845524,5915952,5986380,6056808,6127236,6197664,6268092,6338520,6408948,6479376,6549804,6620232,6690660,6761088,6831516,6901944,6972372,7042800],"measured_values":[981198.0,1958790.0,2932064.0,3924314.0,4889161.0,5896901.0,6871667.0,7846763.0,8808246.0,9783212.0,10781954.0,11736792.0,12701751.0,13678600.0,14661303.0,15635037.0,16611646.0,17604939.0,18610824.0,19571684.0,20560827.0,21546134.0,22467058.0,23544880.0,24420949.0,25441994.0,26933669.0,27316194.0,28332439.0,29362039.0,30421777.0,31463099.0,32402678.0,33388958.0,34380164.0,35327891.0,36293819.0,37254881.0,38241860.0,39133368.0,40146337.0,41100374.0,42149292.0,43055899.0,44165050.0,45119658.0,46037126.0,46944645.0,47886569.0,48975803.0,49920612.0,50885129.0,51782429.0,52776592.0,54888864.0,54840532.0,55635607.0,56692511.0,57762065.0,58785535.0,59769928.0,61585078.0,61746242.0,62830877.0,63767091.0,64460674.0,65651621.0,66701139.0,67564994.0,68430304.0,69554904.0,70446693.0,71393156.0,72416365.0,73460463.0,75295548.0,75390418.0,76507625.0,77398171.0,78104069.0,79263975.0,80048692.0,81374183.0,82220275.0,83095004.0,83959049.0,85077067.0,86162323.0,87087325.0,88282088.0,89153960.0,89844337.0,91006248.0,91915001.0,92835062.0,94005059.0,94802039.0,96721685.0,96815131.0,98406948.0],"unit":"ns","throughput":[],"typical":{"estimate":13.910437295386995,"lower_bound":13.89897188084991,"upper_bound":13.923694860806735,"unit":"ns"},"mean":{"estimate":13.911735533277668,"lower_bound":13.90241180529155,"upper_bound":13.92269791378377,"unit":"ns"},"median":{"estimate":13.902022900425525,"lower_bound":13.894581595283022,"upper_bound":13.908009870348955,"unit":"ns"},"median_abs_dev":{"estimate":0.03128463688439531,"lower_bound":0.0215011551712335,"upper_bound":0.03702746635660039,"unit":"ns"},"slope":{"estimate":13.910437295386995,"lower_bound":13.89897188084991,"upper_bound":13.923694860806735,"unit":"ns"},"change":{"mean":{"estimate":-0.0264500848898106,"lower_bound":-0.02724931782976677,"upper_bound":-0.025577988369132162,"unit":"%"},"median":{"estimate":-0.027362741996400763,"lower_bound":-0.02806820704369606,"upper_bound":-0.02642446715431801,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/AFlexStr/1000","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/AFlexStr/1000","iteration_count":[69877,139754,209631,279508,349385,419262,489139,559016,628893,698770,768647,838524,908401,978278,1048155,1118032,1187909,1257786,1327663,1397540,1467417,1537294,1607171,1677048,1746925,1816802,1886679,1956556,2026433,2096310,2166187,2236064,2305941,2375818,2445695,2515572,2585449,2655326,2725203,2795080,2864957,2934834,3004711,3074588,3144465,3214342,3284219,3354096,3423973,3493850,3563727,3633604,3703481,3773358,3843235,3913112,3982989,4052866,4122743,4192620,4262497,4332374,4402251,4472128,4542005,4611882,4681759,4751636,4821513,4891390,4961267,5031144,5101021,5170898,5240775,5310652,5380529,5450406,5520283,5590160,5660037,5729914,5799791,5869668,5939545,6009422,6079299,6149176,6219053,6288930,6358807,6428684,6498561,6568438,6638315,6708192,6778069,6847946,6917823,6987700],"measured_values":[992229.0,1983137.0,2961029.0,3954921.0,4943574.0,5951444.0,6951358.0,8674611.0,8887013.0,9868152.0,10848551.0,11831892.0,12870379.0,13809639.0,14749950.0,15729225.0,16719411.0,17728602.0,18716744.0,19750372.0,20670434.0,21616788.0,22611602.0,23588943.0,24555344.0,25526764.0,26543228.0,27542292.0,29464172.0,30498221.0,30406758.0,31432991.0,32439859.0,33401992.0,34438705.0,35404675.0,37216257.0,37538477.0,38495179.0,39391056.0,40418473.0,41293560.0,42357896.0,43462298.0,44393532.0,45293287.0,46312587.0,47236717.0,48245179.0,49155492.0,50219818.0,51109784.0,52077577.0,53277791.0,54090992.0,55156840.0,56251924.0,57204720.0,58127447.0,58996604.0,60007939.0,61046808.0,61938065.0,62911520.0,63871858.0,64929663.0,65924366.0,67557300.0,67817102.0,69139416.0,69830786.0,70922815.0,71920305.0,72937049.0,73907459.0,74637441.0,75769695.0,76655945.0,77771177.0,78760691.0,79804749.0,81616281.0,82434531.0,82640571.0,83685059.0,84654205.0,85700276.0,86792255.0,87534621.0,88473520.0,89498040.0,90745252.0,91906513.0,92663206.0,93706953.0,94413521.0,95403927.0,96521745.0,97371955.0,99093516.0],"unit":"ns","throughput":[],"typical":{"estimate":14.103747710555748,"lower_bound":14.093080383581066,"upper_bound":14.115832604620952,"unit":"ns"},"mean":{"estimate":14.127016819075223,"lower_bound":14.101882136780672,"upper_bound":14.163519916942397,"unit":"ns"},"median":{"estimate":14.092467576781274,"lower_bound":14.083293084038143,"upper_bound":14.099216710816076,"unit":"ns"},"median_abs_dev":{"estimate":0.03413378835195128,"lower_bound":0.023594570761183653,"upper_bound":0.040841456324568544,"unit":"ns"},"slope":{"estimate":14.103747710555748,"lower_bound":14.093080383581066,"upper_bound":14.115832604620952,"unit":"ns"},"change":{"mean":{"estimate":-0.03775811889605907,"lower_bound":-0.03964257977863651,"upper_bound":-0.03506238466459668,"unit":"%"},"median":{"estimate":-0.039044494554783205,"lower_bound":-0.04006536040976749,"upper_bound":-0.038301094685212034,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/CompactStr/1000","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/CompactStr/1000","iteration_count":[65088,130176,195264,260352,325440,390528,455616,520704,585792,650880,715968,781056,846144,911232,976320,1041408,1106496,1171584,1236672,1301760,1366848,1431936,1497024,1562112,1627200,1692288,1757376,1822464,1887552,1952640,2017728,2082816,2147904,2212992,2278080,2343168,2408256,2473344,2538432,2603520,2668608,2733696,2798784,2863872,2928960,2994048,3059136,3124224,3189312,3254400,3319488,3384576,3449664,3514752,3579840,3644928,3710016,3775104,3840192,3905280,3970368,4035456,4100544,4165632,4230720,4295808,4360896,4425984,4491072,4556160,4621248,4686336,4751424,4816512,4881600,4946688,5011776,5076864,5141952,5207040,5272128,5337216,5402304,5467392,5532480,5597568,5662656,5727744,5792832,5857920,5923008,5988096,6053184,6118272,6183360,6248448,6313536,6378624,6443712,6508800],"measured_values":[971330.0,1952619.0,2913720.0,3886231.0,4859786.0,5845012.0,6840076.0,7844238.0,8794479.0,9775378.0,10740334.0,11710271.0,12692562.0,13643694.0,14626847.0,15631509.0,16598431.0,17552107.0,18494563.0,19457096.0,20445328.0,21437949.0,22374212.0,23350942.0,24362809.0,25359807.0,26279009.0,27218237.0,28227900.0,29232404.0,30144029.0,32379324.0,32153806.0,33085412.0,34105003.0,35089697.0,36898695.0,37013591.0,37949716.0,38933609.0,40019316.0,40909252.0,41821378.0,42786577.0,43930544.0,44899179.0,45830644.0,46833012.0,47694975.0,48711079.0,49627876.0,50627020.0,51618076.0,52555642.0,53507525.0,54518070.0,55454714.0,56552873.0,57393717.0,58349977.0,59514154.0,60371907.0,61261483.0,62294910.0,64478137.0,65494280.0,65549045.0,66177755.0,67227914.0,68145543.0,69113846.0,70127969.0,71049142.0,72035421.0,72979840.0,74147051.0,75068226.0,76060125.0,77054268.0,77868570.0,78804875.0,79879770.0,80848514.0,81760302.0,82831401.0,83736896.0,84746810.0,85644169.0,86929323.0,87819239.0,88605177.0,89582199.0,90428461.0,91506583.0,92448638.0,93478950.0,95294419.0,95422431.0,96423056.0,97407091.0],"unit":"ns","throughput":[],"typical":{"estimate":14.97810470555129,"lower_bound":14.966330411072716,"upper_bound":14.99281574935512,"unit":"ns"},"mean":{"estimate":14.983378782298503,"lower_bound":14.96944316275956,"upper_bound":15.00103533315985,"unit":"ns"},"median":{"estimate":14.964124201624777,"lower_bound":14.957699597062845,"upper_bound":14.96923540749291,"unit":"ns"},"median_abs_dev":{"estimate":0.021041455725036205,"lower_bound":0.014377455176179362,"upper_bound":0.028010001281698282,"unit":"ns"},"slope":{"estimate":14.97810470555129,"lower_bound":14.966330411072716,"upper_bound":14.99281574935512,"unit":"ns"},"change":{"mean":{"estimate":-0.021259161772797408,"lower_bound":-0.02533544642467352,"upper_bound":-0.01788744383093785,"unit":"%"},"median":{"estimate":-0.016835551878435218,"lower_bound":-0.01911956567099482,"upper_bound":-0.015221002760058222,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/KString/1000","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/KString/1000","iteration_count":[71967,143934,215901,287868,359835,431802,503769,575736,647703,719670,791637,863604,935571,1007538,1079505,1151472,1223439,1295406,1367373,1439340,1511307,1583274,1655241,1727208,1799175,1871142,1943109,2015076,2087043,2159010,2230977,2302944,2374911,2446878,2518845,2590812,2662779,2734746,2806713,2878680,2950647,3022614,3094581,3166548,3238515,3310482,3382449,3454416,3526383,3598350,3670317,3742284,3814251,3886218,3958185,4030152,4102119,4174086,4246053,4318020,4389987,4461954,4533921,4605888,4677855,4749822,4821789,4893756,4965723,5037690,5109657,5181624,5253591,5325558,5397525,5469492,5541459,5613426,5685393,5757360,5829327,5901294,5973261,6045228,6117195,6189162,6261129,6333096,6405063,6477030,6548997,6620964,6692931,6764898,6836865,6908832,6980799,7052766,7124733,7196700],"measured_values":[971801.0,1929024.0,2884393.0,3846747.0,4844517.0,5795768.0,6818697.0,7801808.0,8730588.0,9659466.0,10702002.0,11654737.0,12621799.0,13484552.0,14513822.0,15499800.0,16393463.0,17446738.0,18370087.0,19426438.0,20764161.0,21388704.0,22411261.0,23365780.0,24208015.0,25101668.0,26185601.0,27122705.0,28132740.0,28926553.0,29961694.0,30915471.0,31953516.0,32962218.0,33858646.0,34877225.0,35851851.0,36861653.0,37710933.0,38779006.0,39763120.0,40661080.0,41507214.0,42489464.0,43482564.0,44667500.0,45481703.0,46412454.0,47365190.0,48395591.0,49297099.0,50342099.0,51234849.0,52259520.0,53139056.0,54121498.0,55225840.0,56284314.0,57077667.0,57904943.0,59095390.0,59889844.0,60768729.0,61807075.0,62922708.0,63641982.0,64722337.0,65818323.0,66761040.0,67595069.0,68649607.0,69673306.0,70662560.0,71597871.0,72507405.0,73885354.0,74142471.0,75286378.0,76396291.0,78007964.0,78239171.0,79288970.0,80293132.0,81173309.0,82178382.0,83318121.0,84172049.0,84999867.0,86133755.0,86919454.0,87919608.0,88836615.0,89805189.0,90805144.0,91854482.0,93719745.0,93846283.0,94868029.0,95820083.0,96886012.0],"unit":"ns","throughput":[],"typical":{"estimate":13.444106264211053,"lower_bound":13.435751280767048,"upper_bound":13.454256371857293,"unit":"ns"},"mean":{"estimate":13.451208451696477,"lower_bound":13.442343991914655,"upper_bound":13.461087580207963,"unit":"ns"},"median":{"estimate":13.443895211619571,"lower_bound":13.435267181339178,"upper_bound":13.44985961602264,"unit":"ns"},"median_abs_dev":{"estimate":0.03045642880894115,"lower_bound":0.022559218131338935,"upper_bound":0.03880327799491709,"unit":"ns"},"slope":{"estimate":13.444106264211053,"lower_bound":13.435751280767048,"upper_bound":13.454256371857293,"unit":"ns"},"change":{"mean":{"estimate":-0.24808349557910847,"lower_bound":-0.24902518329754034,"upper_bound":-0.24721970741570679,"unit":"%"},"median":{"estimate":-0.24764105294066763,"lower_bound":-0.24834734710415407,"upper_bound":-0.24689922747324455,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/SmartString/1000","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/SmartString/1000","iteration_count":[43731,87462,131193,174924,218655,262386,306117,349848,393579,437310,481041,524772,568503,612234,655965,699696,743427,787158,830889,874620,918351,962082,1005813,1049544,1093275,1137006,1180737,1224468,1268199,1311930,1355661,1399392,1443123,1486854,1530585,1574316,1618047,1661778,1705509,1749240,1792971,1836702,1880433,1924164,1967895,2011626,2055357,2099088,2142819,2186550,2230281,2274012,2317743,2361474,2405205,2448936,2492667,2536398,2580129,2623860,2667591,2711322,2755053,2798784,2842515,2886246,2929977,2973708,3017439,3061170,3104901,3148632,3192363,3236094,3279825,3323556,3367287,3411018,3454749,3498480,3542211,3585942,3629673,3673404,3717135,3760866,3804597,3848328,3892059,3935790,3979521,4023252,4066983,4110714,4154445,4198176,4241907,4285638,4329369,4373100],"measured_values":[987060.0,1972987.0,2966229.0,3957156.0,4961448.0,5931586.0,6939675.0,7931474.0,8960963.0,9959846.0,10926237.0,11876256.0,12901629.0,14008615.0,14887560.0,15938641.0,16875665.0,17888274.0,18942391.0,19874896.0,20710851.0,21732345.0,22698545.0,23899359.0,24687002.0,25894910.0,26866311.0,27770883.0,28729440.0,29724224.0,30545679.0,31591121.0,32625799.0,33658616.0,34725587.0,35715272.0,36597222.0,37702887.0,38702961.0,39581655.0,40754468.0,41637781.0,42292831.0,43209758.0,44431933.0,45609744.0,46443844.0,47781438.0,48460103.0,50210008.0,50966280.0,52025507.0,52730863.0,53365735.0,54448155.0,55722458.0,56395434.0,57213404.0,58170997.0,59236426.0,60303807.0,61244770.0,62124717.0,62792662.0,64635212.0,66203132.0,66909490.0,67557948.0,68651660.0,69059783.0,70094173.0,71476049.0,72870130.0,73411516.0,74412281.0,75302238.0,75920678.0,76989032.0,78024665.0,78787749.0,79779688.0,80926150.0,81829531.0,83173798.0,84193018.0,85004806.0,85971707.0,87471809.0,88522038.0,89258574.0,90009656.0,90693771.0,91490462.0,92888568.0,93881780.0,94291918.0,95676740.0,96240648.0,98167168.0,99469946.0],"unit":"ns","throughput":[],"typical":{"estimate":22.62939634841928,"lower_bound":22.603439779958247,"upper_bound":22.656645674913438,"unit":"ns"},"mean":{"estimate":22.652280958004013,"lower_bound":22.632383896845553,"upper_bound":22.673036638546115,"unit":"ns"},"median":{"estimate":22.63989751492324,"lower_bound":22.609659051931125,"upper_bound":22.6758833235734,"unit":"ns"},"median_abs_dev":{"estimate":0.09913470105769903,"lower_bound":0.08052567500923918,"upper_bound":0.12534799843497524,"unit":"ns"},"slope":{"estimate":22.62939634841928,"lower_bound":22.603439779958247,"upper_bound":22.656645674913438,"unit":"ns"},"change":{"mean":{"estimate":-0.006888381754458273,"lower_bound":-0.008105881254361364,"upper_bound":-0.005856707455821478,"unit":"%"},"median":{"estimate":-0.006593581757674549,"lower_bound":-0.0082293927442183,"upper_bound":-0.005006508506890994,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/SmolStr/1000","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/SmolStr/1000","iteration_count":[39224,78448,117672,156896,196120,235344,274568,313792,353016,392240,431464,470688,509912,549136,588360,627584,666808,706032,745256,784480,823704,862928,902152,941376,980600,1019824,1059048,1098272,1137496,1176720,1215944,1255168,1294392,1333616,1372840,1412064,1451288,1490512,1529736,1568960,1608184,1647408,1686632,1725856,1765080,1804304,1843528,1882752,1921976,1961200,2000424,2039648,2078872,2118096,2157320,2196544,2235768,2274992,2314216,2353440,2392664,2431888,2471112,2510336,2549560,2588784,2628008,2667232,2706456,2745680,2784904,2824128,2863352,2902576,2941800,2981024,3020248,3059472,3098696,3137920,3177144,3216368,3255592,3294816,3334040,3373264,3412488,3451712,3490936,3530160,3569384,3608608,3647832,3687056,3726280,3765504,3804728,3843952,3883176,3922400],"measured_values":[995175.0,1983848.0,2968934.0,3974880.0,4985363.0,5991309.0,6966746.0,7933779.0,8932319.0,9956779.0,10899707.0,11977368.0,12925032.0,13900030.0,14881728.0,15791422.0,16833546.0,17879416.0,18910972.0,19860149.0,20954331.0,21951621.0,22805087.0,23615783.0,24592553.0,25790502.0,26655590.0,27433685.0,28534460.0,30468383.0,30671537.0,31671472.0,32639715.0,33792119.0,34574350.0,35590946.0,36597492.0,37586106.0,38516016.0,39581725.0,40620011.0,41555014.0,42493610.0,43307002.0,44311604.0,45713189.0,47116017.0,47690745.0,48350084.0,49622825.0,50590728.0,51676305.0,52611145.0,53549583.0,54395255.0,55273148.0,56066581.0,57235295.0,58135118.0,58884518.0,60257779.0,61542523.0,62500969.0,63710951.0,64597359.0,65507514.0,66798689.0,67620736.0,68237175.0,69519733.0,70598597.0,71011438.0,72073961.0,72855131.0,73759875.0,75448694.0,77013157.0,76904331.0,77811428.0,78956278.0,80247523.0,81286051.0,82236922.0,82907533.0,83803278.0,84742809.0,86200039.0,87322454.0,88245934.0,88976278.0,90534199.0,91294909.0,92117548.0,92824807.0,94153304.0,95026728.0,96073110.0,97093323.0,97624338.0,99639706.0],"unit":"ns","throughput":[],"typical":{"estimate":25.24375716037575,"lower_bound":25.219468124560265,"upper_bound":25.26865505621186,"unit":"ns"},"mean":{"estimate":25.261041405678235,"lower_bound":25.237280897125817,"upper_bound":25.286082130577885,"unit":"ns"},"median":{"estimate":25.26018936280897,"lower_bound":25.230428117988986,"upper_bound":25.28935165744862,"unit":"ns"},"median_abs_dev":{"estimate":0.11219522997953396,"lower_bound":0.07993481878297544,"upper_bound":0.13566776599118216,"unit":"ns"},"slope":{"estimate":25.24375716037575,"lower_bound":25.219468124560265,"upper_bound":25.26865505621186,"unit":"ns"},"change":{"mean":{"estimate":-0.10808813486510749,"lower_bound":-0.10951960088462975,"upper_bound":-0.10657775918085494,"unit":"%"},"median":{"estimate":-0.10697384694184497,"lower_bound":-0.1083927793216386,"upper_bound":-0.10507967889502734,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/String/16384","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/String/16384","iteration_count":[7365,14730,22095,29460,36825,44190,51555,58920,66285,73650,81015,88380,95745,103110,110475,117840,125205,132570,139935,147300,154665,162030,169395,176760,184125,191490,198855,206220,213585,220950,228315,235680,243045,250410,257775,265140,272505,279870,287235,294600,301965,309330,316695,324060,331425,338790,346155,353520,360885,368250,375615,382980,390345,397710,405075,412440,419805,427170,434535,441900,449265,456630,463995,471360,478725,486090,493455,500820,508185,515550,522915,530280,537645,545010,552375,559740,567105,574470,581835,589200,596565,603930,611295,618660,626025,633390,640755,648120,655485,662850,670215,677580,684945,692310,699675,707040,714405,721770,729135,736500],"measured_values":[996638.0,1973558.0,2972200.0,3980660.0,4960195.0,5933760.0,6954854.0,7932465.0,8920046.0,9903348.0,10952566.0,11929006.0,12875077.0,13844324.0,14899994.0,15919374.0,16889051.0,17891620.0,18875774.0,19859868.0,20862077.0,21818037.0,22940384.0,23799189.0,24776441.0,25804108.0,26786117.0,27752187.0,28763532.0,29759700.0,30707866.0,31677893.0,32591644.0,33606086.0,34655263.0,35608289.0,36627358.0,37519349.0,38539550.0,39507945.0,40504242.0,41655823.0,42531633.0,43496390.0,44397145.0,45432748.0,46559571.0,47586738.0,48360062.0,49340800.0,50480860.0,51671084.0,52536082.0,53301653.0,54595483.0,55865479.0,57876609.0,58957796.0,59858152.0,60886650.0,61989709.0,63079293.0,64065350.0,64995854.0,66141333.0,67119867.0,68122666.0,69220636.0,70013648.0,70401492.0,70670582.0,71601465.0,72534313.0,73191827.0,74241887.0,75661265.0,76226777.0,77197716.0,78196036.0,79183828.0,80137203.0,82258652.0,82761675.0,83642994.0,84628421.0,84964317.0,86038823.0,87257160.0,87893424.0,89072669.0,90170418.0,91061566.0,92237924.0,93685465.0,94433353.0,95447534.0,96056798.0,96903331.0,98115818.0,99027214.0],"unit":"ns","throughput":[],"typical":{"estimate":135.17767926715158,"lower_bound":134.90132189111523,"upper_bound":135.48910471105003,"unit":"ns"},"mean":{"estimate":135.07154968074067,"lower_bound":134.84619040864422,"upper_bound":135.31580933132486,"unit":"ns"},"median":{"estimate":134.63621937295562,"lower_bound":134.51912197329713,"upper_bound":134.79016241056974,"unit":"ns"},"median_abs_dev":{"estimate":0.5008519781934678,"lower_bound":0.3800038824051763,"upper_bound":0.6593503411239975,"unit":"ns"},"slope":{"estimate":135.17767926715158,"lower_bound":134.90132189111523,"upper_bound":135.48910471105003,"unit":"ns"},"change":{"mean":{"estimate":-0.030172268735605856,"lower_bound":-0.033140336204833185,"upper_bound":-0.02779592150682224,"unit":"%"},"median":{"estimate":-0.03184107799316627,"lower_bound":-0.032763223291134236,"upper_bound":-0.031046468872531843,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/Rc/16384","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/Rc_str_/16384","iteration_count":[7295,14590,21885,29180,36475,43770,51065,58360,65655,72950,80245,87540,94835,102130,109425,116720,124015,131310,138605,145900,153195,160490,167785,175080,182375,189670,196965,204260,211555,218850,226145,233440,240735,248030,255325,262620,269915,277210,284505,291800,299095,306390,313685,320980,328275,335570,342865,350160,357455,364750,372045,379340,386635,393930,401225,408520,415815,423110,430405,437700,444995,452290,459585,466880,474175,481470,488765,496060,503355,510650,517945,525240,532535,539830,547125,554420,561715,569010,576305,583600,590895,598190,605485,612780,620075,627370,634665,641960,649255,656550,663845,671140,678435,685730,693025,700320,707615,714910,722205,729500],"measured_values":[987922.0,1980812.0,2962171.0,3920105.0,5039416.0,5940201.0,7041367.0,7907809.0,9008494.0,9865036.0,10929512.0,11909990.0,12781670.0,13893046.0,14878803.0,15830475.0,16763492.0,17828490.0,18818655.0,19777883.0,20809016.0,21755579.0,22796851.0,23959903.0,24782632.0,25755925.0,26615694.0,27842899.0,28724568.0,29629563.0,30514139.0,31776440.0,32624826.0,33623429.0,34628822.0,35483441.0,36612731.0,37552310.0,38480338.0,39833591.0,40413721.0,41500729.0,42470144.0,43512570.0,44460975.0,45731463.0,46764509.0,47473492.0,48577003.0,49594951.0,50601357.0,51378018.0,52424790.0,53368909.0,54304923.0,55379878.0,56280825.0,57151334.0,58191644.0,59593930.0,60257017.0,61281106.0,62504794.0,63584319.0,64448025.0,65269080.0,66404240.0,67492692.0,68217975.0,69262804.0,70261777.0,71131134.0,72221138.0,73145379.0,74382893.0,75203607.0,76146303.0,77270744.0,78414900.0,78919987.0,80195022.0,81119223.0,81938214.0,82716478.0,83636831.0,84641093.0,85722122.0,86557603.0,87723472.0,88686777.0,89876059.0,91113994.0,92385413.0,93180027.0,94028615.0,94991349.0,96008494.0,96886768.0,97959931.0,98812456.0],"unit":"ns","throughput":[],"typical":{"estimate":135.55656855037645,"lower_bound":135.46517234397757,"upper_bound":135.64885554809462,"unit":"ns"},"mean":{"estimate":135.664143725643,"lower_bound":135.5617512496181,"upper_bound":135.77612991947666,"unit":"ns"},"median":{"estimate":135.6001232491601,"lower_bound":135.52656673719343,"upper_bound":135.66197155634765,"unit":"ns"},"median_abs_dev":{"estimate":0.36913285720639255,"lower_bound":0.26090955417254846,"upper_bound":0.4896799020797181,"unit":"ns"},"slope":{"estimate":135.55656855037645,"lower_bound":135.46517234397757,"upper_bound":135.64885554809462,"unit":"ns"},"change":{"mean":{"estimate":-0.0019039463575257765,"lower_bound":-0.002790031188671982,"upper_bound":-0.0008013776940670354,"unit":"%"},"median":{"estimate":-0.0022168756630956965,"lower_bound":-0.0030361628931704354,"upper_bound":-0.00154661977793491,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/Arc/16384","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/Arc_str_/16384","iteration_count":[5163,10326,15489,20652,25815,30978,36141,41304,46467,51630,56793,61956,67119,72282,77445,82608,87771,92934,98097,103260,108423,113586,118749,123912,129075,134238,139401,144564,149727,154890,160053,165216,170379,175542,180705,185868,191031,196194,201357,206520,211683,216846,222009,227172,232335,237498,242661,247824,252987,258150,263313,268476,273639,278802,283965,289128,294291,299454,304617,309780,314943,320106,325269,330432,335595,340758,345921,351084,356247,361410,366573,371736,376899,382062,387225,392388,397551,402714,407877,413040,418203,423366,428529,433692,438855,444018,449181,454344,459507,464670,469833,474996,480159,485322,490485,495648,500811,505974,511137,516300],"measured_values":[994483.0,1979439.0,2983120.0,3983846.0,4970695.0,5937828.0,6935396.0,7878955.0,8898825.0,9863764.0,10860261.0,11902184.0,12849038.0,13785081.0,14837825.0,15776663.0,16849445.0,17751054.0,18781395.0,19840851.0,20735818.0,21726473.0,22725626.0,23686145.0,24710115.0,25652299.0,26799573.0,27717651.0,28742172.0,29625414.0,30679432.0,31662854.0,32661205.0,33545811.0,37441600.0,36266304.0,37373150.0,38331966.0,50419863.0,40224310.0,41293847.0,42281969.0,43348378.0,44120491.0,45006990.0,46020059.0,46996048.0,47973739.0,48721035.0,49671494.0,50762662.0,51847287.0,52833064.0,53773315.0,54821400.0,55920341.0,56825586.0,57673523.0,58633230.0,59770494.0,60662414.0,61635406.0,62626443.0,63763768.0,64702566.0,65614474.0,66542211.0,67735621.0,68788165.0,69608118.0,71008130.0,71673059.0,72518431.0,73469302.0,74597759.0,75470362.0,76395124.0,77681260.0,78422744.0,79433088.0,80554683.0,81743604.0,82834771.0,83772608.0,84795324.0,85484099.0,86475457.0,87220528.0,88313298.0,89415286.0,90036041.0,91386299.0,92607932.0,93665366.0,94522470.0,95720929.0,96257997.0,97568899.0,98275799.0,99350414.0],"unit":"ns","throughput":[],"typical":{"estimate":193.02991030545203,"lower_bound":192.65238328252224,"upper_bound":193.6963525389452,"unit":"ns"},"mean":{"estimate":193.2734743931279,"lower_bound":192.45194194347678,"upper_bound":194.63959289295568,"unit":"ns"},"median":{"estimate":192.54212429037642,"lower_bound":192.3624498079041,"upper_bound":192.632169927045,"unit":"ns"},"median_abs_dev":{"estimate":0.832226142348034,"lower_bound":0.5902049652228761,"upper_bound":1.1303348888432259,"unit":"ns"},"slope":{"estimate":193.02991030545203,"lower_bound":192.65238328252224,"upper_bound":193.6963525389452,"unit":"ns"},"change":{"mean":{"estimate":-0.10820265797892259,"lower_bound":-0.11951396245123502,"upper_bound":-0.09774856262218878,"unit":"%"},"median":{"estimate":-0.09937453623457859,"lower_bound":-0.10060000600266084,"upper_bound":-0.09754124801718334,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/FlexStr/16384","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/FlexStr/16384","iteration_count":[7073,14146,21219,28292,35365,42438,49511,56584,63657,70730,77803,84876,91949,99022,106095,113168,120241,127314,134387,141460,148533,155606,162679,169752,176825,183898,190971,198044,205117,212190,219263,226336,233409,240482,247555,254628,261701,268774,275847,282920,289993,297066,304139,311212,318285,325358,332431,339504,346577,353650,360723,367796,374869,381942,389015,396088,403161,410234,417307,424380,431453,438526,445599,452672,459745,466818,473891,480964,488037,495110,502183,509256,516329,523402,530475,537548,544621,551694,558767,565840,572913,579986,587059,594132,601205,608278,615351,622424,629497,636570,643643,650716,657789,664862,671935,679008,686081,693154,700227,707300],"measured_values":[990817.0,1991542.0,2970387.0,3951054.0,4948563.0,5936465.0,6925568.0,7886528.0,8906811.0,9856169.0,10863758.0,11899720.0,12774777.0,13750675.0,14723929.0,15703465.0,16744597.0,17700727.0,18734246.0,19620153.0,20718434.0,21678302.0,22659821.0,23583861.0,24585278.0,25534135.0,26482873.0,27528743.0,28506255.0,29505177.0,30503788.0,31542586.0,32398016.0,33462703.0,34393066.0,35601223.0,36521697.0,37453923.0,38442276.0,39416119.0,40376328.0,41268668.0,42248724.0,43341415.0,44237612.0,45369086.0,46356766.0,47398369.0,48254150.0,49322083.0,50242135.0,51163320.0,52197960.0,53472554.0,54209972.0,55041566.0,56262048.0,57064027.0,58069792.0,59141051.0,60082444.0,60874875.0,62081652.0,63137170.0,64069376.0,65177776.0,66002288.0,66838751.0,67764024.0,68771132.0,69886735.0,70721857.0,72014465.0,73098448.0,74391587.0,74849515.0,75944520.0,77077885.0,77600155.0,78751175.0,79916593.0,80758446.0,81675073.0,82795306.0,83553731.0,84453826.0,85683326.0,87002184.0,87704925.0,89015337.0,89805073.0,90684298.0,91852210.0,92574228.0,93617483.0,94348357.0,95365154.0,96872880.0,97136319.0,98624227.0],"unit":"ns","throughput":[],"typical":{"estimate":139.29466353450414,"lower_bound":139.20964276941797,"upper_bound":139.3805902600832,"unit":"ns"},"mean":{"estimate":139.31310496225012,"lower_bound":139.23930539801918,"upper_bound":139.38944499436425,"unit":"ns"},"median":{"estimate":139.2866895699446,"lower_bound":139.23727748328588,"upper_bound":139.35519314560742,"unit":"ns"},"median_abs_dev":{"estimate":0.3856637509322423,"lower_bound":0.25803202050994184,"upper_bound":0.48212562254719815,"unit":"ns"},"slope":{"estimate":139.29466353450414,"lower_bound":139.20964276941797,"upper_bound":139.3805902600832,"unit":"ns"},"change":{"mean":{"estimate":-0.014199890535909088,"lower_bound":-0.028376534947828626,"upper_bound":-0.0016761006776230163,"unit":"%"},"median":{"estimate":0.009926892917731855,"lower_bound":0.008855351285756319,"upper_bound":0.0123694343685296,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/AFlexStr/16384","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/AFlexStr/16384","iteration_count":[5099,10198,15297,20396,25495,30594,35693,40792,45891,50990,56089,61188,66287,71386,76485,81584,86683,91782,96881,101980,107079,112178,117277,122376,127475,132574,137673,142772,147871,152970,158069,163168,168267,173366,178465,183564,188663,193762,198861,203960,209059,214158,219257,224356,229455,234554,239653,244752,249851,254950,260049,265148,270247,275346,280445,285544,290643,295742,300841,305940,311039,316138,321237,326336,331435,336534,341633,346732,351831,356930,362029,367128,372227,377326,382425,387524,392623,397722,402821,407920,413019,418118,423217,428316,433415,438514,443613,448712,453811,458910,464009,469108,474207,479306,484405,489504,494603,499702,504801,509900],"measured_values":[994233.0,1969901.0,2950699.0,3944251.0,5031390.0,5945863.0,6942941.0,7989132.0,8958609.0,9996445.0,10954589.0,11805250.0,12876159.0,13950574.0,14964394.0,15884428.0,16861067.0,17857244.0,18758521.0,19802428.0,20789308.0,21780986.0,22818922.0,23685653.0,24689666.0,25656266.0,26738635.0,27764730.0,28640799.0,29713061.0,30775893.0,31714231.0,32597173.0,33568253.0,34659289.0,35491125.0,36530193.0,37573259.0,38519220.0,39454161.0,40563573.0,41766881.0,42475383.0,43556021.0,44589468.0,45427255.0,46508052.0,47288771.0,48513461.0,49589118.0,50477200.0,51311390.0,52600121.0,53592250.0,54338845.0,55252555.0,56346427.0,57243105.0,58327049.0,59126773.0,60263426.0,61193418.0,62354507.0,63686701.0,64328817.0,65150413.0,66229957.0,67333117.0,68117473.0,69174945.0,70309074.0,71252280.0,72165310.0,73070213.0,74051282.0,74993497.0,76109301.0,77169769.0,78115430.0,78773306.0,80337980.0,80999252.0,82653747.0,83184701.0,84281499.0,84807726.0,85880648.0,86823955.0,87866841.0,89050963.0,89694362.0,90625646.0,91723005.0,92467054.0,93890439.0,94828526.0,95898233.0,96685975.0,97633069.0,98826710.0],"unit":"ns","throughput":[],"typical":{"estimate":193.8185376050433,"lower_bound":193.70392425862443,"upper_bound":193.94489025738972,"unit":"ns"},"mean":{"estimate":194.04367308129622,"lower_bound":193.90908105233086,"upper_bound":194.18804542909493,"unit":"ns"},"median":{"estimate":193.87722506946622,"lower_bound":193.72418212417392,"upper_bound":194.09335356029055,"unit":"ns"},"median_abs_dev":{"estimate":0.5021377813104172,"lower_bound":0.42172743644551736,"upper_bound":0.68760367620965,"unit":"ns"},"slope":{"estimate":193.8185376050433,"lower_bound":193.70392425862443,"upper_bound":193.94489025738972,"unit":"ns"},"change":{"mean":{"estimate":0.02624513902056158,"lower_bound":0.025325647831437727,"upper_bound":0.027199294289159452,"unit":"%"},"median":{"estimate":0.025835779783314194,"lower_bound":0.024892166444237612,"upper_bound":0.027048885759798358,"unit":"%"},"change":"Regressed"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/CompactStr/16384","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/CompactStr/16384","iteration_count":[5243,10486,15729,20972,26215,31458,36701,41944,47187,52430,57673,62916,68159,73402,78645,83888,89131,94374,99617,104860,110103,115346,120589,125832,131075,136318,141561,146804,152047,157290,162533,167776,173019,178262,183505,188748,193991,199234,204477,209720,214963,220206,225449,230692,235935,241178,246421,251664,256907,262150,267393,272636,277879,283122,288365,293608,298851,304094,309337,314580,319823,325066,330309,335552,340795,346038,351281,356524,361767,367010,372253,377496,382739,387982,393225,398468,403711,408954,414197,419440,424683,429926,435169,440412,445655,450898,456141,461384,466627,471870,477113,482356,487599,492842,498085,503328,508571,513814,519057,524300],"measured_values":[994724.0,1993586.0,2977700.0,3985920.0,4968822.0,5951904.0,6944423.0,7922375.0,8927660.0,9860707.0,10868807.0,11908276.0,12847625.0,13860203.0,14805383.0,15839933.0,16860025.0,17850571.0,18781445.0,19785977.0,20723242.0,21789933.0,22703523.0,23687487.0,24693372.0,25662548.0,26644648.0,27657447.0,28575004.0,29671421.0,30617052.0,31679445.0,32641817.0,33709139.0,34522579.0,35541670.0,36611496.0,37518946.0,38903227.0,39927427.0,40762799.0,41765899.0,42536969.0,43551842.0,44621168.0,45584031.0,46511168.0,47410501.0,48473474.0,49465162.0,50321885.0,51314084.0,52505020.0,53331065.0,54486724.0,55312979.0,56273628.0,57265918.0,62834086.0,67666157.0,60767871.0,68112113.0,62597867.0,63363137.0,64072030.0,65142317.0,66393287.0,67198672.0,68201832.0,69162121.0,70285579.0,71114619.0,72073836.0,73418373.0,74042786.0,75042459.0,75999561.0,77030143.0,77971286.0,78908402.0,80195419.0,80828558.0,81979940.0,83095191.0,84117448.0,85178136.0,86172780.0,86876102.0,87711315.0,89066802.0,89663352.0,91010714.0,91983547.0,92810434.0,93768989.0,94929777.0,95813241.0,96895781.0,97836564.0,98602664.0],"unit":"ns","throughput":[],"typical":{"estimate":189.21047655989264,"lower_bound":188.5417731602293,"upper_bound":190.12331027977453,"unit":"ns"},"mean":{"estimate":189.31257027424442,"lower_bound":188.69695672243174,"upper_bound":190.1239859775316,"unit":"ns"},"median":{"estimate":188.6436929731193,"lower_bound":188.42640930021724,"upper_bound":188.74677077034832,"unit":"ns"},"median_abs_dev":{"estimate":0.49999665934156357,"lower_bound":0.34085740403635145,"upper_bound":0.6253278494397981,"unit":"ns"},"slope":{"estimate":189.21047655989264,"lower_bound":188.5417731602293,"upper_bound":190.12331027977453,"unit":"ns"},"change":{"mean":{"estimate":0.009031158466700884,"lower_bound":0.005900024804954723,"upper_bound":0.013231202811446336,"unit":"%"},"median":{"estimate":0.005652232479688157,"lower_bound":0.004388301034120579,"upper_bound":0.006336549637285582,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/KString/16384","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/KString/16384","iteration_count":[7330,14660,21990,29320,36650,43980,51310,58640,65970,73300,80630,87960,95290,102620,109950,117280,124610,131940,139270,146600,153930,161260,168590,175920,183250,190580,197910,205240,212570,219900,227230,234560,241890,249220,256550,263880,271210,278540,285870,293200,300530,307860,315190,322520,329850,337180,344510,351840,359170,366500,373830,381160,388490,395820,403150,410480,417810,425140,432470,439800,447130,454460,461790,469120,476450,483780,491110,498440,505770,513100,520430,527760,535090,542420,549750,557080,564410,571740,579070,586400,593730,601060,608390,615720,623050,630380,637710,645040,652370,659700,667030,674360,681690,689020,696350,703680,711010,718340,725670,733000],"measured_values":[995195.0,1992594.0,2978913.0,3940524.0,4956668.0,5962314.0,6950274.0,7943316.0,8902222.0,9861930.0,10880218.0,11868721.0,12830051.0,13803526.0,14817335.0,15809636.0,16817865.0,17885817.0,18857358.0,19885836.0,20747147.0,21690414.0,22723892.0,23664372.0,24720503.0,25684709.0,26738425.0,27638120.0,28709298.0,29734891.0,30793507.0,31594142.0,32765342.0,33654254.0,34657465.0,35695762.0,36675086.0,37583557.0,38714961.0,39874816.0,40724296.0,41707127.0,42562798.0,43495154.0,44418423.0,45539797.0,46436425.0,47444084.0,48432937.0,49570591.0,50306275.0,51479166.0,52303327.0,53426706.0,54323494.0,55468252.0,56302012.0,57597195.0,58560470.0,59415729.0,60293252.0,61372866.0,62369724.0,63181992.0,64207165.0,65292461.0,66428392.0,67219150.0,68183006.0,69282327.0,70298894.0,71249865.0,72674533.0,73185581.0,74215501.0,75404975.0,76189140.0,77012339.0,78104408.0,79300452.0,80030305.0,81133876.0,82171891.0,83122392.0,84216003.0,85190559.0,86243964.0,87009104.0,88105370.0,88973164.0,90060844.0,91261779.0,91922871.0,93057841.0,93970419.0,95308033.0,96356038.0,97259559.0,99113029.0,100414134.0],"unit":"ns","throughput":[],"typical":{"estimate":135.1696659359854,"lower_bound":135.03772874630678,"upper_bound":135.3290442605023,"unit":"ns"},"mean":{"estimate":135.09724439819936,"lower_bound":135.02101928680742,"upper_bound":135.17981076145963,"unit":"ns"},"median":{"estimate":135.03264178522704,"lower_bound":134.95555809916414,"upper_bound":135.06963756161343,"unit":"ns"},"median_abs_dev":{"estimate":0.3346499243055109,"lower_bound":0.23758211182413472,"upper_bound":0.4249706713169705,"unit":"ns"},"slope":{"estimate":135.1696659359854,"lower_bound":135.03772874630678,"upper_bound":135.3290442605023,"unit":"ns"},"change":{"mean":{"estimate":-0.05453414375891219,"lower_bound":-0.05535470787738127,"upper_bound":-0.05370738677125038,"unit":"%"},"median":{"estimate":-0.054272949261978454,"lower_bound":-0.054971692947247686,"upper_bound":-0.0535974478322325,"unit":"%"},"change":"Improved"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/SmartString/16384","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/SmartString/16384","iteration_count":[5057,10114,15171,20228,25285,30342,35399,40456,45513,50570,55627,60684,65741,70798,75855,80912,85969,91026,96083,101140,106197,111254,116311,121368,126425,131482,136539,141596,146653,151710,156767,161824,166881,171938,176995,182052,187109,192166,197223,202280,207337,212394,217451,222508,227565,232622,237679,242736,247793,252850,257907,262964,268021,273078,278135,283192,288249,293306,298363,303420,308477,313534,318591,323648,328705,333762,338819,343876,348933,353990,359047,364104,369161,374218,379275,384332,389389,394446,399503,404560,409617,414674,419731,424788,429845,434902,439959,445016,450073,455130,460187,465244,470301,475358,480415,485472,490529,495586,500643,505700],"measured_values":[996197.0,1978858.0,2978171.0,3971072.0,4964453.0,5959879.0,6941849.0,7942263.0,8935705.0,9920751.0,10909774.0,11880623.0,12825313.0,13795660.0,14790965.0,15901559.0,16749235.0,17766933.0,18798586.0,19708971.0,20664159.0,21696656.0,22668206.0,23685222.0,24719762.0,25637149.0,26702457.0,27615466.0,28642491.0,29567474.0,30552119.0,31603590.0,32642839.0,33632082.0,34647986.0,35562398.0,36578463.0,37667806.0,38925579.0,39699605.0,40476456.0,41371912.0,42395541.0,43674524.0,44417501.0,45508568.0,46410886.0,47667106.0,48513659.0,49307362.0,50622483.0,51350062.0,52295502.0,53311187.0,54264722.0,55394813.0,56408844.0,57222284.0,58229653.0,59421239.0,60181559.0,61076866.0,62199061.0,63123622.0,64214617.0,65163075.0,66025279.0,67499840.0,68653065.0,69547439.0,70241003.0,71364711.0,72294953.0,73238100.0,74604768.0,75352234.0,75991956.0,76988212.0,78035426.0,78713079.0,79856195.0,81056288.0,82084195.0,83023143.0,84131302.0,84990460.0,86432120.0,87116797.0,87719698.0,88877861.0,89814997.0,90581078.0,91745484.0,92794160.0,93638088.0,94856686.0,95898730.0,96648732.0,97946138.0,98836776.0],"unit":"ns","throughput":[],"typical":{"estimate":195.44412787703263,"lower_bound":195.32335971780415,"upper_bound":195.57361307187654,"unit":"ns"},"mean":{"estimate":195.52723363012177,"lower_bound":195.41650753424312,"upper_bound":195.6420694049704,"unit":"ns"},"median":{"estimate":195.40751848500736,"lower_bound":195.23814874071942,"upper_bound":195.60548534584524,"unit":"ns"},"median_abs_dev":{"estimate":0.5490227069080204,"lower_bound":0.4186166743562622,"upper_bound":0.7513899343952848,"unit":"ns"},"slope":{"estimate":195.44412787703263,"lower_bound":195.32335971780415,"upper_bound":195.57361307187654,"unit":"ns"},"change":{"mean":{"estimate":0.002232704116504891,"lower_bound":0.001526663843095083,"upper_bound":0.0029232912943888464,"unit":"%"},"median":{"estimate":0.001650141432474772,"lower_bound":0.0007794687410045409,"upper_bound":0.0026054787961424797,"unit":"%"},"change":"NoChange"}} {"reason":"benchmark-complete","id":"Create and Destroy - Computed/SmolStr/16384","report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed/SmolStr/16384","iteration_count":[4911,9822,14733,19644,24555,29466,34377,39288,44199,49110,54021,58932,63843,68754,73665,78576,83487,88398,93309,98220,103131,108042,112953,117864,122775,127686,132597,137508,142419,147330,152241,157152,162063,166974,171885,176796,181707,186618,191529,196440,201351,206262,211173,216084,220995,225906,230817,235728,240639,245550,250461,255372,260283,265194,270105,275016,279927,284838,289749,294660,299571,304482,309393,314304,319215,324126,329037,333948,338859,343770,348681,353592,358503,363414,368325,373236,378147,383058,387969,392880,397791,402702,407613,412524,417435,422346,427257,432168,437079,441990,446901,451812,456723,461634,466545,471456,476367,481278,486189,491100],"measured_values":[986278.0,1972456.0,2957121.0,3945413.0,4922444.0,5930353.0,6910008.0,7883833.0,8878617.0,9841731.0,10837517.0,11777548.0,12764177.0,13662337.0,14697007.0,15669649.0,16663894.0,17696588.0,18687746.0,19580517.0,20610719.0,21559345.0,22454180.0,23521612.0,24408882.0,25444475.0,26369767.0,27352087.0,28507044.0,29445172.0,30290733.0,31422708.0,32378327.0,33268994.0,34168938.0,35261948.0,36305486.0,37292966.0,38308910.0,39124154.0,40227815.0,41142748.0,42199068.0,43083824.0,44155915.0,45138657.0,46051805.0,47099971.0,48326304.0,49000851.0,49957634.0,50812153.0,51961439.0,52941135.0,53942171.0,54988302.0,55776556.0,56894422.0,57867757.0,59120088.0,59782733.0,61179348.0,61806577.0,62851927.0,63599001.0,64658598.0,65805141.0,66558477.0,67443343.0,68741752.0,69761764.0,70699390.0,71323723.0,72584972.0,73665118.0,74341799.0,75631442.0,76484759.0,77336841.0,78377364.0,79262550.0,80346833.0,81316580.0,82431531.0,83395598.0,84350336.0,85528237.0,86301632.0,87296356.0,88340994.0,89319207.0,90497369.0,91056027.0,92245289.0,93314053.0,94308717.0,95053468.0,96405118.0,97228088.0,98522930.0],"unit":"ns","throughput":[],"typical":{"estimate":199.76618616998053,"lower_bound":199.66454621579155,"upper_bound":199.86833663714106,"unit":"ns"},"mean":{"estimate":199.79061400843605,"lower_bound":199.68473203862808,"upper_bound":199.8993105625165,"unit":"ns"},"median":{"estimate":199.78477973888874,"lower_bound":199.6645156862478,"upper_bound":199.84076641742394,"unit":"ns"},"median_abs_dev":{"estimate":0.42902491641801577,"lower_bound":0.33034947119036373,"upper_bound":0.5796949156012581,"unit":"ns"},"slope":{"estimate":199.76618616998053,"lower_bound":199.66454621579155,"upper_bound":199.86833663714106,"unit":"ns"},"change":{"mean":{"estimate":-0.03157420638672437,"lower_bound":-0.03228577708937922,"upper_bound":-0.030892083125689827,"unit":"%"},"median":{"estimate":-0.03123688003669456,"lower_bound":-0.0320674067711212,"upper_bound":-0.03090397631704833,"unit":"%"},"change":"Improved"}} {"reason":"group-complete","group_name":"Create and Destroy - Computed","benchmarks":["Create and Destroy - Computed/String/0","Create and Destroy - Computed/Rc/0","Create and Destroy - Computed/Arc/0","Create and Destroy - Computed/FlexStr/0","Create and Destroy - Computed/AFlexStr/0","Create and Destroy - Computed/CompactStr/0","Create and Destroy - Computed/KString/0","Create and Destroy - Computed/SmartString/0","Create and Destroy - Computed/SmolStr/0","Create and Destroy - Computed/String/10","Create and Destroy - Computed/Rc/10","Create and Destroy - Computed/Arc/10","Create and Destroy - Computed/FlexStr/10","Create and Destroy - Computed/AFlexStr/10","Create and Destroy - Computed/CompactStr/10","Create and Destroy - Computed/KString/10","Create and Destroy - Computed/SmartString/10","Create and Destroy - Computed/SmolStr/10","Create and Destroy - Computed/String/20","Create and Destroy - Computed/Rc/20","Create and Destroy - Computed/Arc/20","Create and Destroy - Computed/FlexStr/20","Create and Destroy - Computed/AFlexStr/20","Create and Destroy - Computed/CompactStr/20","Create and Destroy - Computed/KString/20","Create and Destroy - Computed/SmartString/20","Create and Destroy - Computed/SmolStr/20","Create and Destroy - Computed/String/100","Create and Destroy - Computed/Rc/100","Create and Destroy - Computed/Arc/100","Create and Destroy - Computed/FlexStr/100","Create and Destroy - Computed/AFlexStr/100","Create and Destroy - Computed/CompactStr/100","Create and Destroy - Computed/KString/100","Create and Destroy - Computed/SmartString/100","Create and Destroy - Computed/SmolStr/100","Create and Destroy - Computed/String/1000","Create and Destroy - Computed/Rc/1000","Create and Destroy - Computed/Arc/1000","Create and Destroy - Computed/FlexStr/1000","Create and Destroy - Computed/AFlexStr/1000","Create and Destroy - Computed/CompactStr/1000","Create and Destroy - Computed/KString/1000","Create and Destroy - Computed/SmartString/1000","Create and Destroy - Computed/SmolStr/1000","Create and Destroy - Computed/String/16384","Create and Destroy - Computed/Rc/16384","Create and Destroy - Computed/Arc/16384","Create and Destroy - Computed/FlexStr/16384","Create and Destroy - Computed/AFlexStr/16384","Create and Destroy - Computed/CompactStr/16384","Create and Destroy - Computed/KString/16384","Create and Destroy - Computed/SmartString/16384","Create and Destroy - Computed/SmolStr/16384"],"report_directory":"/home/scott/IdeaProjects/flexstr/benchmarks/target/criterion/reports/Create and Destroy - Computed"} ================================================ FILE: benchmarks/benches/clone.rs ================================================ use std::hint::black_box; use std::rc::Rc; use std::sync::Arc; use criterion::{BatchSize, BenchmarkId, Criterion, criterion_group, criterion_main}; const ITERATIONS: usize = 10_000; macro_rules! clone { ($($name:expr, $setup:expr),+) => { fn clone(c: &mut Criterion) { let mut group = c.benchmark_group("Clone"); let lengths = vec![0usize, 10, 20, 100, 500]; for len in lengths { $( let id = BenchmarkId::new($name, len); group.bench_function(id, |b| { b.iter_batched(|| $setup(len), |s| { for _ in 0..ITERATIONS { let s2 = s.clone(); black_box(&s); black_box(&s2); } }, BatchSize::SmallInput) }); )+ } group.finish(); } }; } clone!( "String", |len| "x".repeat(len), "Rc", |len| -> Rc { "x".repeat(len).into() }, "Arc", |len| -> Arc { "x".repeat(len).into() }, "FlexStr 0.9 (LocalStr)", |len| -> flexstr09::LocalStr { "x".repeat(len).into() }, "FlexStr 0.9 (SharedStr)", |len| -> flexstr09::SharedStr { "x".repeat(len).into() }, "InlineFlexStr 0.1 (InlineStr)", |len| -> inline_flexstr::InlineStr { let len = std::cmp::min(len, inline_flexstr::INLINE_CAPACITY); "x".repeat(len).as_str().try_into().unwrap() }, "FlexStr 0.10 (LocalStr - Boxed)", |len| -> flexstr::LocalStr { "x".repeat(len).into() }, "FlexStr 0.10 (SharedStr - Boxed)", |len| -> flexstr::SharedStr { "x".repeat(len).into() }, "FlexStr 0.10 (LocalStr - Optimized)", |len| { let s: flexstr::LocalStr = "x".repeat(len).into(); s.optimize() }, "FlexStr 0.10 (SharedStr - Optimized)", |len| { let s: flexstr::SharedStr = "x".repeat(len).into(); s.optimize() } ); criterion_group!(benches, clone); criterion_main!(benches); ================================================ FILE: benchmarks/benches/import.rs ================================================ use std::borrow::Cow; use std::hint::black_box; use std::rc::Rc; use std::sync::Arc; use criterion::{BatchSize, BenchmarkId, Criterion, criterion_group, criterion_main}; macro_rules! import { ($func:ident, $group:expr,$($name:expr, $op:expr),+) => { fn $func(c: &mut Criterion) { let mut group = c.benchmark_group($group); let strings: Vec = vec![0usize, 10, 20, 100, 500] .into_iter() .map(|n| String::from("x").repeat(n)) .collect(); for string in strings { let len = string.len(); $( let id = BenchmarkId::new($name, len); group.bench_function(id, |b| b.iter_batched(|| string.clone(), |s| { let s = $op(s); black_box(&s); }, BatchSize::SmallInput) ); )+ } group.finish(); } }; } import!( import_owned_and_destroy, "Import as owned and destroy", "Rc", |s: String| -> Rc { s.into() }, "Arc", |s: String| -> Arc { s.into() }, "Cow<'_, str>", |s: String| -> Cow<'_, str> { s.into() }, "FlexStr 0.9 (SharedStr)", |s: String| -> flexstr09::SharedStr { s.into() }, "FlexStr 0.9 (LocalStr)", |s: String| -> flexstr09::LocalStr { s.into() }, "InlineFlexStr 0.1 (InlineStr)", |s: String| -> Result, _> { s.as_str().try_into() }, "FlexStr 0.10 (SharedStr - As is)", |s: String| -> flexstr::SharedStr { s.into() }, "FlexStr 0.10 (LocalStr - As is)", |s: String| -> flexstr::LocalStr { s.into() }, "FlexStr 0.10 (SharedStr - Optimized)", |s: String| { let s: flexstr::SharedStr = s.into(); s.optimize() }, "FlexStr 0.10 (LocalStr - Optimized)", |s: String| { let s: flexstr::LocalStr = s.into(); s.optimize() } ); import!( import_borrowed_own_and_destroy, "Import as borrowed, own and destroy", "Cow<'_, str>", |s: String| { let s: Cow<'_, str> = s.as_str().into(); s.into_owned() }, "FlexStr 0.10 (SharedStr)", |s: String| { let s: flexstr::SharedStr = s.as_str().into(); s.into_owned() }, "FlexStr 0.10 (LocalStr)", |s: String| { let s: flexstr::LocalStr = s.as_str().into(); s.into_owned() } ); criterion_group!( benches, import_owned_and_destroy, import_borrowed_own_and_destroy ); criterion_main!(benches); ================================================ FILE: benchmarks/criterion.toml ================================================ criterion_home = "../docs/criterion" ================================================ FILE: benchmarks/src/lib.rs ================================================ ================================================ FILE: boxed_flexstr/Cargo.toml ================================================ [package] name = "boxed_flexstr" version = "0.1.0" authors = ["Scott Meeuwsen "] license = "MIT OR Apache-2.0" description = "A simple to use, compact, mutable boxed string type for Rust" repository = "https://github.com/nu11ptr/flexstr/boxed_flexstr" documentation = "https://docs.rs/boxed_flexstr" keywords = ["string", "boxed"] categories = [ "data-structures", "memory-management", "no-std", "text-processing", ] readme = "README.md" edition = "2024" [features] default = ["std", "str"] large_strings = [] sqlx_pg_arrays = ["sqlx", "sqlx/postgres"] # Does not use and forbids all unsafe code (unless windows_min_unsafe is also enabled, but that only impacts Windows) safe = ["flexstr_support/safe"] std = ["flexstr_support/std", "serde?/std"] # Uses the minimum unsafe code possible to support OsStr/Path on Windows. Doesn't impact any other string types or operating systems. win_min_unsafe = ["flexstr_support/win_min_unsafe", "safe"] # String type features bytes = ["flexstr_support/bytes"] cstr = ["flexstr_support/cstr"] osstr = ["flexstr_support/osstr", "std"] path = ["flexstr_support/path", "osstr"] str = ["flexstr_support/str"] [dependencies.flexstr_support] path = "../flexstr_support" version = "0.1.3" default-features = false [dependencies.serde] version = "1" default-features = false optional = true [dependencies.sqlx] version = "0.8" default-features = false optional = true [dev-dependencies.serde_json] version = "1" [package.metadata.docs.rs] features = ["bytes", "cstr", "osstr", "path", "serde", "std", "str"] rustdoc-args = ["--cfg", "docsrs"] ================================================ FILE: boxed_flexstr/src/boxed.rs ================================================ use core::marker::PhantomData; use flexstr_support::StringToFromBytes; // *** OwnedToFromBoxedInner *** pub trait OwnedToFromBoxed where S::Owned: OwnedToFromBoxed, { type BoxType; fn into_boxed(self) -> Self::BoxType; fn from_boxed(boxed: &mut Self::BoxType) -> Self; fn clone_boxed(boxed: &Self::BoxType) -> Self::BoxType; } // *** OwnedOpsMut *** pub trait OwnedOpsMut { fn push_str(&mut self, s: &S); } // *** BoxedFlexStr *** #[cfg(feature = "safe")] pub type BoxedFlexStr = Boxed>>; #[cfg(not(feature = "safe"))] pub type BoxedFlexStr = Boxed>; pub struct Boxed where S::Owned: OwnedToFromBoxed, { inner: B, _marker: PhantomData, } impl Boxed where S::Owned: OwnedToFromBoxed, { pub fn new(s: S::Owned) -> Self { Self { inner: s.into_boxed(), _marker: PhantomData, } } } impl Boxed where S::Owned: OwnedToFromBoxed + OwnedOpsMut, { pub fn with_mut_str(&mut self, f: F) where F: FnOnce(&mut S::Owned), { let mut str: S::Owned = S::Owned::from_boxed(&mut self.inner); f(&mut str); self.inner = str.into_boxed(); } pub fn push_str(&mut self, s: &S) { self.with_mut_str(|str| str.push_str(s)); } } impl Clone for Boxed where S::Owned: OwnedToFromBoxed, { fn clone(&self) -> Self { Self { inner: S::Owned::clone_boxed(&self.inner), _marker: PhantomData, } } } ================================================ FILE: boxed_flexstr/src/bytes.rs ================================================ #[cfg(not(feature = "std"))] use alloc::vec::Vec; use crate::boxed::{BoxedFlexStr, OwnedOpsMut, OwnedToFromBoxed}; #[cfg(not(feature = "safe"))] use crate::small_box::SmallBox; pub type BoxedBytes = BoxedFlexStr<[u8]>; #[cfg(not(feature = "large_strings"))] const _: () = assert!( size_of::() <= size_of::>(), "BoxedBytes must be less than or equal to the size of Box<[u8]>" ); const _: () = assert!( size_of::>() <= size_of::>(), "Option must be less than or equal to the size of Vec" ); #[cfg(not(feature = "safe"))] impl OwnedToFromBoxed<[u8]> for Vec { type BoxType = SmallBox<[u8]>; #[inline] fn into_boxed(self) -> SmallBox<[u8]> { let ptr = self.as_ptr(); let len = self.len(); let cap = self.capacity(); core::mem::forget(self); // SAFETY: The raw parts are valid as they are not modified unsafe { SmallBox::new(ptr, len, cap) } } #[inline] fn from_boxed(boxed: &mut SmallBox<[u8]>) -> Self { // SAFETY: The raw parts are valid as they are not modified unsafe { Vec::from_raw_parts(boxed.ptr() as *mut u8, boxed.len(), boxed.cap()) } } #[inline] fn clone_boxed(boxed: &SmallBox<[u8]>) -> SmallBox<[u8]> { // SAFETY: The raw parts are valid as they are not modified let v = unsafe { Vec::from_raw_parts(boxed.ptr() as *mut u8, boxed.len(), boxed.cap()) }; let v2 = v.clone(); core::mem::forget(v); v2.into_boxed() } } #[cfg(feature = "safe")] impl OwnedToFromBoxed<[u8]> for Vec { type BoxType = Option>; #[inline] fn into_boxed(self) -> Self::BoxType { Some(self.into_boxed_slice()) } #[inline] fn from_boxed(boxed: &mut Self::BoxType) -> Self { boxed .take() .expect("Expected a vector of bytes, but got None") .into_vec() } #[inline] fn clone_boxed(boxed: &Self::BoxType) -> Self::BoxType { boxed.clone() } } impl OwnedOpsMut<[u8]> for Vec { #[inline] fn push_str(&mut self, s: &[u8]) { self.extend_from_slice(s); } } ================================================ FILE: boxed_flexstr/src/cstr.rs ================================================ use alloc::ffi::CString; #[cfg(all(not(feature = "std"), not(feature = "safe")))] use alloc::vec::Vec; use core::ffi::CStr; use crate::boxed::{BoxedFlexStr, OwnedToFromBoxed}; #[cfg(not(feature = "safe"))] use crate::small_box::SmallBox; pub type BoxedCStr = BoxedFlexStr; #[cfg(not(feature = "large_strings"))] const _: () = assert!( size_of::() <= size_of::>(), "BoxedCStr must be less than or equal to the size of Box" ); // NOTE: We need to manually add an extra word due to `CString` being a `Box<[u8]>`, it is only 2 words vs the needed 3. const _: () = assert!( size_of::>() <= size_of::() + size_of::(), "Option must be less than or equal to the size of CString" ); #[cfg(not(feature = "safe"))] impl OwnedToFromBoxed for CString { type BoxType = SmallBox; #[inline] fn into_boxed(self) -> SmallBox { let bytes = self.into_bytes_with_nul(); let ptr = bytes.as_ptr(); let len = bytes.len() - 1; let cap = bytes.len(); core::mem::forget(bytes); // SAFETY: The raw parts are valid as they are not modified unsafe { SmallBox::new(ptr, len, cap - 1) } } #[inline] fn from_boxed(boxed: &mut SmallBox) -> Self { // SAFETY: The raw parts are valid as they are not modified. This was previously a CString. unsafe { let bytes = Vec::from_raw_parts(boxed.ptr() as *mut u8, boxed.len(), boxed.cap()); CString::from_vec_with_nul_unchecked(bytes) } } #[inline] fn clone_boxed(boxed: &SmallBox) -> SmallBox { // SAFETY: The raw parts are valid as they are not modified. This was previously a CString. let s = unsafe { let bytes = Vec::from_raw_parts(boxed.ptr() as *mut u8, boxed.len(), boxed.cap()); CString::from_vec_with_nul_unchecked(bytes) }; let s2 = s.clone(); core::mem::forget(s); s2.into_boxed() } } #[cfg(feature = "safe")] impl OwnedToFromBoxed for CString { type BoxType = Option>; #[inline] fn into_boxed(self) -> Self::BoxType { Some(self.into_boxed_c_str()) } #[inline] fn from_boxed(boxed: &mut Self::BoxType) -> Self { boxed .take() .expect("Expected a string, but got None") .into_c_string() } #[inline] fn clone_boxed(boxed: &Self::BoxType) -> Self::BoxType { boxed.clone() } } ================================================ FILE: boxed_flexstr/src/lib.rs ================================================ #![cfg_attr(not(feature = "std"), no_std)] extern crate alloc; mod boxed; #[cfg(feature = "bytes")] mod bytes; #[cfg(feature = "cstr")] mod cstr; #[cfg(all(feature = "std", feature = "osstr"))] mod osstr; #[cfg(all(feature = "std", feature = "path"))] mod path; #[cfg(not(feature = "safe"))] mod small_box; #[cfg(feature = "str")] mod str; pub use boxed::BoxedFlexStr; #[cfg(feature = "bytes")] pub use bytes::BoxedBytes; #[cfg(feature = "cstr")] pub use cstr::BoxedCStr; #[cfg(all(feature = "std", feature = "osstr"))] pub use osstr::BoxedOsStr; #[cfg(all(feature = "std", feature = "path"))] pub use path::BoxedPath; #[cfg(feature = "str")] pub use str::BoxedStr; ================================================ FILE: boxed_flexstr/src/osstr.rs ================================================ use std::ffi::{OsStr, OsString}; use crate::boxed::{BoxedFlexStr, OwnedOpsMut, OwnedToFromBoxed}; #[cfg(not(feature = "safe"))] use crate::small_box::SmallBox; pub type BoxedOsStr = BoxedFlexStr; #[cfg(not(feature = "large_strings"))] const _: () = assert!( size_of::() <= size_of::>(), "BoxedOsStr must be less than or equal to the size of Box" ); const _: () = assert!( size_of::>() <= size_of::(), "Option must be less than or equal to the size of OsString" ); #[cfg(not(feature = "safe"))] impl OwnedToFromBoxed for OsString { type BoxType = SmallBox; #[inline] fn into_boxed(self) -> SmallBox { let bytes = self.into_encoded_bytes(); let ptr = bytes.as_ptr(); let len = bytes.len(); let cap = bytes.capacity(); core::mem::forget(bytes); // SAFETY: The raw parts are valid as they are not modified unsafe { SmallBox::new(ptr, len, cap) } } #[inline] fn from_boxed(boxed: &mut SmallBox) -> Self { // SAFETY: The raw parts are valid as they are not modified. This was previously an OsString. unsafe { let bytes = Vec::from_raw_parts(boxed.ptr() as *mut u8, boxed.len(), boxed.cap()); OsString::from_encoded_bytes_unchecked(bytes) } } #[inline] fn clone_boxed(boxed: &SmallBox) -> SmallBox { // SAFETY: The raw parts are valid as they are not modified. This was previously an OsString. let s = unsafe { let bytes = Vec::from_raw_parts(boxed.ptr() as *mut u8, boxed.len(), boxed.cap()); OsString::from_encoded_bytes_unchecked(bytes) }; let s2 = s.clone(); core::mem::forget(s); s2.into_boxed() } } #[cfg(feature = "safe")] impl OwnedToFromBoxed for OsString { type BoxType = Option>; #[inline] fn into_boxed(self) -> Self::BoxType { Some(self.into_boxed_os_str()) } #[inline] fn from_boxed(boxed: &mut Self::BoxType) -> Self { boxed .take() .expect("Expected a string, but got None") .into_os_string() } #[inline] fn clone_boxed(boxed: &Self::BoxType) -> Self::BoxType { boxed.clone() } } impl OwnedOpsMut for OsString { #[inline] fn push_str(&mut self, s: &OsStr) { self.push(s); } } ================================================ FILE: boxed_flexstr/src/path.rs ================================================ use std::path::{Path, PathBuf}; use crate::boxed::{BoxedFlexStr, OwnedOpsMut, OwnedToFromBoxed}; #[cfg(not(feature = "safe"))] use crate::small_box::SmallBox; pub type BoxedPath = BoxedFlexStr; #[cfg(not(feature = "large_strings"))] const _: () = assert!( size_of::() <= size_of::>(), "BoxedPath must be less than or equal to the size of Box" ); const _: () = assert!( size_of::>() <= size_of::(), "Option must be less than or equal to the size of PathBuf" ); #[cfg(not(feature = "safe"))] impl OwnedToFromBoxed for PathBuf { type BoxType = SmallBox; #[inline] fn into_boxed(self) -> SmallBox { let bytes = self.into_os_string().into_encoded_bytes(); let ptr = bytes.as_ptr(); let len = bytes.len(); let cap = bytes.capacity(); core::mem::forget(bytes); // SAFETY: The raw parts are valid as they are not modified unsafe { SmallBox::new(ptr, len, cap) } } #[inline] fn from_boxed(boxed: &mut SmallBox) -> Self { // SAFETY: The raw parts are valid as they are not modified. This was previously an OsString. unsafe { let bytes = Vec::from_raw_parts(boxed.ptr() as *mut u8, boxed.len(), boxed.cap()); std::ffi::OsString::from_encoded_bytes_unchecked(bytes).into() } } #[inline] fn clone_boxed(boxed: &SmallBox) -> SmallBox { // SAFETY: The raw parts are valid as they are not modified. This was previously an OsString. let s: PathBuf = unsafe { let bytes = Vec::from_raw_parts(boxed.ptr() as *mut u8, boxed.len(), boxed.cap()); std::ffi::OsString::from_encoded_bytes_unchecked(bytes).into() }; let s2 = s.clone(); core::mem::forget(s); s2.into_boxed() } } #[cfg(feature = "safe")] impl OwnedToFromBoxed for PathBuf { type BoxType = Option>; #[inline] fn into_boxed(self) -> Self::BoxType { Some(self.into_boxed_path()) } #[inline] fn from_boxed(boxed: &mut Self::BoxType) -> Self { boxed .take() .expect("Expected a string, but got None") .into_path_buf() } #[inline] fn clone_boxed(boxed: &Self::BoxType) -> Self::BoxType { boxed.clone() } } impl OwnedOpsMut for PathBuf { #[inline] fn push_str(&mut self, s: &Path) { self.push(s); } } ================================================ FILE: boxed_flexstr/src/small_box.rs ================================================ use core::marker::PhantomData; use core::ptr::NonNull; use flexstr_support::StringToFromBytes; use crate::boxed::OwnedToFromBoxed; // *** LengthCapacity - 32-bit (16-bit length/capacity) *** #[cfg(all(not(feature = "large_strings"), target_pointer_width = "32"))] #[derive(Clone, Copy)] struct LengthCapacity { len: u16, cap: u16, } #[cfg(all(not(feature = "large_strings"), target_pointer_width = "32"))] impl LengthCapacity { const MAX_CAPACITY: usize = u16::MAX as usize; #[inline] pub fn new(len: usize, cap: usize) -> Self { if cap > Self::MAX_CAPACITY { panic!("String is too large after mutation"); } Self { len: len as u16, cap: cap as u16, } } #[inline] pub fn len(&self) -> usize { self.len as usize } #[inline] pub fn cap(&self) -> usize { self.cap as usize } } // *** LengthCapacity - 32-bit (24-bit length/capacity) *** #[cfg(all(feature = "large_strings", target_pointer_width = "32"))] #[derive(Clone, Copy)] struct LengthCapacity { len: u16, cap: u16, len_extra: u8, cap_extra: u8, } #[cfg(all(feature = "large_strings", target_pointer_width = "32"))] impl LengthCapacity { const MAX_CAPACITY: usize = u16::MAX as usize + ((u8::MAX as usize) << 16); #[inline] pub fn new(len: usize, cap: usize) -> Self { if cap > Self::MAX_CAPACITY { panic!("String is too large after mutation"); } Self { len: len as u16, cap: cap as u16, len_extra: (len >> 16) as u8, cap_extra: (cap >> 16) as u8, } } #[inline] pub fn len(&self) -> usize { self.len as usize + ((self.len_extra as usize) << 16) } #[inline] pub fn cap(&self) -> usize { self.cap as usize + ((self.cap_extra as usize) << 16) } } // *** LengthCapacity - 64-bit (32-bit length/capacity) *** #[cfg(all(not(feature = "large_strings"), target_pointer_width = "64"))] #[derive(Clone, Copy)] struct LengthCapacity { len: u32, cap: u32, } #[cfg(all(not(feature = "large_strings"), target_pointer_width = "64"))] impl LengthCapacity { const MAX_CAPACITY: usize = u32::MAX as usize; #[inline] pub fn new(len: usize, cap: usize) -> Self { if cap > Self::MAX_CAPACITY { panic!("String is too large after mutation"); } Self { len: len as u32, cap: cap as u32, } } #[inline] pub fn len(&self) -> usize { self.len as usize } #[inline] pub fn cap(&self) -> usize { self.cap as usize } } // *** LengthCapacity - 64-bit (48-bit length/capacity) *** #[cfg(all(feature = "large_strings", target_pointer_width = "64"))] #[derive(Clone, Copy)] struct LengthCapacity { len: u32, cap: u32, len_extra: u16, cap_extra: u16, } #[cfg(all(feature = "large_strings", target_pointer_width = "64"))] impl LengthCapacity { const MAX_CAPACITY: usize = u32::MAX as usize + ((u16::MAX as usize) << 32); #[inline] pub fn new(len: usize, cap: usize) -> Self { if cap > Self::MAX_CAPACITY { panic!("String is too large after mutation"); } Self { len: len as u32, cap: cap as u32, len_extra: (len >> 32) as u16, cap_extra: (cap >> 32) as u16, } } #[inline] pub fn len(&self) -> usize { self.len as usize + ((self.len_extra as usize) << 32) } #[inline] pub fn cap(&self) -> usize { self.cap as usize + ((self.cap_extra as usize) << 32) } } // *** SmallBox *** pub struct SmallBox where S::Owned: OwnedToFromBoxed>, { ptr: NonNull, len_cap: LengthCapacity, _marker: PhantomData, } impl SmallBox where S::Owned: OwnedToFromBoxed>, { pub(crate) unsafe fn new(ptr: *const u8, len: usize, cap: usize) -> Self { Self { // SAFETY: The caller is responsible for ensuring the pointer is valid ptr: unsafe { NonNull::new_unchecked(ptr as *mut u8) }, len_cap: LengthCapacity::new(len, cap), _marker: PhantomData, } } pub fn ptr(&self) -> *const u8 { self.ptr.as_ptr() } pub fn len(&self) -> usize { self.len_cap.len() } pub fn cap(&self) -> usize { self.len_cap.cap() } } impl Drop for SmallBox where S::Owned: OwnedToFromBoxed>, { fn drop(&mut self) { S::Owned::from_boxed(self); } } ================================================ FILE: boxed_flexstr/src/str.rs ================================================ #[cfg(not(feature = "std"))] use alloc::string::String; use crate::boxed::{BoxedFlexStr, OwnedOpsMut, OwnedToFromBoxed}; #[cfg(not(feature = "safe"))] use crate::small_box::SmallBox; pub type BoxedStr = BoxedFlexStr; #[cfg(not(feature = "large_strings"))] const _: () = assert!( size_of::() <= size_of::>(), "BoxedStr must be less than or equal to the size of Box" ); const _: () = assert!( size_of::>() <= size_of::(), "Option must be less than or equal to the size of String" ); #[cfg(not(feature = "safe"))] impl OwnedToFromBoxed for String { type BoxType = SmallBox; #[inline] fn into_boxed(self) -> SmallBox { let ptr = self.as_str().as_ptr(); let len = self.len(); let cap = self.capacity(); core::mem::forget(self); // SAFETY: The raw parts are valid as they are not modified unsafe { SmallBox::new(ptr, len, cap) } } #[inline] fn from_boxed(boxed: &mut SmallBox) -> Self { // SAFETY: The raw parts are valid as they are not modified unsafe { String::from_raw_parts(boxed.ptr() as *mut u8, boxed.len(), boxed.cap()) } } #[inline] fn clone_boxed(boxed: &SmallBox) -> SmallBox { // SAFETY: The raw parts are valid as they are not modified let s = unsafe { String::from_raw_parts(boxed.ptr() as *mut u8, boxed.len(), boxed.cap()) }; let s2 = s.clone(); core::mem::forget(s); s2.into_boxed() } } #[cfg(feature = "safe")] impl OwnedToFromBoxed for String { type BoxType = Option>; #[inline] fn into_boxed(self) -> Self::BoxType { Some(self.into_boxed_str()) } #[inline] fn from_boxed(boxed: &mut Self::BoxType) -> Self { boxed .take() .expect("Expected a string, but got None") .into_string() } #[inline] fn clone_boxed(boxed: &Self::BoxType) -> Self::BoxType { boxed.clone() } } impl OwnedOpsMut for String { #[inline] fn push_str(&mut self, s: &str) { self.push_str(s); } } ================================================ FILE: docs/criterion/Clone/0/report/index.html ================================================ Clone/0 Summary - Criterion.rs ================================================ FILE: docs/criterion/Clone/10/report/index.html ================================================ Clone/10 Summary - Criterion.rs ================================================ FILE: docs/criterion/Clone/100/report/index.html ================================================ Clone/100 Summary - Criterion.rs ================================================ FILE: docs/criterion/Clone/20/report/index.html ================================================ Clone/20 Summary - Criterion.rs ================================================ FILE: docs/criterion/Clone/500/report/index.html ================================================ Clone/500 Summary - Criterion.rs ================================================ FILE: docs/criterion/Clone/Arc_str_/0/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"Arc","value_str":"0","throughput":null,"full_id":"Clone/Arc/0","directory_name":"Clone/Arc_str_/0","title":"Clone/Arc/0"} ================================================ FILE: docs/criterion/Clone/Arc_str_/0/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94665.05060133581,"upper_bound":94963.20574709967},"point_estimate":94801.7519511877,"standard_error":76.43792034004765},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94490.19776758717,"upper_bound":94599.42901892829},"point_estimate":94548.75707070707,"standard_error":34.92609917673718},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":128.45355150262978,"upper_bound":242.5592925118837},"point_estimate":175.065204481104,"standard_error":31.368924323242613},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94512.21226849056,"upper_bound":94638.95912179163},"point_estimate":94567.7511318296,"standard_error":32.40171135590057},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":484.03327196535474,"upper_bound":1026.5900233334162},"point_estimate":770.2938282827757,"standard_error":139.33048232032135}} ================================================ FILE: docs/criterion/Clone/Arc_str_/0/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[11.0,22.0,33.0,44.0,55.0,66.0,77.0,88.0,99.0,110.0,121.0,132.0,143.0,154.0,165.0,176.0,187.0,198.0,209.0,220.0,231.0,242.0,253.0,264.0,275.0,286.0,297.0,308.0,319.0,330.0,341.0,352.0,363.0,374.0,385.0,396.0,407.0,418.0,429.0,440.0,451.0,462.0,473.0,484.0,495.0,506.0,517.0,528.0,539.0,550.0,561.0,572.0,583.0,594.0,605.0,616.0,627.0,638.0,649.0,660.0,671.0,682.0,693.0,704.0,715.0,726.0,737.0,748.0,759.0,770.0,781.0,792.0,803.0,814.0,825.0,836.0,847.0,858.0,869.0,880.0,891.0,902.0,913.0,924.0,935.0,946.0,957.0,968.0,979.0,990.0,1001.0,1012.0,1023.0,1034.0,1045.0,1056.0,1067.0,1078.0,1089.0,1100.0],"times":[1058583.0,2078042.0,3127706.0,4268458.0,5202459.0,6322209.0,7459291.0,8394083.0,9482793.0,10487541.0,11542040.0,12497583.0,13539918.0,14588124.0,15732458.0,16740001.0,17677376.0,18790919.0,19828542.0,20809749.0,21830083.0,22895000.0,23912669.0,25004833.0,25973166.0,27073417.0,28087292.0,29076042.0,30116624.0,31199583.0,33032792.0,34870791.0,35456457.0,35326291.0,36459541.0,37386584.0,39181586.0,39569541.0,40525000.0,41548333.0,42617415.0,43775459.0,44883708.0,45730749.0,46731001.0,47749791.0,48929375.0,49946168.0,50874708.0,51977874.0,52970999.0,54043084.0,54972793.0,57432666.0,57247540.0,58157457.0,59226792.0,60287000.0,61268083.0,62272834.0,63266125.0,64519958.0,65461373.0,66593083.0,67535208.0,68675835.0,69539501.0,70636127.0,71866210.0,72832125.0,73900166.0,75077874.0,75855540.0,76810875.0,78084417.0,79255460.0,80111584.0,81197250.0,82128165.0,83072957.0,84090751.0,85084875.0,86238501.0,87320165.0,88311709.0,89334544.0,90495293.0,91585126.0,92452209.0,93607790.0,94519292.0,95504293.0,96618873.0,97694834.0,99068417.0,99712126.0,100768792.0,101871581.0,103038000.0,103888959.0]} ================================================ FILE: docs/criterion/Clone/Arc_str_/0/base/tukey.json ================================================ [93663.05716444636,94053.37285237314,95094.21468684453,95484.53037477129] ================================================ FILE: docs/criterion/Clone/Arc_str_/0/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0035077600724982005,"upper_bound":0.0015826944558008699},"point_estimate":-0.0010185450871601498,"standard_error":0.0012952882623221585},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0014039968009693649,"upper_bound":0.0005807940362061448},"point_estimate":-0.0002282133612951931,"standard_error":0.0005272856333538589}} ================================================ FILE: docs/criterion/Clone/Arc_str_/0/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"Arc","value_str":"0","throughput":null,"full_id":"Clone/Arc/0","directory_name":"Clone/Arc_str_/0","title":"Clone/Arc/0"} ================================================ FILE: docs/criterion/Clone/Arc_str_/0/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94665.05060133581,"upper_bound":94963.20574709967},"point_estimate":94801.7519511877,"standard_error":76.43792034004765},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94490.19776758717,"upper_bound":94599.42901892829},"point_estimate":94548.75707070707,"standard_error":34.92609917673718},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":128.45355150262978,"upper_bound":242.5592925118837},"point_estimate":175.065204481104,"standard_error":31.368924323242613},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94512.21226849056,"upper_bound":94638.95912179163},"point_estimate":94567.7511318296,"standard_error":32.40171135590057},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":484.03327196535474,"upper_bound":1026.5900233334162},"point_estimate":770.2938282827757,"standard_error":139.33048232032135}} ================================================ FILE: docs/criterion/Clone/Arc_str_/0/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[11.0,22.0,33.0,44.0,55.0,66.0,77.0,88.0,99.0,110.0,121.0,132.0,143.0,154.0,165.0,176.0,187.0,198.0,209.0,220.0,231.0,242.0,253.0,264.0,275.0,286.0,297.0,308.0,319.0,330.0,341.0,352.0,363.0,374.0,385.0,396.0,407.0,418.0,429.0,440.0,451.0,462.0,473.0,484.0,495.0,506.0,517.0,528.0,539.0,550.0,561.0,572.0,583.0,594.0,605.0,616.0,627.0,638.0,649.0,660.0,671.0,682.0,693.0,704.0,715.0,726.0,737.0,748.0,759.0,770.0,781.0,792.0,803.0,814.0,825.0,836.0,847.0,858.0,869.0,880.0,891.0,902.0,913.0,924.0,935.0,946.0,957.0,968.0,979.0,990.0,1001.0,1012.0,1023.0,1034.0,1045.0,1056.0,1067.0,1078.0,1089.0,1100.0],"times":[1058583.0,2078042.0,3127706.0,4268458.0,5202459.0,6322209.0,7459291.0,8394083.0,9482793.0,10487541.0,11542040.0,12497583.0,13539918.0,14588124.0,15732458.0,16740001.0,17677376.0,18790919.0,19828542.0,20809749.0,21830083.0,22895000.0,23912669.0,25004833.0,25973166.0,27073417.0,28087292.0,29076042.0,30116624.0,31199583.0,33032792.0,34870791.0,35456457.0,35326291.0,36459541.0,37386584.0,39181586.0,39569541.0,40525000.0,41548333.0,42617415.0,43775459.0,44883708.0,45730749.0,46731001.0,47749791.0,48929375.0,49946168.0,50874708.0,51977874.0,52970999.0,54043084.0,54972793.0,57432666.0,57247540.0,58157457.0,59226792.0,60287000.0,61268083.0,62272834.0,63266125.0,64519958.0,65461373.0,66593083.0,67535208.0,68675835.0,69539501.0,70636127.0,71866210.0,72832125.0,73900166.0,75077874.0,75855540.0,76810875.0,78084417.0,79255460.0,80111584.0,81197250.0,82128165.0,83072957.0,84090751.0,85084875.0,86238501.0,87320165.0,88311709.0,89334544.0,90495293.0,91585126.0,92452209.0,93607790.0,94519292.0,95504293.0,96618873.0,97694834.0,99068417.0,99712126.0,100768792.0,101871581.0,103038000.0,103888959.0]} ================================================ FILE: docs/criterion/Clone/Arc_str_/0/new/tukey.json ================================================ [93663.05716444636,94053.37285237314,95094.21468684453,95484.53037477129] ================================================ FILE: docs/criterion/Clone/Arc_str_/0/report/index.html ================================================ Clone/Arc<str>/0 - Criterion.rs

Clone/Arc<str>/0

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 94.512 µs 94.568 µs 94.639 µs
0.9971762 0.9972238 0.9971455
Mean 94.665 µs 94.802 µs 94.963 µs
Std. Dev. 484.03 ns 770.29 ns 1.0266 µs
Median 94.490 µs 94.549 µs 94.599 µs
MAD 128.45 ns 175.07 ns 242.56 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.3508% −0.1019% +0.1583% (p = 0.45 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/Arc_str_/10/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"Arc","value_str":"10","throughput":null,"full_id":"Clone/Arc/10","directory_name":"Clone/Arc_str_/10","title":"Clone/Arc/10"} ================================================ FILE: docs/criterion/Clone/Arc_str_/10/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94657.04291262414,"upper_bound":94882.48374840121},"point_estimate":94759.97755355037,"standard_error":57.656060400096756},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94557.17965367965,"upper_bound":94611.5646002596},"point_estimate":94581.08243870294,"standard_error":14.011081679489106},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":103.10036036170625,"upper_bound":181.55105382842055},"point_estimate":140.20897423945428,"standard_error":19.55064984006466},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94579.15155031881,"upper_bound":94757.74425079688},"point_estimate":94655.17162889423,"standard_error":46.60456770857712},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":336.3257252572358,"upper_bound":800.834220007082},"point_estimate":580.7406123848888,"standard_error":120.49519720385945}} ================================================ FILE: docs/criterion/Clone/Arc_str_/10/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[11.0,22.0,33.0,44.0,55.0,66.0,77.0,88.0,99.0,110.0,121.0,132.0,143.0,154.0,165.0,176.0,187.0,198.0,209.0,220.0,231.0,242.0,253.0,264.0,275.0,286.0,297.0,308.0,319.0,330.0,341.0,352.0,363.0,374.0,385.0,396.0,407.0,418.0,429.0,440.0,451.0,462.0,473.0,484.0,495.0,506.0,517.0,528.0,539.0,550.0,561.0,572.0,583.0,594.0,605.0,616.0,627.0,638.0,649.0,660.0,671.0,682.0,693.0,704.0,715.0,726.0,737.0,748.0,759.0,770.0,781.0,792.0,803.0,814.0,825.0,836.0,847.0,858.0,869.0,880.0,891.0,902.0,913.0,924.0,935.0,946.0,957.0,968.0,979.0,990.0,1001.0,1012.0,1023.0,1034.0,1045.0,1056.0,1067.0,1078.0,1089.0,1100.0],"times":[1051292.0,2072252.0,3107874.0,4324458.0,5319335.0,6320207.0,7347292.0,8381292.0,9372957.0,10458875.0,11470541.0,12806374.0,13537082.0,14745710.0,15666417.0,16651583.0,17794084.0,18771166.0,19768750.0,20811876.0,21846709.0,22874918.0,23926875.0,24960208.0,26007125.0,27046583.0,28032916.0,29091375.0,30261875.0,31224207.0,32497793.0,33280750.0,34327292.0,35332291.0,36361168.0,37450250.0,38538627.0,39485917.0,40523834.0,41572167.0,42829459.0,43685417.0,44735625.0,45703084.0,47173127.0,47928124.0,48882290.0,49903793.0,50898459.0,51998958.0,52979458.0,54121627.0,55091499.0,56111002.0,57118374.0,58215250.0,59310541.0,60224333.0,61284206.0,62489876.0,63486001.0,64523419.0,65513584.0,66630290.0,67524583.0,68559041.0,69779083.0,71882542.0,72094333.0,72806085.0,73781626.0,74853835.0,75805500.0,77069915.0,78052123.0,79003336.0,80112374.0,81231125.0,82255165.0,83193165.0,84262706.0,85275958.0,86270708.0,87462127.0,88481957.0,89479333.0,90661125.0,91652750.0,92652958.0,93516958.0,94631125.0,95725250.0,96682874.0,97713540.0,99245875.0,99815542.0,101004166.0,101944458.0,103022333.0,105549418.0]} ================================================ FILE: docs/criterion/Clone/Arc_str_/10/base/tukey.json ================================================ [93971.81309497921,94238.0847985149,94948.14267461008,95214.41437814577] ================================================ FILE: docs/criterion/Clone/Arc_str_/10/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0038845209925581765,"upper_bound":0.0005222308380301067},"point_estimate":-0.0015136262391031163,"standard_error":0.0011215723081593118},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0011352150040593312,"upper_bound":0.00012299893670508766},"point_estimate":-0.00043401569498424664,"standard_error":0.0003235881958309267}} ================================================ FILE: docs/criterion/Clone/Arc_str_/10/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"Arc","value_str":"10","throughput":null,"full_id":"Clone/Arc/10","directory_name":"Clone/Arc_str_/10","title":"Clone/Arc/10"} ================================================ FILE: docs/criterion/Clone/Arc_str_/10/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94657.04291262414,"upper_bound":94882.48374840121},"point_estimate":94759.97755355037,"standard_error":57.656060400096756},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94557.17965367965,"upper_bound":94611.5646002596},"point_estimate":94581.08243870294,"standard_error":14.011081679489106},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":103.10036036170625,"upper_bound":181.55105382842055},"point_estimate":140.20897423945428,"standard_error":19.55064984006466},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94579.15155031881,"upper_bound":94757.74425079688},"point_estimate":94655.17162889423,"standard_error":46.60456770857712},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":336.3257252572358,"upper_bound":800.834220007082},"point_estimate":580.7406123848888,"standard_error":120.49519720385945}} ================================================ FILE: docs/criterion/Clone/Arc_str_/10/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[11.0,22.0,33.0,44.0,55.0,66.0,77.0,88.0,99.0,110.0,121.0,132.0,143.0,154.0,165.0,176.0,187.0,198.0,209.0,220.0,231.0,242.0,253.0,264.0,275.0,286.0,297.0,308.0,319.0,330.0,341.0,352.0,363.0,374.0,385.0,396.0,407.0,418.0,429.0,440.0,451.0,462.0,473.0,484.0,495.0,506.0,517.0,528.0,539.0,550.0,561.0,572.0,583.0,594.0,605.0,616.0,627.0,638.0,649.0,660.0,671.0,682.0,693.0,704.0,715.0,726.0,737.0,748.0,759.0,770.0,781.0,792.0,803.0,814.0,825.0,836.0,847.0,858.0,869.0,880.0,891.0,902.0,913.0,924.0,935.0,946.0,957.0,968.0,979.0,990.0,1001.0,1012.0,1023.0,1034.0,1045.0,1056.0,1067.0,1078.0,1089.0,1100.0],"times":[1051292.0,2072252.0,3107874.0,4324458.0,5319335.0,6320207.0,7347292.0,8381292.0,9372957.0,10458875.0,11470541.0,12806374.0,13537082.0,14745710.0,15666417.0,16651583.0,17794084.0,18771166.0,19768750.0,20811876.0,21846709.0,22874918.0,23926875.0,24960208.0,26007125.0,27046583.0,28032916.0,29091375.0,30261875.0,31224207.0,32497793.0,33280750.0,34327292.0,35332291.0,36361168.0,37450250.0,38538627.0,39485917.0,40523834.0,41572167.0,42829459.0,43685417.0,44735625.0,45703084.0,47173127.0,47928124.0,48882290.0,49903793.0,50898459.0,51998958.0,52979458.0,54121627.0,55091499.0,56111002.0,57118374.0,58215250.0,59310541.0,60224333.0,61284206.0,62489876.0,63486001.0,64523419.0,65513584.0,66630290.0,67524583.0,68559041.0,69779083.0,71882542.0,72094333.0,72806085.0,73781626.0,74853835.0,75805500.0,77069915.0,78052123.0,79003336.0,80112374.0,81231125.0,82255165.0,83193165.0,84262706.0,85275958.0,86270708.0,87462127.0,88481957.0,89479333.0,90661125.0,91652750.0,92652958.0,93516958.0,94631125.0,95725250.0,96682874.0,97713540.0,99245875.0,99815542.0,101004166.0,101944458.0,103022333.0,105549418.0]} ================================================ FILE: docs/criterion/Clone/Arc_str_/10/new/tukey.json ================================================ [93971.81309497921,94238.0847985149,94948.14267461008,95214.41437814577] ================================================ FILE: docs/criterion/Clone/Arc_str_/10/report/index.html ================================================ Clone/Arc<str>/10 - Criterion.rs

Clone/Arc<str>/10

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 94.579 µs 94.655 µs 94.758 µs
0.9983808 0.9984649 0.9983118
Mean 94.657 µs 94.760 µs 94.882 µs
Std. Dev. 336.33 ns 580.74 ns 800.83 ns
Median 94.557 µs 94.581 µs 94.612 µs
MAD 103.10 ns 140.21 ns 181.55 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.3885% −0.1514% +0.0522% (p = 0.19 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/Arc_str_/100/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"Arc","value_str":"100","throughput":null,"full_id":"Clone/Arc/100","directory_name":"Clone/Arc_str_/100","title":"Clone/Arc/100"} ================================================ FILE: docs/criterion/Clone/Arc_str_/100/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94634.31548947081,"upper_bound":94837.45006006242},"point_estimate":94727.49400273277,"standard_error":51.84915142687652},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94505.52958152958,"upper_bound":94615.75757575757},"point_estimate":94562.46992500254,"standard_error":26.157098737445438},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":122.09634136382172,"upper_bound":236.57624501321962},"point_estimate":177.76278184335294,"standard_error":29.313836078363362},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94550.60411184789,"upper_bound":94741.40368891665},"point_estimate":94634.6966726225,"standard_error":49.35480713258903},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":310.2355101630091,"upper_bound":708.4817668609605},"point_estimate":519.7403912635331,"standard_error":102.64212815160707}} ================================================ FILE: docs/criterion/Clone/Arc_str_/100/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[11.0,22.0,33.0,44.0,55.0,66.0,77.0,88.0,99.0,110.0,121.0,132.0,143.0,154.0,165.0,176.0,187.0,198.0,209.0,220.0,231.0,242.0,253.0,264.0,275.0,286.0,297.0,308.0,319.0,330.0,341.0,352.0,363.0,374.0,385.0,396.0,407.0,418.0,429.0,440.0,451.0,462.0,473.0,484.0,495.0,506.0,517.0,528.0,539.0,550.0,561.0,572.0,583.0,594.0,605.0,616.0,627.0,638.0,649.0,660.0,671.0,682.0,693.0,704.0,715.0,726.0,737.0,748.0,759.0,770.0,781.0,792.0,803.0,814.0,825.0,836.0,847.0,858.0,869.0,880.0,891.0,902.0,913.0,924.0,935.0,946.0,957.0,968.0,979.0,990.0,1001.0,1012.0,1023.0,1034.0,1045.0,1056.0,1067.0,1078.0,1089.0,1100.0],"times":[1052083.0,2078792.0,3111833.0,4253417.0,5377289.0,6370916.0,7330167.0,8399041.0,9366960.0,10475041.0,11478792.0,12459957.0,13631083.0,14590251.0,15839333.0,16708168.0,17673747.0,18759249.0,19775707.0,20813455.0,21850875.0,22857542.0,23900040.0,24952001.0,25957877.0,27045667.0,28204166.0,29278418.0,30170001.0,31232123.0,32354749.0,33298291.0,34407832.0,35343082.0,36533041.0,37412085.0,38450001.0,39461083.0,40511334.0,41601126.0,42642253.0,43732334.0,44679126.0,45714960.0,46860249.0,47797374.0,48837877.0,49850875.0,50894002.0,52087582.0,53045458.0,54099501.0,55195168.0,56211749.0,57207709.0,58366709.0,59222418.0,60248792.0,61485959.0,62600915.0,63549292.0,64403709.0,65492332.0,66485750.0,67508375.0,68536792.0,69695084.0,70805834.0,71770790.0,72754541.0,73726122.0,74859042.0,75841540.0,76945959.0,77923834.0,78921542.0,80044208.0,81060001.0,82049750.0,83145208.0,84187750.0,85320915.0,86198000.0,87761168.0,88251751.0,89703001.0,90509208.0,91698708.0,92460666.0,94495041.0,94952292.0,96042540.0,96801001.0,97712625.0,98993292.0,99735792.0,102509042.0,102069124.0,102909247.0,103864792.0]} ================================================ FILE: docs/criterion/Clone/Arc_str_/100/base/tukey.json ================================================ [93603.72474526693,94030.70458916845,95169.3175062392,95596.29735014073] ================================================ FILE: docs/criterion/Clone/Arc_str_/100/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.032170708907577054,"upper_bound":-0.00466939262542867},"point_estimate":-0.016953021263033108,"standard_error":0.007114655688548438},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0021255888153087765,"upper_bound":-0.0005531302679327276},"point_estimate":-0.0012808932087639002,"standard_error":0.00039702483246218225}} ================================================ FILE: docs/criterion/Clone/Arc_str_/100/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"Arc","value_str":"100","throughput":null,"full_id":"Clone/Arc/100","directory_name":"Clone/Arc_str_/100","title":"Clone/Arc/100"} ================================================ FILE: docs/criterion/Clone/Arc_str_/100/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94634.31548947081,"upper_bound":94837.45006006242},"point_estimate":94727.49400273277,"standard_error":51.84915142687652},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94505.52958152958,"upper_bound":94615.75757575757},"point_estimate":94562.46992500254,"standard_error":26.157098737445438},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":122.09634136382172,"upper_bound":236.57624501321962},"point_estimate":177.76278184335294,"standard_error":29.313836078363362},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94550.60411184789,"upper_bound":94741.40368891665},"point_estimate":94634.6966726225,"standard_error":49.35480713258903},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":310.2355101630091,"upper_bound":708.4817668609605},"point_estimate":519.7403912635331,"standard_error":102.64212815160707}} ================================================ FILE: docs/criterion/Clone/Arc_str_/100/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[11.0,22.0,33.0,44.0,55.0,66.0,77.0,88.0,99.0,110.0,121.0,132.0,143.0,154.0,165.0,176.0,187.0,198.0,209.0,220.0,231.0,242.0,253.0,264.0,275.0,286.0,297.0,308.0,319.0,330.0,341.0,352.0,363.0,374.0,385.0,396.0,407.0,418.0,429.0,440.0,451.0,462.0,473.0,484.0,495.0,506.0,517.0,528.0,539.0,550.0,561.0,572.0,583.0,594.0,605.0,616.0,627.0,638.0,649.0,660.0,671.0,682.0,693.0,704.0,715.0,726.0,737.0,748.0,759.0,770.0,781.0,792.0,803.0,814.0,825.0,836.0,847.0,858.0,869.0,880.0,891.0,902.0,913.0,924.0,935.0,946.0,957.0,968.0,979.0,990.0,1001.0,1012.0,1023.0,1034.0,1045.0,1056.0,1067.0,1078.0,1089.0,1100.0],"times":[1052083.0,2078792.0,3111833.0,4253417.0,5377289.0,6370916.0,7330167.0,8399041.0,9366960.0,10475041.0,11478792.0,12459957.0,13631083.0,14590251.0,15839333.0,16708168.0,17673747.0,18759249.0,19775707.0,20813455.0,21850875.0,22857542.0,23900040.0,24952001.0,25957877.0,27045667.0,28204166.0,29278418.0,30170001.0,31232123.0,32354749.0,33298291.0,34407832.0,35343082.0,36533041.0,37412085.0,38450001.0,39461083.0,40511334.0,41601126.0,42642253.0,43732334.0,44679126.0,45714960.0,46860249.0,47797374.0,48837877.0,49850875.0,50894002.0,52087582.0,53045458.0,54099501.0,55195168.0,56211749.0,57207709.0,58366709.0,59222418.0,60248792.0,61485959.0,62600915.0,63549292.0,64403709.0,65492332.0,66485750.0,67508375.0,68536792.0,69695084.0,70805834.0,71770790.0,72754541.0,73726122.0,74859042.0,75841540.0,76945959.0,77923834.0,78921542.0,80044208.0,81060001.0,82049750.0,83145208.0,84187750.0,85320915.0,86198000.0,87761168.0,88251751.0,89703001.0,90509208.0,91698708.0,92460666.0,94495041.0,94952292.0,96042540.0,96801001.0,97712625.0,98993292.0,99735792.0,102509042.0,102069124.0,102909247.0,103864792.0]} ================================================ FILE: docs/criterion/Clone/Arc_str_/100/new/tukey.json ================================================ [93603.72474526693,94030.70458916845,95169.3175062392,95596.29735014073] ================================================ FILE: docs/criterion/Clone/Arc_str_/100/report/index.html ================================================ Clone/Arc<str>/100 - Criterion.rs

Clone/Arc<str>/100

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 94.551 µs 94.635 µs 94.741 µs
0.9982790 0.9983887 0.9982121
Mean 94.634 µs 94.727 µs 94.837 µs
Std. Dev. 310.24 ns 519.74 ns 708.48 ns
Median 94.506 µs 94.562 µs 94.616 µs
MAD 122.10 ns 177.76 ns 236.58 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −3.2171% −1.6953% −0.4669% (p = 0.01 < 0.05)
Change within noise threshold.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/Arc_str_/20/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"Arc","value_str":"20","throughput":null,"full_id":"Clone/Arc/20","directory_name":"Clone/Arc_str_/20","title":"Clone/Arc/20"} ================================================ FILE: docs/criterion/Clone/Arc_str_/20/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94699.04769940782,"upper_bound":95027.51548808001},"point_estimate":94839.97199242986,"standard_error":84.72649936429178},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94549.4303030303,"upper_bound":94662.43272727272},"point_estimate":94603.96955667788,"standard_error":23.971884274165532},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":123.83964657145819,"upper_bound":264.82231639564685},"point_estimate":182.69815820263833,"standard_error":31.017512377459962},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94586.13480643119,"upper_bound":94716.17392447972},"point_estimate":94645.85869097357,"standard_error":33.37903135203876},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":374.677847949352,"upper_bound":1300.2807553849943},"point_estimate":847.3655082486644,"standard_error":272.31511556080005}} ================================================ FILE: docs/criterion/Clone/Arc_str_/20/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[11.0,22.0,33.0,44.0,55.0,66.0,77.0,88.0,99.0,110.0,121.0,132.0,143.0,154.0,165.0,176.0,187.0,198.0,209.0,220.0,231.0,242.0,253.0,264.0,275.0,286.0,297.0,308.0,319.0,330.0,341.0,352.0,363.0,374.0,385.0,396.0,407.0,418.0,429.0,440.0,451.0,462.0,473.0,484.0,495.0,506.0,517.0,528.0,539.0,550.0,561.0,572.0,583.0,594.0,605.0,616.0,627.0,638.0,649.0,660.0,671.0,682.0,693.0,704.0,715.0,726.0,737.0,748.0,759.0,770.0,781.0,792.0,803.0,814.0,825.0,836.0,847.0,858.0,869.0,880.0,891.0,902.0,913.0,924.0,935.0,946.0,957.0,968.0,979.0,990.0,1001.0,1012.0,1023.0,1034.0,1045.0,1056.0,1067.0,1078.0,1089.0,1100.0],"times":[1053002.0,2088084.0,3106706.0,4469789.0,5317418.0,6238583.0,7454169.0,8358039.0,9459500.0,10469415.0,11504250.0,12665416.0,13608792.0,14734917.0,15672750.0,16667125.0,17748293.0,18828041.0,19903000.0,20826125.0,21822918.0,22875792.0,23902915.0,25015748.0,26032169.0,27031169.0,28080749.0,29195210.0,30151708.0,31189707.0,32259663.0,33314542.0,34300333.0,35366457.0,36418502.0,37463251.0,38530874.0,39469250.0,40545416.0,41668542.0,42724710.0,43614041.0,44671332.0,45730417.0,46783166.0,47864375.0,50171539.0,50109459.0,50921750.0,52028169.0,53092543.0,54146336.0,55217833.0,56262833.0,58319583.0,58756792.0,59316833.0,60494544.0,61341086.0,62402624.0,63410250.0,64427333.0,65462876.0,66605123.0,68012666.0,68694461.0,69794332.0,70653334.0,71674626.0,72750208.0,73894044.0,74888042.0,75962040.0,76894376.0,77952708.0,78980169.0,80153748.0,81375207.0,82088999.0,83196876.0,84291959.0,85194959.0,86239584.0,87492166.0,88331373.0,89420833.0,90424375.0,91457125.0,92604124.0,93988081.0,94773916.0,95616750.0,96653749.0,97677543.0,98973791.0,99817250.0,101218377.0,101846043.0,103543460.0,104157502.0]} ================================================ FILE: docs/criterion/Clone/Arc_str_/20/base/tukey.json ================================================ [93476.72138855395,93982.3260600032,95330.60518386785,95836.20985531711] ================================================ FILE: docs/criterion/Clone/Arc_str_/20/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0011779879882796885,"upper_bound":0.002752842208156414},"point_estimate":0.0006657248866421828,"standard_error":0.0010005644330819577},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.001248529570847098,"upper_bound":0.00039117675347277725},"point_estimate":-0.00023782962429930166,"standard_error":0.0003937875985378692}} ================================================ FILE: docs/criterion/Clone/Arc_str_/20/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"Arc","value_str":"20","throughput":null,"full_id":"Clone/Arc/20","directory_name":"Clone/Arc_str_/20","title":"Clone/Arc/20"} ================================================ FILE: docs/criterion/Clone/Arc_str_/20/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94699.04769940782,"upper_bound":95027.51548808001},"point_estimate":94839.97199242986,"standard_error":84.72649936429178},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94549.4303030303,"upper_bound":94662.43272727272},"point_estimate":94603.96955667788,"standard_error":23.971884274165532},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":123.83964657145819,"upper_bound":264.82231639564685},"point_estimate":182.69815820263833,"standard_error":31.017512377459962},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94586.13480643119,"upper_bound":94716.17392447972},"point_estimate":94645.85869097357,"standard_error":33.37903135203876},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":374.677847949352,"upper_bound":1300.2807553849943},"point_estimate":847.3655082486644,"standard_error":272.31511556080005}} ================================================ FILE: docs/criterion/Clone/Arc_str_/20/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[11.0,22.0,33.0,44.0,55.0,66.0,77.0,88.0,99.0,110.0,121.0,132.0,143.0,154.0,165.0,176.0,187.0,198.0,209.0,220.0,231.0,242.0,253.0,264.0,275.0,286.0,297.0,308.0,319.0,330.0,341.0,352.0,363.0,374.0,385.0,396.0,407.0,418.0,429.0,440.0,451.0,462.0,473.0,484.0,495.0,506.0,517.0,528.0,539.0,550.0,561.0,572.0,583.0,594.0,605.0,616.0,627.0,638.0,649.0,660.0,671.0,682.0,693.0,704.0,715.0,726.0,737.0,748.0,759.0,770.0,781.0,792.0,803.0,814.0,825.0,836.0,847.0,858.0,869.0,880.0,891.0,902.0,913.0,924.0,935.0,946.0,957.0,968.0,979.0,990.0,1001.0,1012.0,1023.0,1034.0,1045.0,1056.0,1067.0,1078.0,1089.0,1100.0],"times":[1053002.0,2088084.0,3106706.0,4469789.0,5317418.0,6238583.0,7454169.0,8358039.0,9459500.0,10469415.0,11504250.0,12665416.0,13608792.0,14734917.0,15672750.0,16667125.0,17748293.0,18828041.0,19903000.0,20826125.0,21822918.0,22875792.0,23902915.0,25015748.0,26032169.0,27031169.0,28080749.0,29195210.0,30151708.0,31189707.0,32259663.0,33314542.0,34300333.0,35366457.0,36418502.0,37463251.0,38530874.0,39469250.0,40545416.0,41668542.0,42724710.0,43614041.0,44671332.0,45730417.0,46783166.0,47864375.0,50171539.0,50109459.0,50921750.0,52028169.0,53092543.0,54146336.0,55217833.0,56262833.0,58319583.0,58756792.0,59316833.0,60494544.0,61341086.0,62402624.0,63410250.0,64427333.0,65462876.0,66605123.0,68012666.0,68694461.0,69794332.0,70653334.0,71674626.0,72750208.0,73894044.0,74888042.0,75962040.0,76894376.0,77952708.0,78980169.0,80153748.0,81375207.0,82088999.0,83196876.0,84291959.0,85194959.0,86239584.0,87492166.0,88331373.0,89420833.0,90424375.0,91457125.0,92604124.0,93988081.0,94773916.0,95616750.0,96653749.0,97677543.0,98973791.0,99817250.0,101218377.0,101846043.0,103543460.0,104157502.0]} ================================================ FILE: docs/criterion/Clone/Arc_str_/20/new/tukey.json ================================================ [93476.72138855395,93982.3260600032,95330.60518386785,95836.20985531711] ================================================ FILE: docs/criterion/Clone/Arc_str_/20/report/index.html ================================================ Clone/Arc<str>/20 - Criterion.rs

Clone/Arc<str>/20

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 94.586 µs 94.646 µs 94.716 µs
0.9983540 0.9984088 0.9983329
Mean 94.699 µs 94.840 µs 95.028 µs
Std. Dev. 374.68 ns 847.37 ns 1.3003 µs
Median 94.549 µs 94.604 µs 94.662 µs
MAD 123.84 ns 182.70 ns 264.82 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.1178% +0.0666% +0.2753% (p = 0.54 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/Arc_str_/500/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"Arc","value_str":"500","throughput":null,"full_id":"Clone/Arc/500","directory_name":"Clone/Arc_str_/500","title":"Clone/Arc/500"} ================================================ FILE: docs/criterion/Clone/Arc_str_/500/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94582.72281749973,"upper_bound":94847.47355562466},"point_estimate":94701.5959613957,"standard_error":67.99477910628413},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94450.83363636363,"upper_bound":94545.19925629925},"point_estimate":94497.453568468,"standard_error":29.553230763631902},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":114.41075391285636,"upper_bound":223.24722532728757},"point_estimate":157.36641608070985,"standard_error":30.053624054685976},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94457.3815541126,"upper_bound":94565.27385895974},"point_estimate":94502.61858672435,"standard_error":27.78968055315097},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":358.1188178284059,"upper_bound":957.2218918060827},"point_estimate":680.7591671553954,"standard_error":154.68552997810497}} ================================================ FILE: docs/criterion/Clone/Arc_str_/500/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[11.0,22.0,33.0,44.0,55.0,66.0,77.0,88.0,99.0,110.0,121.0,132.0,143.0,154.0,165.0,176.0,187.0,198.0,209.0,220.0,231.0,242.0,253.0,264.0,275.0,286.0,297.0,308.0,319.0,330.0,341.0,352.0,363.0,374.0,385.0,396.0,407.0,418.0,429.0,440.0,451.0,462.0,473.0,484.0,495.0,506.0,517.0,528.0,539.0,550.0,561.0,572.0,583.0,594.0,605.0,616.0,627.0,638.0,649.0,660.0,671.0,682.0,693.0,704.0,715.0,726.0,737.0,748.0,759.0,770.0,781.0,792.0,803.0,814.0,825.0,836.0,847.0,858.0,869.0,880.0,891.0,902.0,913.0,924.0,935.0,946.0,957.0,968.0,979.0,990.0,1001.0,1012.0,1023.0,1034.0,1045.0,1056.0,1067.0,1078.0,1089.0,1100.0],"times":[1046084.0,2075291.0,3120292.0,4355083.0,5359708.0,6392001.0,7298499.0,8424458.0,9362458.0,10435834.0,11446085.0,12465419.0,13560666.0,14767041.0,15768416.0,16676750.0,17643459.0,18742709.0,19832833.0,20804084.0,21871792.0,22859210.0,23888085.0,24916334.0,25946377.0,27182288.0,28104207.0,29055166.0,30133291.0,31152499.0,32325668.0,33249791.0,34260667.0,35357083.0,36353043.0,37392331.0,38800709.0,39519169.0,40667627.0,42138123.0,42775209.0,43659542.0,44672165.0,45766583.0,46759252.0,47864500.0,48853667.0,50088666.0,51044710.0,51951207.0,53034125.0,54098540.0,55211665.0,57589250.0,57144915.0,58494458.0,59252373.0,60177249.0,61367126.0,62384082.0,63332917.0,64468626.0,65515084.0,66641793.0,67604707.0,68470209.0,69581666.0,70603958.0,71692833.0,72669501.0,73696208.0,74703918.0,75842208.0,76862501.0,77881627.0,78942417.0,79957875.0,81112501.0,82007875.0,83238416.0,84133376.0,85134331.0,86221126.0,87184042.0,88168624.0,89633499.0,90332708.0,91397083.0,92383540.0,93705832.0,94500832.0,95628125.0,96610710.0,97600375.0,98840084.0,99694208.0,100688876.0,101871417.0,102746458.0,103895917.0]} ================================================ FILE: docs/criterion/Clone/Arc_str_/500/base/tukey.json ================================================ [93620.25214197263,94012.78217654742,95059.52893541355,95452.05896998834] ================================================ FILE: docs/criterion/Clone/Arc_str_/500/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.12925172175803223,"upper_bound":-0.05164101901232282},"point_estimate":-0.08924380179368074,"standard_error":0.01985594631528621},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0036676245848047406,"upper_bound":-0.000562158997199691},"point_estimate":-0.00158680547499368,"standard_error":0.0007654811268340382}} ================================================ FILE: docs/criterion/Clone/Arc_str_/500/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"Arc","value_str":"500","throughput":null,"full_id":"Clone/Arc/500","directory_name":"Clone/Arc_str_/500","title":"Clone/Arc/500"} ================================================ FILE: docs/criterion/Clone/Arc_str_/500/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94582.72281749973,"upper_bound":94847.47355562466},"point_estimate":94701.5959613957,"standard_error":67.99477910628413},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94450.83363636363,"upper_bound":94545.19925629925},"point_estimate":94497.453568468,"standard_error":29.553230763631902},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":114.41075391285636,"upper_bound":223.24722532728757},"point_estimate":157.36641608070985,"standard_error":30.053624054685976},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94457.3815541126,"upper_bound":94565.27385895974},"point_estimate":94502.61858672435,"standard_error":27.78968055315097},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":358.1188178284059,"upper_bound":957.2218918060827},"point_estimate":680.7591671553954,"standard_error":154.68552997810497}} ================================================ FILE: docs/criterion/Clone/Arc_str_/500/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[11.0,22.0,33.0,44.0,55.0,66.0,77.0,88.0,99.0,110.0,121.0,132.0,143.0,154.0,165.0,176.0,187.0,198.0,209.0,220.0,231.0,242.0,253.0,264.0,275.0,286.0,297.0,308.0,319.0,330.0,341.0,352.0,363.0,374.0,385.0,396.0,407.0,418.0,429.0,440.0,451.0,462.0,473.0,484.0,495.0,506.0,517.0,528.0,539.0,550.0,561.0,572.0,583.0,594.0,605.0,616.0,627.0,638.0,649.0,660.0,671.0,682.0,693.0,704.0,715.0,726.0,737.0,748.0,759.0,770.0,781.0,792.0,803.0,814.0,825.0,836.0,847.0,858.0,869.0,880.0,891.0,902.0,913.0,924.0,935.0,946.0,957.0,968.0,979.0,990.0,1001.0,1012.0,1023.0,1034.0,1045.0,1056.0,1067.0,1078.0,1089.0,1100.0],"times":[1046084.0,2075291.0,3120292.0,4355083.0,5359708.0,6392001.0,7298499.0,8424458.0,9362458.0,10435834.0,11446085.0,12465419.0,13560666.0,14767041.0,15768416.0,16676750.0,17643459.0,18742709.0,19832833.0,20804084.0,21871792.0,22859210.0,23888085.0,24916334.0,25946377.0,27182288.0,28104207.0,29055166.0,30133291.0,31152499.0,32325668.0,33249791.0,34260667.0,35357083.0,36353043.0,37392331.0,38800709.0,39519169.0,40667627.0,42138123.0,42775209.0,43659542.0,44672165.0,45766583.0,46759252.0,47864500.0,48853667.0,50088666.0,51044710.0,51951207.0,53034125.0,54098540.0,55211665.0,57589250.0,57144915.0,58494458.0,59252373.0,60177249.0,61367126.0,62384082.0,63332917.0,64468626.0,65515084.0,66641793.0,67604707.0,68470209.0,69581666.0,70603958.0,71692833.0,72669501.0,73696208.0,74703918.0,75842208.0,76862501.0,77881627.0,78942417.0,79957875.0,81112501.0,82007875.0,83238416.0,84133376.0,85134331.0,86221126.0,87184042.0,88168624.0,89633499.0,90332708.0,91397083.0,92383540.0,93705832.0,94500832.0,95628125.0,96610710.0,97600375.0,98840084.0,99694208.0,100688876.0,101871417.0,102746458.0,103895917.0]} ================================================ FILE: docs/criterion/Clone/Arc_str_/500/new/tukey.json ================================================ [93620.25214197263,94012.78217654742,95059.52893541355,95452.05896998834] ================================================ FILE: docs/criterion/Clone/Arc_str_/500/report/index.html ================================================ Clone/Arc<str>/500 - Criterion.rs

Clone/Arc<str>/500

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 94.457 µs 94.503 µs 94.565 µs
0.9986790 0.9987107 0.9986499
Mean 94.583 µs 94.702 µs 94.847 µs
Std. Dev. 358.12 ns 680.76 ns 957.22 ns
Median 94.451 µs 94.497 µs 94.545 µs
MAD 114.41 ns 157.37 ns 223.25 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −12.925% −8.9244% −5.1641% (p = 0.00 < 0.05)
Performance has improved.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/Arc_str_/report/index.html ================================================ Clone/Arc<str> Summary - Criterion.rs

Clone/Arc<str>

Violin Plot

Violin Plot

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

Line Chart

Line Chart

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

Clone/Arc<str>/0

PDF of Slope Regression

Clone/Arc<str>/10

PDF of Slope Regression

Clone/Arc<str>/20

PDF of Slope Regression

Clone/Arc<str>/100

PDF of Slope Regression

Clone/Arc<str>/500

PDF of Slope Regression
================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/0/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (LocalStr - Boxed)","value_str":"0","throughput":null,"full_id":"Clone/FlexStr 0.10 (LocalStr - Boxed)/0","directory_name":"Clone/FlexStr 0.10 (LocalStr - Boxed)/0","title":"Clone/FlexStr 0.10 (LocalStr - Boxed)/0"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/0/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":81234.30064113844,"upper_bound":81701.69620123917},"point_estimate":81456.2170145982,"standard_error":119.50611223378769},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":80870.08479020979,"upper_bound":80991.92985658409},"point_estimate":80918.70158862876,"standard_error":32.41015694270174},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":136.94253245340204,"upper_bound":314.8897194445446},"point_estimate":200.52670283404845,"standard_error":44.16685932038463},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":81000.14653818964,"upper_bound":81461.20698048394},"point_estimate":81204.03299360017,"standard_error":118.2356803599473},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":891.5122978957675,"upper_bound":1447.4638005653862},"point_estimate":1199.5308901100998,"standard_error":141.82632647636134}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/0/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[13.0,26.0,39.0,52.0,65.0,78.0,91.0,104.0,117.0,130.0,143.0,156.0,169.0,182.0,195.0,208.0,221.0,234.0,247.0,260.0,273.0,286.0,299.0,312.0,325.0,338.0,351.0,364.0,377.0,390.0,403.0,416.0,429.0,442.0,455.0,468.0,481.0,494.0,507.0,520.0,533.0,546.0,559.0,572.0,585.0,598.0,611.0,624.0,637.0,650.0,663.0,676.0,689.0,702.0,715.0,728.0,741.0,754.0,767.0,780.0,793.0,806.0,819.0,832.0,845.0,858.0,871.0,884.0,897.0,910.0,923.0,936.0,949.0,962.0,975.0,988.0,1001.0,1014.0,1027.0,1040.0,1053.0,1066.0,1079.0,1092.0,1105.0,1118.0,1131.0,1144.0,1157.0,1170.0,1183.0,1196.0,1209.0,1222.0,1235.0,1248.0,1261.0,1274.0,1287.0,1300.0],"times":[1063669.0,2140247.0,3292958.0,4405875.0,5284792.0,6357667.0,7635711.0,8414206.0,9595124.0,10629584.0,11612043.0,12681790.0,13834501.0,15063417.0,16488416.0,17469875.0,18362958.0,19189793.0,19970250.0,21055832.0,22050708.0,23145208.0,24201708.0,25222292.0,26283958.0,27739040.0,29081961.0,29876918.0,30432582.0,31586376.0,32596500.0,33721500.0,34665502.0,35692831.0,36750123.0,37781958.0,38889750.0,39898250.0,40964795.0,42132670.0,43029043.0,44072504.0,45171626.0,46222791.0,47348915.0,48393835.0,49348626.0,50440708.0,51479541.0,52663335.0,53665876.0,54611667.0,55770417.0,56828958.0,57828834.0,58852250.0,59851875.0,60925083.0,62126916.0,63025916.0,64722832.0,68282916.0,69821167.0,70191250.0,71599123.0,73729376.0,70338707.0,71451083.0,72680333.0,73558999.0,74896375.0,77639665.0,77022791.0,77803833.0,78960333.0,79828083.0,80909168.0,82026874.0,83719711.0,84147708.0,85104125.0,86173874.0,87177458.0,88534541.0,89405333.0,90317458.0,91634417.0,92515377.0,93452667.0,94432082.0,95993957.0,97144169.0,97695832.0,98656462.0,99765832.0,100939124.0,101973628.0,103231500.0,103993039.0,104922332.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/0/base/tukey.json ================================================ [79160.26416835858,79983.48024945488,82178.72313237833,83001.93921347463] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/0/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.0008070923808179422,"upper_bound":0.007614253506617488},"point_estimate":0.0041284494765911894,"standard_error":0.0017452812162344663},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0006361096759612828,"upper_bound":0.0014794533455015912},"point_estimate":0.0003508270636953803,"standard_error":0.0005200974401533471}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/0/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (LocalStr - Boxed)","value_str":"0","throughput":null,"full_id":"Clone/FlexStr 0.10 (LocalStr - Boxed)/0","directory_name":"Clone/FlexStr 0.10 (LocalStr - Boxed)/0","title":"Clone/FlexStr 0.10 (LocalStr - Boxed)/0"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/0/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":81234.30064113844,"upper_bound":81701.69620123917},"point_estimate":81456.2170145982,"standard_error":119.50611223378769},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":80870.08479020979,"upper_bound":80991.92985658409},"point_estimate":80918.70158862876,"standard_error":32.41015694270174},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":136.94253245340204,"upper_bound":314.8897194445446},"point_estimate":200.52670283404845,"standard_error":44.16685932038463},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":81000.14653818964,"upper_bound":81461.20698048394},"point_estimate":81204.03299360017,"standard_error":118.2356803599473},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":891.5122978957675,"upper_bound":1447.4638005653862},"point_estimate":1199.5308901100998,"standard_error":141.82632647636134}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/0/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[13.0,26.0,39.0,52.0,65.0,78.0,91.0,104.0,117.0,130.0,143.0,156.0,169.0,182.0,195.0,208.0,221.0,234.0,247.0,260.0,273.0,286.0,299.0,312.0,325.0,338.0,351.0,364.0,377.0,390.0,403.0,416.0,429.0,442.0,455.0,468.0,481.0,494.0,507.0,520.0,533.0,546.0,559.0,572.0,585.0,598.0,611.0,624.0,637.0,650.0,663.0,676.0,689.0,702.0,715.0,728.0,741.0,754.0,767.0,780.0,793.0,806.0,819.0,832.0,845.0,858.0,871.0,884.0,897.0,910.0,923.0,936.0,949.0,962.0,975.0,988.0,1001.0,1014.0,1027.0,1040.0,1053.0,1066.0,1079.0,1092.0,1105.0,1118.0,1131.0,1144.0,1157.0,1170.0,1183.0,1196.0,1209.0,1222.0,1235.0,1248.0,1261.0,1274.0,1287.0,1300.0],"times":[1063669.0,2140247.0,3292958.0,4405875.0,5284792.0,6357667.0,7635711.0,8414206.0,9595124.0,10629584.0,11612043.0,12681790.0,13834501.0,15063417.0,16488416.0,17469875.0,18362958.0,19189793.0,19970250.0,21055832.0,22050708.0,23145208.0,24201708.0,25222292.0,26283958.0,27739040.0,29081961.0,29876918.0,30432582.0,31586376.0,32596500.0,33721500.0,34665502.0,35692831.0,36750123.0,37781958.0,38889750.0,39898250.0,40964795.0,42132670.0,43029043.0,44072504.0,45171626.0,46222791.0,47348915.0,48393835.0,49348626.0,50440708.0,51479541.0,52663335.0,53665876.0,54611667.0,55770417.0,56828958.0,57828834.0,58852250.0,59851875.0,60925083.0,62126916.0,63025916.0,64722832.0,68282916.0,69821167.0,70191250.0,71599123.0,73729376.0,70338707.0,71451083.0,72680333.0,73558999.0,74896375.0,77639665.0,77022791.0,77803833.0,78960333.0,79828083.0,80909168.0,82026874.0,83719711.0,84147708.0,85104125.0,86173874.0,87177458.0,88534541.0,89405333.0,90317458.0,91634417.0,92515377.0,93452667.0,94432082.0,95993957.0,97144169.0,97695832.0,98656462.0,99765832.0,100939124.0,101973628.0,103231500.0,103993039.0,104922332.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/0/new/tukey.json ================================================ [79160.26416835858,79983.48024945488,82178.72313237833,83001.93921347463] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/0/report/index.html ================================================ Clone/FlexStr 0.10 (LocalStr - Boxed)/0 - Criterion.rs

Clone/FlexStr 0.10 (LocalStr - Boxed)/0

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 81.000 µs 81.204 µs 81.461 µs
0.9763825 0.9772353 0.9758791
Mean 81.234 µs 81.456 µs 81.702 µs
Std. Dev. 891.51 ns 1.1995 µs 1.4475 µs
Median 80.870 µs 80.919 µs 80.992 µs
MAD 136.94 ns 200.53 ns 314.89 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time +0.0807% +0.4128% +0.7614% (p = 0.02 < 0.05)
Change within noise threshold.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/10/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (LocalStr - Boxed)","value_str":"10","throughput":null,"full_id":"Clone/FlexStr 0.10 (LocalStr - Boxed)/10","directory_name":"Clone/FlexStr 0.10 (LocalStr - Boxed)/10","title":"Clone/FlexStr 0.10 (LocalStr - Boxed)/10"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/10/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":68495.68172554189,"upper_bound":68619.96710697256},"point_estimate":68552.12586360055,"standard_error":31.865664603842557},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":68423.5943968254,"upper_bound":68487.68562658},"point_estimate":68450.73150584794,"standard_error":17.31131240823833},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":81.88466138259345,"upper_bound":158.69836390968248},"point_estimate":121.20881927501055,"standard_error":20.35900850248473},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":68431.55689345225,"upper_bound":68532.7540648748},"point_estimate":68474.7873308704,"standard_error":26.31071333388616},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":187.87201498582579,"upper_bound":451.2035511952392},"point_estimate":319.63231399262133,"standard_error":71.42071813388718}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/10/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[15.0,30.0,45.0,60.0,75.0,90.0,105.0,120.0,135.0,150.0,165.0,180.0,195.0,210.0,225.0,240.0,255.0,270.0,285.0,300.0,315.0,330.0,345.0,360.0,375.0,390.0,405.0,420.0,435.0,450.0,465.0,480.0,495.0,510.0,525.0,540.0,555.0,570.0,585.0,600.0,615.0,630.0,645.0,660.0,675.0,690.0,705.0,720.0,735.0,750.0,765.0,780.0,795.0,810.0,825.0,840.0,855.0,870.0,885.0,900.0,915.0,930.0,945.0,960.0,975.0,990.0,1005.0,1020.0,1035.0,1050.0,1065.0,1080.0,1095.0,1110.0,1125.0,1140.0,1155.0,1170.0,1185.0,1200.0,1215.0,1230.0,1245.0,1260.0,1275.0,1290.0,1305.0,1320.0,1335.0,1350.0,1365.0,1380.0,1395.0,1410.0,1425.0,1440.0,1455.0,1470.0,1485.0,1500.0],"times":[1029041.0,2080376.0,3081790.0,4162500.0,5299705.0,6200711.0,7266295.0,8226416.0,9229958.0,10307707.0,11327251.0,12349458.0,13354292.0,14453125.0,15487583.0,16480373.0,17482042.0,18529959.0,19490377.0,20683917.0,21554959.0,22892583.0,23663499.0,24605250.0,25658333.0,26707667.0,27724542.0,28904000.0,29815919.0,30849417.0,31838917.0,32907541.0,33887335.0,34963792.0,35906792.0,36934291.0,37948375.0,39018751.0,40014875.0,41002085.0,42077749.0,43069917.0,44167168.0,45220874.0,46209792.0,47185917.0,48218041.0,49282210.0,50217710.0,51286623.0,52355583.0,53544125.0,54542959.0,55405919.0,56397377.0,57713790.0,58416416.0,59506167.0,60529165.0,61502835.0,62835251.0,63670041.0,64642960.0,65637208.0,66618292.0,67669667.0,68784751.0,69765750.0,71571169.0,71991041.0,72943791.0,73835914.0,74893542.0,76243625.0,76977542.0,78226708.0,79043000.0,80006334.0,80959583.0,82072000.0,83061211.0,84346750.0,85102668.0,86215459.0,87185958.0,88220626.0,89209168.0,91615375.0,91354959.0,92301833.0,93270042.0,94334875.0,95588376.0,96443833.0,97660334.0,98540501.0,99659042.0,100599500.0,101717792.0,102743875.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/10/base/tukey.json ================================================ [67816.30973463772,68102.09664618463,68864.19507697638,69149.98198852329] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/10/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0022549211077111707,"upper_bound":0.001198172153397203},"point_estimate":-0.00047648323397853076,"standard_error":0.0008795719328348119},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0009158211528723648,"upper_bound":0.0005201223082857975},"point_estimate":-0.00008929623686426691,"standard_error":0.0003596374550923387}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/10/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (LocalStr - Boxed)","value_str":"10","throughput":null,"full_id":"Clone/FlexStr 0.10 (LocalStr - Boxed)/10","directory_name":"Clone/FlexStr 0.10 (LocalStr - Boxed)/10","title":"Clone/FlexStr 0.10 (LocalStr - Boxed)/10"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/10/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":68495.68172554189,"upper_bound":68619.96710697256},"point_estimate":68552.12586360055,"standard_error":31.865664603842557},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":68423.5943968254,"upper_bound":68487.68562658},"point_estimate":68450.73150584794,"standard_error":17.31131240823833},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":81.88466138259345,"upper_bound":158.69836390968248},"point_estimate":121.20881927501055,"standard_error":20.35900850248473},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":68431.55689345225,"upper_bound":68532.7540648748},"point_estimate":68474.7873308704,"standard_error":26.31071333388616},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":187.87201498582579,"upper_bound":451.2035511952392},"point_estimate":319.63231399262133,"standard_error":71.42071813388718}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/10/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[15.0,30.0,45.0,60.0,75.0,90.0,105.0,120.0,135.0,150.0,165.0,180.0,195.0,210.0,225.0,240.0,255.0,270.0,285.0,300.0,315.0,330.0,345.0,360.0,375.0,390.0,405.0,420.0,435.0,450.0,465.0,480.0,495.0,510.0,525.0,540.0,555.0,570.0,585.0,600.0,615.0,630.0,645.0,660.0,675.0,690.0,705.0,720.0,735.0,750.0,765.0,780.0,795.0,810.0,825.0,840.0,855.0,870.0,885.0,900.0,915.0,930.0,945.0,960.0,975.0,990.0,1005.0,1020.0,1035.0,1050.0,1065.0,1080.0,1095.0,1110.0,1125.0,1140.0,1155.0,1170.0,1185.0,1200.0,1215.0,1230.0,1245.0,1260.0,1275.0,1290.0,1305.0,1320.0,1335.0,1350.0,1365.0,1380.0,1395.0,1410.0,1425.0,1440.0,1455.0,1470.0,1485.0,1500.0],"times":[1029041.0,2080376.0,3081790.0,4162500.0,5299705.0,6200711.0,7266295.0,8226416.0,9229958.0,10307707.0,11327251.0,12349458.0,13354292.0,14453125.0,15487583.0,16480373.0,17482042.0,18529959.0,19490377.0,20683917.0,21554959.0,22892583.0,23663499.0,24605250.0,25658333.0,26707667.0,27724542.0,28904000.0,29815919.0,30849417.0,31838917.0,32907541.0,33887335.0,34963792.0,35906792.0,36934291.0,37948375.0,39018751.0,40014875.0,41002085.0,42077749.0,43069917.0,44167168.0,45220874.0,46209792.0,47185917.0,48218041.0,49282210.0,50217710.0,51286623.0,52355583.0,53544125.0,54542959.0,55405919.0,56397377.0,57713790.0,58416416.0,59506167.0,60529165.0,61502835.0,62835251.0,63670041.0,64642960.0,65637208.0,66618292.0,67669667.0,68784751.0,69765750.0,71571169.0,71991041.0,72943791.0,73835914.0,74893542.0,76243625.0,76977542.0,78226708.0,79043000.0,80006334.0,80959583.0,82072000.0,83061211.0,84346750.0,85102668.0,86215459.0,87185958.0,88220626.0,89209168.0,91615375.0,91354959.0,92301833.0,93270042.0,94334875.0,95588376.0,96443833.0,97660334.0,98540501.0,99659042.0,100599500.0,101717792.0,102743875.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/10/new/tukey.json ================================================ [67816.30973463772,68102.09664618463,68864.19507697638,69149.98198852329] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/10/report/index.html ================================================ Clone/FlexStr 0.10 (LocalStr - Boxed)/10 - Criterion.rs

Clone/FlexStr 0.10 (LocalStr - Boxed)/10

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 68.432 µs 68.475 µs 68.533 µs
0.9988423 0.9988972 0.9987985
Mean 68.496 µs 68.552 µs 68.620 µs
Std. Dev. 187.87 ns 319.63 ns 451.20 ns
Median 68.424 µs 68.451 µs 68.488 µs
MAD 81.885 ns 121.21 ns 158.70 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.2255% −0.0476% +0.1198% (p = 0.61 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/100/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (LocalStr - Boxed)","value_str":"100","throughput":null,"full_id":"Clone/FlexStr 0.10 (LocalStr - Boxed)/100","directory_name":"Clone/FlexStr 0.10 (LocalStr - Boxed)/100","title":"Clone/FlexStr 0.10 (LocalStr - Boxed)/100"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/100/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":261050.2606847989,"upper_bound":261683.86380321268},"point_estimate":261350.80681349192,"standard_error":161.6681780923026},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":260963.18023255814,"upper_bound":261205.91346153847},"point_estimate":261082.1755616215,"standard_error":67.42656577355906},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":405.47087552874024,"upper_bound":759.2586751998869},"point_estimate":586.5485021729085,"standard_error":88.91001762172088},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":260785.98454825024,"upper_bound":261285.0644783419},"point_estimate":261038.85993350082,"standard_error":126.95413750100478},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1110.7229339867692,"upper_bound":2085.7979690657658},"point_estimate":1627.8834190274483,"standard_error":249.4813373902682}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/100/base/sample.json ================================================ {"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":[1051458.0,2091084.0,3144791.0,4284833.0,5384126.0,6343249.0,7314294.0,8371167.0,9429334.0,10446790.0,11494583.0,12535707.0,13550122.0,14808751.0,15852916.0,16737917.0,17794043.0,18827790.0,19854167.0,20902502.0,21959542.0,22945417.0,24021333.0,25072043.0,26238416.0,27165415.0,28150332.0,29162835.0,30189542.0,31248751.0,32449040.0,33361000.0,34452375.0,35482749.0,36528332.0,38280501.0,39404083.0,39632459.0,40680418.0,41876085.0,42388750.0,43552334.0,44885667.0,45904000.0,46951749.0,47578292.0,49109541.0,49792957.0,50909333.0,52138710.0,53434792.0,54616459.0,55321084.0,56379666.0,57429666.0,58498708.0,59543458.0,60506916.0,61970583.0,63152875.0,63228125.0,64885083.0,65768373.0,66804917.0,67803623.0,68430415.0,69756751.0,70902043.0,72159417.0,72587958.0,74120916.0,75153123.0,76183125.0,76753126.0,78193042.0,79262250.0,80604710.0,81449126.0,82687248.0,83611541.0,84448125.0,85309627.0,86674792.0,87782292.0,88807874.0,89732001.0,90996708.0,90914330.0,93530585.0,94146376.0,95805084.0,95938959.0,97010248.0,98652293.0,99133582.0,100260749.0,101428667.0,102319540.0,103396125.0,104390207.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/100/base/tukey.json ================================================ [258328.36574835528,259535.4312294408,262754.2725123355,263961.337993421] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/100/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.061671786468449216,"upper_bound":-0.009775105677100344},"point_estimate":-0.033102621322935066,"standard_error":0.013273871619754216},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.004154144230417489,"upper_bound":-0.0010300497154547283},"point_estimate":-0.0022299635362788006,"standard_error":0.0008631461131242063}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/100/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (LocalStr - Boxed)","value_str":"100","throughput":null,"full_id":"Clone/FlexStr 0.10 (LocalStr - Boxed)/100","directory_name":"Clone/FlexStr 0.10 (LocalStr - Boxed)/100","title":"Clone/FlexStr 0.10 (LocalStr - Boxed)/100"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/100/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":261050.2606847989,"upper_bound":261683.86380321268},"point_estimate":261350.80681349192,"standard_error":161.6681780923026},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":260963.18023255814,"upper_bound":261205.91346153847},"point_estimate":261082.1755616215,"standard_error":67.42656577355906},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":405.47087552874024,"upper_bound":759.2586751998869},"point_estimate":586.5485021729085,"standard_error":88.91001762172088},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":260785.98454825024,"upper_bound":261285.0644783419},"point_estimate":261038.85993350082,"standard_error":126.95413750100478},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1110.7229339867692,"upper_bound":2085.7979690657658},"point_estimate":1627.8834190274483,"standard_error":249.4813373902682}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/100/new/sample.json ================================================ {"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":[1051458.0,2091084.0,3144791.0,4284833.0,5384126.0,6343249.0,7314294.0,8371167.0,9429334.0,10446790.0,11494583.0,12535707.0,13550122.0,14808751.0,15852916.0,16737917.0,17794043.0,18827790.0,19854167.0,20902502.0,21959542.0,22945417.0,24021333.0,25072043.0,26238416.0,27165415.0,28150332.0,29162835.0,30189542.0,31248751.0,32449040.0,33361000.0,34452375.0,35482749.0,36528332.0,38280501.0,39404083.0,39632459.0,40680418.0,41876085.0,42388750.0,43552334.0,44885667.0,45904000.0,46951749.0,47578292.0,49109541.0,49792957.0,50909333.0,52138710.0,53434792.0,54616459.0,55321084.0,56379666.0,57429666.0,58498708.0,59543458.0,60506916.0,61970583.0,63152875.0,63228125.0,64885083.0,65768373.0,66804917.0,67803623.0,68430415.0,69756751.0,70902043.0,72159417.0,72587958.0,74120916.0,75153123.0,76183125.0,76753126.0,78193042.0,79262250.0,80604710.0,81449126.0,82687248.0,83611541.0,84448125.0,85309627.0,86674792.0,87782292.0,88807874.0,89732001.0,90996708.0,90914330.0,93530585.0,94146376.0,95805084.0,95938959.0,97010248.0,98652293.0,99133582.0,100260749.0,101428667.0,102319540.0,103396125.0,104390207.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/100/new/tukey.json ================================================ [258328.36574835528,259535.4312294408,262754.2725123355,263961.337993421] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/100/report/index.html ================================================ Clone/FlexStr 0.10 (LocalStr - Boxed)/100 - Criterion.rs

Clone/FlexStr 0.10 (LocalStr - Boxed)/100

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 260.79 µs 261.04 µs 261.29 µs
0.9976189 0.9977481 0.9976256
Mean 261.05 µs 261.35 µs 261.68 µs
Std. Dev. 1.1107 µs 1.6279 µs 2.0858 µs
Median 260.96 µs 261.08 µs 261.21 µs
MAD 405.47 ns 586.55 ns 759.26 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −6.1672% −3.3103% −0.9775% (p = 0.00 < 0.05)
Change within noise threshold.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/20/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (LocalStr - Boxed)","value_str":"20","throughput":null,"full_id":"Clone/FlexStr 0.10 (LocalStr - Boxed)/20","directory_name":"Clone/FlexStr 0.10 (LocalStr - Boxed)/20","title":"Clone/FlexStr 0.10 (LocalStr - Boxed)/20"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/20/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":74739.81948097463,"upper_bound":75702.08537664631},"point_estimate":75090.08133640233,"standard_error":272.2536354320362},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":74651.62090336136,"upper_bound":74703.23129251701},"point_estimate":74674.8233531932,"standard_error":14.074141466622617},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":83.63573755016151,"upper_bound":153.40113264753103},"point_estimate":109.9312379915112,"standard_error":17.662500217326553},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":74661.7963557958,"upper_bound":75778.9377130438},"point_estimate":75015.4669834702,"standard_error":327.6327777625099},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":242.00573889255853,"upper_bound":4640.509878320766},"point_estimate":2740.7742889723404,"standard_error":1447.905836331746}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/20/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[14.0,28.0,42.0,56.0,70.0,84.0,98.0,112.0,126.0,140.0,154.0,168.0,182.0,196.0,210.0,224.0,238.0,252.0,266.0,280.0,294.0,308.0,322.0,336.0,350.0,364.0,378.0,392.0,406.0,420.0,434.0,448.0,462.0,476.0,490.0,504.0,518.0,532.0,546.0,560.0,574.0,588.0,602.0,616.0,630.0,644.0,658.0,672.0,686.0,700.0,714.0,728.0,742.0,756.0,770.0,784.0,798.0,812.0,826.0,840.0,854.0,868.0,882.0,896.0,910.0,924.0,938.0,952.0,966.0,980.0,994.0,1008.0,1022.0,1036.0,1050.0,1064.0,1078.0,1092.0,1106.0,1120.0,1134.0,1148.0,1162.0,1176.0,1190.0,1204.0,1218.0,1232.0,1246.0,1260.0,1274.0,1288.0,1302.0,1316.0,1330.0,1344.0,1358.0,1372.0,1386.0,1400.0],"times":[1054790.0,2086208.0,3133292.0,4498334.0,5348166.0,6407876.0,7364707.0,8350498.0,9471001.0,10451250.0,11539542.0,12536666.0,13583624.0,14720665.0,15784956.0,16729958.0,17797292.0,18870915.0,19860585.0,20883168.0,21962750.0,22999749.0,24015833.0,25223748.0,26152042.0,27329083.0,28223915.0,29271125.0,30327290.0,31371750.0,32495666.0,33465082.0,34528168.0,35484459.0,36584666.0,37623710.0,38644999.0,39712794.0,40760291.0,41993790.0,43144418.0,43869332.0,44918710.0,45953917.0,47044708.0,48128709.0,49151625.0,50431418.0,51178168.0,52406956.0,53503667.0,54406333.0,55367210.0,56456918.0,57433873.0,58453709.0,59596959.0,60816166.0,61741793.0,62806709.0,63926873.0,64742708.0,65791210.0,90935582.0,67909248.0,69239833.0,70128667.0,71069751.0,72064747.0,73078624.0,74316667.0,76436625.0,76486833.0,77495000.0,78306623.0,79374000.0,80366833.0,81439168.0,82721793.0,83718667.0,84715250.0,85623206.0,86759000.0,87901750.0,88833669.0,89830373.0,90919167.0,91919332.0,92970043.0,94128377.0,95164835.0,96112042.0,97190126.0,98051000.0,99188417.0,100312331.0,101408836.0,102508292.0,103305459.0,104432918.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/20/base/tukey.json ================================================ [74049.91177352819,74329.61209811227,75075.47963033649,75355.17995492058] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/20/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0031295849147852965,"upper_bound":0.010122243224319125},"point_estimate":0.0021468774062352036,"standard_error":0.0036369384494527894},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.001149440888757236,"upper_bound":0.00007495324677161319},"point_estimate":-0.00048275082036564054,"standard_error":0.0003036801251774392}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/20/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (LocalStr - Boxed)","value_str":"20","throughput":null,"full_id":"Clone/FlexStr 0.10 (LocalStr - Boxed)/20","directory_name":"Clone/FlexStr 0.10 (LocalStr - Boxed)/20","title":"Clone/FlexStr 0.10 (LocalStr - Boxed)/20"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/20/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":74739.81948097463,"upper_bound":75702.08537664631},"point_estimate":75090.08133640233,"standard_error":272.2536354320362},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":74651.62090336136,"upper_bound":74703.23129251701},"point_estimate":74674.8233531932,"standard_error":14.074141466622617},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":83.63573755016151,"upper_bound":153.40113264753103},"point_estimate":109.9312379915112,"standard_error":17.662500217326553},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":74661.7963557958,"upper_bound":75778.9377130438},"point_estimate":75015.4669834702,"standard_error":327.6327777625099},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":242.00573889255853,"upper_bound":4640.509878320766},"point_estimate":2740.7742889723404,"standard_error":1447.905836331746}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/20/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[14.0,28.0,42.0,56.0,70.0,84.0,98.0,112.0,126.0,140.0,154.0,168.0,182.0,196.0,210.0,224.0,238.0,252.0,266.0,280.0,294.0,308.0,322.0,336.0,350.0,364.0,378.0,392.0,406.0,420.0,434.0,448.0,462.0,476.0,490.0,504.0,518.0,532.0,546.0,560.0,574.0,588.0,602.0,616.0,630.0,644.0,658.0,672.0,686.0,700.0,714.0,728.0,742.0,756.0,770.0,784.0,798.0,812.0,826.0,840.0,854.0,868.0,882.0,896.0,910.0,924.0,938.0,952.0,966.0,980.0,994.0,1008.0,1022.0,1036.0,1050.0,1064.0,1078.0,1092.0,1106.0,1120.0,1134.0,1148.0,1162.0,1176.0,1190.0,1204.0,1218.0,1232.0,1246.0,1260.0,1274.0,1288.0,1302.0,1316.0,1330.0,1344.0,1358.0,1372.0,1386.0,1400.0],"times":[1054790.0,2086208.0,3133292.0,4498334.0,5348166.0,6407876.0,7364707.0,8350498.0,9471001.0,10451250.0,11539542.0,12536666.0,13583624.0,14720665.0,15784956.0,16729958.0,17797292.0,18870915.0,19860585.0,20883168.0,21962750.0,22999749.0,24015833.0,25223748.0,26152042.0,27329083.0,28223915.0,29271125.0,30327290.0,31371750.0,32495666.0,33465082.0,34528168.0,35484459.0,36584666.0,37623710.0,38644999.0,39712794.0,40760291.0,41993790.0,43144418.0,43869332.0,44918710.0,45953917.0,47044708.0,48128709.0,49151625.0,50431418.0,51178168.0,52406956.0,53503667.0,54406333.0,55367210.0,56456918.0,57433873.0,58453709.0,59596959.0,60816166.0,61741793.0,62806709.0,63926873.0,64742708.0,65791210.0,90935582.0,67909248.0,69239833.0,70128667.0,71069751.0,72064747.0,73078624.0,74316667.0,76436625.0,76486833.0,77495000.0,78306623.0,79374000.0,80366833.0,81439168.0,82721793.0,83718667.0,84715250.0,85623206.0,86759000.0,87901750.0,88833669.0,89830373.0,90919167.0,91919332.0,92970043.0,94128377.0,95164835.0,96112042.0,97190126.0,98051000.0,99188417.0,100312331.0,101408836.0,102508292.0,103305459.0,104432918.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/20/new/tukey.json ================================================ [74049.91177352819,74329.61209811227,75075.47963033649,75355.17995492058] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/20/report/index.html ================================================ Clone/FlexStr 0.10 (LocalStr - Boxed)/20 - Criterion.rs

Clone/FlexStr 0.10 (LocalStr - Boxed)/20

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 74.662 µs 75.015 µs 75.779 µs
0.8197703 0.8218882 0.8121110
Mean 74.740 µs 75.090 µs 75.702 µs
Std. Dev. 242.01 ns 2.7408 µs 4.6405 µs
Median 74.652 µs 74.675 µs 74.703 µs
MAD 83.636 ns 109.93 ns 153.40 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.3130% +0.2147% +1.0122% (p = 0.68 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/500/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (LocalStr - Boxed)","value_str":"500","throughput":null,"full_id":"Clone/FlexStr 0.10 (LocalStr - Boxed)/500","directory_name":"Clone/FlexStr 0.10 (LocalStr - Boxed)/500","title":"Clone/FlexStr 0.10 (LocalStr - Boxed)/500"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/500/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":541141.4350854007,"upper_bound":544749.3055706545},"point_estimate":542941.7689889929,"standard_error":920.5208213190151},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":540286.2131147541,"upper_bound":544488.1654007334},"point_estimate":542306.260330948,"standard_error":1088.0826633944248},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":6858.206973774259,"upper_bound":11593.977974302703},"point_estimate":9052.800518334687,"standard_error":1217.2868728112187},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":541562.8912921556,"upper_bound":546604.4789066693},"point_estimate":544025.143647111,"standard_error":1287.48564545301},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7971.153465942713,"upper_bound":10356.103570610363},"point_estimate":9222.86466450478,"standard_error":609.2579578065763}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/500/base/sample.json ================================================ {"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":[1061833.0,2111751.0,3127125.0,4298251.0,5248417.0,6329625.0,7330625.0,8425584.0,9577041.0,10456999.0,11894459.0,13049165.0,14097082.0,15301288.0,16338045.0,17651417.0,18672626.0,19976792.0,20854956.0,21965542.0,22709835.0,23892001.0,25042459.0,26278580.0,27300290.0,28205294.0,29469044.0,30274458.0,31576334.0,32546291.0,33392918.0,34438918.0,35604999.0,36725918.0,38022792.0,38893125.0,39922749.0,40977209.0,42264918.0,43310623.0,44097916.0,45249875.0,46273250.0,47798334.0,49675710.0,50762499.0,52523583.0,53115040.0,52852374.0,53679665.0,55211914.0,58568707.0,58822457.0,58258291.0,59042958.0,61152835.0,63621001.0,64428415.0,63374664.0,64461916.0,65914918.0,68841002.0,69364500.0,68637792.0,70499791.0,73810250.0,74000665.0,72532041.0,73834625.0,76456415.0,79067374.0,79002666.0,78091289.0,81169832.0,84982002.0,83268415.0,83263334.0,86462459.0,87530209.0,85975834.0,88754375.0,90843877.0,90399458.0,91400626.0,94196543.0,93276707.0,93001457.0,96779585.0,99101544.0,98513083.0,100591625.0,102417499.0,99476873.0,100122751.0,101678750.0,102585459.0,103436250.0,104408875.0,105179374.0,106447416.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/500/base/tukey.json ================================================ [501163.4244641075,519159.3776981554,567148.5863222831,585144.5395563311] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/500/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.008289338428069259,"upper_bound":0.016566326510021136},"point_estimate":0.012398867302167549,"standard_error":0.0021142514089612214},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.009864360028446484,"upper_bound":0.018742222146273413},"point_estimate":0.014259555773278754,"standard_error":0.0022624648517378166}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/500/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (LocalStr - Boxed)","value_str":"500","throughput":null,"full_id":"Clone/FlexStr 0.10 (LocalStr - Boxed)/500","directory_name":"Clone/FlexStr 0.10 (LocalStr - Boxed)/500","title":"Clone/FlexStr 0.10 (LocalStr - Boxed)/500"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/500/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":541141.4350854007,"upper_bound":544749.3055706545},"point_estimate":542941.7689889929,"standard_error":920.5208213190151},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":540286.2131147541,"upper_bound":544488.1654007334},"point_estimate":542306.260330948,"standard_error":1088.0826633944248},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":6858.206973774259,"upper_bound":11593.977974302703},"point_estimate":9052.800518334687,"standard_error":1217.2868728112187},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":541562.8912921556,"upper_bound":546604.4789066693},"point_estimate":544025.143647111,"standard_error":1287.48564545301},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7971.153465942713,"upper_bound":10356.103570610363},"point_estimate":9222.86466450478,"standard_error":609.2579578065763}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/500/new/sample.json ================================================ {"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":[1061833.0,2111751.0,3127125.0,4298251.0,5248417.0,6329625.0,7330625.0,8425584.0,9577041.0,10456999.0,11894459.0,13049165.0,14097082.0,15301288.0,16338045.0,17651417.0,18672626.0,19976792.0,20854956.0,21965542.0,22709835.0,23892001.0,25042459.0,26278580.0,27300290.0,28205294.0,29469044.0,30274458.0,31576334.0,32546291.0,33392918.0,34438918.0,35604999.0,36725918.0,38022792.0,38893125.0,39922749.0,40977209.0,42264918.0,43310623.0,44097916.0,45249875.0,46273250.0,47798334.0,49675710.0,50762499.0,52523583.0,53115040.0,52852374.0,53679665.0,55211914.0,58568707.0,58822457.0,58258291.0,59042958.0,61152835.0,63621001.0,64428415.0,63374664.0,64461916.0,65914918.0,68841002.0,69364500.0,68637792.0,70499791.0,73810250.0,74000665.0,72532041.0,73834625.0,76456415.0,79067374.0,79002666.0,78091289.0,81169832.0,84982002.0,83268415.0,83263334.0,86462459.0,87530209.0,85975834.0,88754375.0,90843877.0,90399458.0,91400626.0,94196543.0,93276707.0,93001457.0,96779585.0,99101544.0,98513083.0,100591625.0,102417499.0,99476873.0,100122751.0,101678750.0,102585459.0,103436250.0,104408875.0,105179374.0,106447416.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/500/new/tukey.json ================================================ [501163.4244641075,519159.3776981554,567148.5863222831,585144.5395563311] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/500/report/index.html ================================================ Clone/FlexStr 0.10 (LocalStr - Boxed)/500 - Criterion.rs

Clone/FlexStr 0.10 (LocalStr - Boxed)/500

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 541.56 µs 544.03 µs 546.60 µs
0.9558182 0.9586553 0.9555429
Mean 541.14 µs 542.94 µs 544.75 µs
Std. Dev. 7.9712 µs 9.2229 µs 10.356 µs
Median 540.29 µs 542.31 µs 544.49 µs
MAD 6.8582 µs 9.0528 µs 11.594 µs

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time +0.8289% +1.2399% +1.6566% (p = 0.00 < 0.05)
Change within noise threshold.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Boxed)/report/index.html ================================================ Clone/FlexStr 0.10 (LocalStr - Boxed) Summary - Criterion.rs

Clone/FlexStr 0.10 (LocalStr - Boxed)

Violin Plot

Violin Plot

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

Line Chart

Line Chart

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

Clone/FlexStr 0.10 (LocalStr - Boxed)/0

PDF of Slope Regression

Clone/FlexStr 0.10 (LocalStr - Boxed)/10

PDF of Slope Regression

Clone/FlexStr 0.10 (LocalStr - Boxed)/20

PDF of Slope Regression

Clone/FlexStr 0.10 (LocalStr - Boxed)/100

PDF of Slope Regression

Clone/FlexStr 0.10 (LocalStr - Boxed)/500

PDF of Slope Regression
================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/0/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (LocalStr - Optimized)","value_str":"0","throughput":null,"full_id":"Clone/FlexStr 0.10 (LocalStr - Optimized)/0","directory_name":"Clone/FlexStr 0.10 (LocalStr - Optimized)/0","title":"Clone/FlexStr 0.10 (LocalStr - Optimized)/0"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/0/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12470.671286058832,"upper_bound":12525.183963122074},"point_estimate":12495.089098122888,"standard_error":13.927910106166875},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12444.717929292929,"upper_bound":12458.136817528735},"point_estimate":12453.043359374999,"standard_error":3.8947342803415825},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":20.898719261731777,"upper_bound":36.58192514888553},"point_estimate":30.30467497006427,"standard_error":4.006630240641267},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12450.02028312689,"upper_bound":12490.622543249508},"point_estimate":12467.847771168908,"standard_error":10.469192077427335},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":74.53211436566595,"upper_bound":199.38752302889318},"point_estimate":139.93517296509944,"standard_error":32.59097109410112}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/0/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[80.0,160.0,240.0,320.0,400.0,480.0,560.0,640.0,720.0,800.0,880.0,960.0,1040.0,1120.0,1200.0,1280.0,1360.0,1440.0,1520.0,1600.0,1680.0,1760.0,1840.0,1920.0,2000.0,2080.0,2160.0,2240.0,2320.0,2400.0,2480.0,2560.0,2640.0,2720.0,2800.0,2880.0,2960.0,3040.0,3120.0,3200.0,3280.0,3360.0,3440.0,3520.0,3600.0,3680.0,3760.0,3840.0,3920.0,4000.0,4080.0,4160.0,4240.0,4320.0,4400.0,4480.0,4560.0,4640.0,4720.0,4800.0,4880.0,4960.0,5040.0,5120.0,5200.0,5280.0,5360.0,5440.0,5520.0,5600.0,5680.0,5760.0,5840.0,5920.0,6000.0,6080.0,6160.0,6240.0,6320.0,6400.0,6480.0,6560.0,6640.0,6720.0,6800.0,6880.0,6960.0,7040.0,7120.0,7200.0,7280.0,7360.0,7440.0,7520.0,7600.0,7680.0,7760.0,7840.0,7920.0,8000.0],"times":[1005001.0,1996542.0,3007249.0,4100585.0,5216290.0,6179000.0,6980666.0,8168417.0,9032414.0,10021414.0,11026165.0,11957248.0,12955084.0,15016540.0,15003584.0,15990502.0,16971667.0,17931750.0,18967126.0,19929540.0,20919291.0,21902041.0,22896832.0,24082375.0,24862042.0,25866417.0,26883667.0,27837459.0,29082749.0,30851750.0,30893502.0,31887749.0,33030543.0,33822546.0,34802666.0,35850500.0,36769419.0,37824665.0,38919624.0,39769792.0,40767957.0,41905207.0,42744584.0,43915583.0,44958622.0,45796125.0,46784833.0,47821373.0,48737792.0,49831082.0,50818207.0,51864418.0,52740208.0,53886543.0,54865917.0,55858293.0,56714541.0,57687876.0,58665833.0,59675877.0,60716500.0,61839918.0,62782250.0,63783584.0,64727625.0,65698624.0,66631582.0,67613043.0,68642960.0,69582082.0,70696250.0,71650374.0,72588582.0,73594041.0,74554375.0,75780210.0,76674294.0,77613458.0,78687168.0,79578249.0,80470750.0,81480873.0,82503501.0,84966794.0,85494333.0,85814544.0,86711455.0,88620459.0,91212293.0,90423583.0,90825790.0,91703542.0,92694040.0,93611250.0,94504084.0,95474249.0,96453251.0,97384082.0,98562166.0,99481542.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/0/base/tukey.json ================================================ [12309.089671265265,12371.923157033561,12539.479119082353,12602.31260485065] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/0/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.011563454230334442,"upper_bound":-0.00309208930288829},"point_estimate":-0.007332598511719746,"standard_error":0.002157024364882625},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0026990647938627266,"upper_bound":-0.000037086056826729497},"point_estimate":-0.0013990893600346332,"standard_error":0.0007364623085415503}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/0/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (LocalStr - Optimized)","value_str":"0","throughput":null,"full_id":"Clone/FlexStr 0.10 (LocalStr - Optimized)/0","directory_name":"Clone/FlexStr 0.10 (LocalStr - Optimized)/0","title":"Clone/FlexStr 0.10 (LocalStr - Optimized)/0"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/0/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12470.671286058832,"upper_bound":12525.183963122074},"point_estimate":12495.089098122888,"standard_error":13.927910106166875},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12444.717929292929,"upper_bound":12458.136817528735},"point_estimate":12453.043359374999,"standard_error":3.8947342803415825},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":20.898719261731777,"upper_bound":36.58192514888553},"point_estimate":30.30467497006427,"standard_error":4.006630240641267},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12450.02028312689,"upper_bound":12490.622543249508},"point_estimate":12467.847771168908,"standard_error":10.469192077427335},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":74.53211436566595,"upper_bound":199.38752302889318},"point_estimate":139.93517296509944,"standard_error":32.59097109410112}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/0/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[80.0,160.0,240.0,320.0,400.0,480.0,560.0,640.0,720.0,800.0,880.0,960.0,1040.0,1120.0,1200.0,1280.0,1360.0,1440.0,1520.0,1600.0,1680.0,1760.0,1840.0,1920.0,2000.0,2080.0,2160.0,2240.0,2320.0,2400.0,2480.0,2560.0,2640.0,2720.0,2800.0,2880.0,2960.0,3040.0,3120.0,3200.0,3280.0,3360.0,3440.0,3520.0,3600.0,3680.0,3760.0,3840.0,3920.0,4000.0,4080.0,4160.0,4240.0,4320.0,4400.0,4480.0,4560.0,4640.0,4720.0,4800.0,4880.0,4960.0,5040.0,5120.0,5200.0,5280.0,5360.0,5440.0,5520.0,5600.0,5680.0,5760.0,5840.0,5920.0,6000.0,6080.0,6160.0,6240.0,6320.0,6400.0,6480.0,6560.0,6640.0,6720.0,6800.0,6880.0,6960.0,7040.0,7120.0,7200.0,7280.0,7360.0,7440.0,7520.0,7600.0,7680.0,7760.0,7840.0,7920.0,8000.0],"times":[1005001.0,1996542.0,3007249.0,4100585.0,5216290.0,6179000.0,6980666.0,8168417.0,9032414.0,10021414.0,11026165.0,11957248.0,12955084.0,15016540.0,15003584.0,15990502.0,16971667.0,17931750.0,18967126.0,19929540.0,20919291.0,21902041.0,22896832.0,24082375.0,24862042.0,25866417.0,26883667.0,27837459.0,29082749.0,30851750.0,30893502.0,31887749.0,33030543.0,33822546.0,34802666.0,35850500.0,36769419.0,37824665.0,38919624.0,39769792.0,40767957.0,41905207.0,42744584.0,43915583.0,44958622.0,45796125.0,46784833.0,47821373.0,48737792.0,49831082.0,50818207.0,51864418.0,52740208.0,53886543.0,54865917.0,55858293.0,56714541.0,57687876.0,58665833.0,59675877.0,60716500.0,61839918.0,62782250.0,63783584.0,64727625.0,65698624.0,66631582.0,67613043.0,68642960.0,69582082.0,70696250.0,71650374.0,72588582.0,73594041.0,74554375.0,75780210.0,76674294.0,77613458.0,78687168.0,79578249.0,80470750.0,81480873.0,82503501.0,84966794.0,85494333.0,85814544.0,86711455.0,88620459.0,91212293.0,90423583.0,90825790.0,91703542.0,92694040.0,93611250.0,94504084.0,95474249.0,96453251.0,97384082.0,98562166.0,99481542.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/0/new/tukey.json ================================================ [12309.089671265265,12371.923157033561,12539.479119082353,12602.31260485065] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/0/report/index.html ================================================ Clone/FlexStr 0.10 (LocalStr - Optimized)/0 - Criterion.rs

Clone/FlexStr 0.10 (LocalStr - Optimized)/0

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 12.450 µs 12.468 µs 12.491 µs
0.9944329 0.9947153 0.9942545
Mean 12.471 µs 12.495 µs 12.525 µs
Std. Dev. 74.532 ns 139.94 ns 199.39 ns
Median 12.445 µs 12.453 µs 12.458 µs
MAD 20.899 ns 30.305 ns 36.582 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −1.1563% −0.7333% −0.3092% (p = 0.00 < 0.05)
Change within noise threshold.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/10/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (LocalStr - Optimized)","value_str":"10","throughput":null,"full_id":"Clone/FlexStr 0.10 (LocalStr - Optimized)/10","directory_name":"Clone/FlexStr 0.10 (LocalStr - Optimized)/10","title":"Clone/FlexStr 0.10 (LocalStr - Optimized)/10"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/10/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12454.754381152188,"upper_bound":12488.031297018297},"point_estimate":12469.793472509324,"standard_error":8.509584374582126},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12435.970111111112,"upper_bound":12446.13829787234},"point_estimate":12440.032739082366,"standard_error":2.7653765840022313},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":14.262378586281665,"upper_bound":31.607390218077697},"point_estimate":22.70622413852387,"standard_error":4.612657790186051},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12437.948039495284,"upper_bound":12463.202518134303},"point_estimate":12448.543925336191,"standard_error":6.520564261134343},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":44.98428401332156,"upper_bound":120.17332237047161},"point_estimate":85.58675418243939,"standard_error":19.45014232596844}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/10/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[80.0,160.0,240.0,320.0,400.0,480.0,560.0,640.0,720.0,800.0,880.0,960.0,1040.0,1120.0,1200.0,1280.0,1360.0,1440.0,1520.0,1600.0,1680.0,1760.0,1840.0,1920.0,2000.0,2080.0,2160.0,2240.0,2320.0,2400.0,2480.0,2560.0,2640.0,2720.0,2800.0,2880.0,2960.0,3040.0,3120.0,3200.0,3280.0,3360.0,3440.0,3520.0,3600.0,3680.0,3760.0,3840.0,3920.0,4000.0,4080.0,4160.0,4240.0,4320.0,4400.0,4480.0,4560.0,4640.0,4720.0,4800.0,4880.0,4960.0,5040.0,5120.0,5200.0,5280.0,5360.0,5440.0,5520.0,5600.0,5680.0,5760.0,5840.0,5920.0,6000.0,6080.0,6160.0,6240.0,6320.0,6400.0,6480.0,6560.0,6640.0,6720.0,6800.0,6880.0,6960.0,7040.0,7120.0,7200.0,7280.0,7360.0,7440.0,7520.0,7600.0,7680.0,7760.0,7840.0,7920.0,8000.0],"times":[1004042.0,1987084.0,2981458.0,4153085.0,5051874.0,6018209.0,7045709.0,8020124.0,8984415.0,9996459.0,11072457.0,12045416.0,12972708.0,13915754.0,15145167.0,15959123.0,16921917.0,17958920.0,18914333.0,19910708.0,20897540.0,21929003.0,22896334.0,23878084.0,25088416.0,26020210.0,26871374.0,27859957.0,28838999.0,29858748.0,31423210.0,31986958.0,32909458.0,33882792.0,34824250.0,35883166.0,36916710.0,37910084.0,38784791.0,39763708.0,40848876.0,41977751.0,42757625.0,43769502.0,44768084.0,45752125.0,46767833.0,47729167.0,48701332.0,49712999.0,50931251.0,51859706.0,52855290.0,53914958.0,54710292.0,55677415.0,56732082.0,57684206.0,58681416.0,60618667.0,63030460.0,61694042.0,62629916.0,63631792.0,64722584.0,65612416.0,66676334.0,67927085.0,68646624.0,69623375.0,70588084.0,71611418.0,72633544.0,73829458.0,74618168.0,75491668.0,76514959.0,77469667.0,78480168.0,79517791.0,80455917.0,81762333.0,82492373.0,83554251.0,84457957.0,85470751.0,86822917.0,87639167.0,88512001.0,89434125.0,90439459.0,91465582.0,92626416.0,93594960.0,94553791.0,95454124.0,96440251.0,97555625.0,99171167.0,99465918.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/10/base/tukey.json ================================================ [12302.62549971847,12365.979514182152,12534.92355275197,12598.277567215651] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/10/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.006391330319191972,"upper_bound":0.0004367454340063524},"point_estimate":-0.0024911993097345153,"standard_error":0.0017580658329031786},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0015341114738588457,"upper_bound":-0.0004035290628214838},"point_estimate":-0.0010775956204961412,"standard_error":0.0002928554611143784}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/10/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (LocalStr - Optimized)","value_str":"10","throughput":null,"full_id":"Clone/FlexStr 0.10 (LocalStr - Optimized)/10","directory_name":"Clone/FlexStr 0.10 (LocalStr - Optimized)/10","title":"Clone/FlexStr 0.10 (LocalStr - Optimized)/10"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/10/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12454.754381152188,"upper_bound":12488.031297018297},"point_estimate":12469.793472509324,"standard_error":8.509584374582126},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12435.970111111112,"upper_bound":12446.13829787234},"point_estimate":12440.032739082366,"standard_error":2.7653765840022313},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":14.262378586281665,"upper_bound":31.607390218077697},"point_estimate":22.70622413852387,"standard_error":4.612657790186051},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12437.948039495284,"upper_bound":12463.202518134303},"point_estimate":12448.543925336191,"standard_error":6.520564261134343},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":44.98428401332156,"upper_bound":120.17332237047161},"point_estimate":85.58675418243939,"standard_error":19.45014232596844}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/10/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[80.0,160.0,240.0,320.0,400.0,480.0,560.0,640.0,720.0,800.0,880.0,960.0,1040.0,1120.0,1200.0,1280.0,1360.0,1440.0,1520.0,1600.0,1680.0,1760.0,1840.0,1920.0,2000.0,2080.0,2160.0,2240.0,2320.0,2400.0,2480.0,2560.0,2640.0,2720.0,2800.0,2880.0,2960.0,3040.0,3120.0,3200.0,3280.0,3360.0,3440.0,3520.0,3600.0,3680.0,3760.0,3840.0,3920.0,4000.0,4080.0,4160.0,4240.0,4320.0,4400.0,4480.0,4560.0,4640.0,4720.0,4800.0,4880.0,4960.0,5040.0,5120.0,5200.0,5280.0,5360.0,5440.0,5520.0,5600.0,5680.0,5760.0,5840.0,5920.0,6000.0,6080.0,6160.0,6240.0,6320.0,6400.0,6480.0,6560.0,6640.0,6720.0,6800.0,6880.0,6960.0,7040.0,7120.0,7200.0,7280.0,7360.0,7440.0,7520.0,7600.0,7680.0,7760.0,7840.0,7920.0,8000.0],"times":[1004042.0,1987084.0,2981458.0,4153085.0,5051874.0,6018209.0,7045709.0,8020124.0,8984415.0,9996459.0,11072457.0,12045416.0,12972708.0,13915754.0,15145167.0,15959123.0,16921917.0,17958920.0,18914333.0,19910708.0,20897540.0,21929003.0,22896334.0,23878084.0,25088416.0,26020210.0,26871374.0,27859957.0,28838999.0,29858748.0,31423210.0,31986958.0,32909458.0,33882792.0,34824250.0,35883166.0,36916710.0,37910084.0,38784791.0,39763708.0,40848876.0,41977751.0,42757625.0,43769502.0,44768084.0,45752125.0,46767833.0,47729167.0,48701332.0,49712999.0,50931251.0,51859706.0,52855290.0,53914958.0,54710292.0,55677415.0,56732082.0,57684206.0,58681416.0,60618667.0,63030460.0,61694042.0,62629916.0,63631792.0,64722584.0,65612416.0,66676334.0,67927085.0,68646624.0,69623375.0,70588084.0,71611418.0,72633544.0,73829458.0,74618168.0,75491668.0,76514959.0,77469667.0,78480168.0,79517791.0,80455917.0,81762333.0,82492373.0,83554251.0,84457957.0,85470751.0,86822917.0,87639167.0,88512001.0,89434125.0,90439459.0,91465582.0,92626416.0,93594960.0,94553791.0,95454124.0,96440251.0,97555625.0,99171167.0,99465918.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/10/new/tukey.json ================================================ [12302.62549971847,12365.979514182152,12534.92355275197,12598.277567215651] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/10/report/index.html ================================================ Clone/FlexStr 0.10 (LocalStr - Optimized)/10 - Criterion.rs

Clone/FlexStr 0.10 (LocalStr - Optimized)/10

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 12.438 µs 12.449 µs 12.463 µs
0.9967535 0.9968535 0.9966622
Mean 12.455 µs 12.470 µs 12.488 µs
Std. Dev. 44.984 ns 85.587 ns 120.17 ns
Median 12.436 µs 12.440 µs 12.446 µs
MAD 14.262 ns 22.706 ns 31.607 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.6391% −0.2491% +0.0437% (p = 0.17 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/100/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (LocalStr - Optimized)","value_str":"100","throughput":null,"full_id":"Clone/FlexStr 0.10 (LocalStr - Optimized)/100","directory_name":"Clone/FlexStr 0.10 (LocalStr - Optimized)/100","title":"Clone/FlexStr 0.10 (LocalStr - Optimized)/100"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/100/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40277.08704669481,"upper_bound":40616.053817665845},"point_estimate":40403.275214359535,"standard_error":92.77886735887995},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40219.287142857145,"upper_bound":40280.731339743594},"point_estimate":40250.72680851064,"standard_error":15.291605041829946},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":74.63920224674516,"upper_bound":128.70242047200577},"point_estimate":92.84539389832358,"standard_error":14.259774730900363},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40251.84369422597,"upper_bound":40931.192872362575},"point_estimate":40475.34190418206,"standard_error":198.10552759580435},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":161.38833589422666,"upper_bound":1560.0966769900256},"point_estimate":930.3746802720026,"standard_error":460.16564663111166}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/100/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[25.0,50.0,75.0,100.0,125.0,150.0,175.0,200.0,225.0,250.0,275.0,300.0,325.0,350.0,375.0,400.0,425.0,450.0,475.0,500.0,525.0,550.0,575.0,600.0,625.0,650.0,675.0,700.0,725.0,750.0,775.0,800.0,825.0,850.0,875.0,900.0,925.0,950.0,975.0,1000.0,1025.0,1050.0,1075.0,1100.0,1125.0,1150.0,1175.0,1200.0,1225.0,1250.0,1275.0,1300.0,1325.0,1350.0,1375.0,1400.0,1425.0,1450.0,1475.0,1500.0,1525.0,1550.0,1575.0,1600.0,1625.0,1650.0,1675.0,1700.0,1725.0,1750.0,1775.0,1800.0,1825.0,1850.0,1875.0,1900.0,1925.0,1950.0,1975.0,2000.0,2025.0,2050.0,2075.0,2100.0,2125.0,2150.0,2175.0,2200.0,2225.0,2250.0,2275.0,2300.0,2325.0,2350.0,2375.0,2400.0,2425.0,2450.0,2475.0,2500.0],"times":[1016622.0,2007333.0,3016583.0,4144583.0,5260749.0,6156581.0,7158751.0,8031291.0,9077207.0,10020624.0,11154663.0,12059292.0,13061958.0,14044252.0,15291626.0,16123084.0,17121668.0,18134250.0,19116124.0,20056000.0,21139248.0,22259875.0,23136001.0,24117709.0,25112251.0,26189710.0,27262042.0,28473874.0,29092874.0,30135334.0,31187751.0,32192124.0,33146125.0,34174417.0,35145126.0,36142791.0,37172082.0,38220582.0,39266373.0,40144251.0,41193292.0,42213793.0,43214417.0,44191084.0,45211083.0,46227127.0,47345706.0,48212253.0,49169500.0,50367374.0,51247916.0,52348957.0,53386834.0,54680501.0,55308875.0,56307002.0,57279582.0,58204709.0,59378166.0,60257165.0,61462084.0,62385082.0,63429251.0,64244336.0,65455458.0,66589584.0,67609877.0,68556250.0,69663999.0,70460584.0,71451375.0,72572458.0,73658998.0,74538333.0,75356126.0,76406252.0,77588706.0,78553584.0,79769625.0,80779832.0,81639332.0,82407751.0,83755043.0,84514251.0,85926375.0,86397915.0,107067335.0,89361959.0,89634874.0,90462500.0,91637877.0,92703375.0,93476000.0,94594582.0,96415791.0,96674834.0,97336292.0,98282916.0,99533919.0,100352167.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/100/base/tukey.json ================================================ [39809.486105420045,39999.54044783197,40506.35202759711,40696.40637000904] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/100/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.05040104337210119,"upper_bound":-0.0038619107959158815},"point_estimate":-0.024950674579305887,"standard_error":0.011951362656517445},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0022699237224418356,"upper_bound":0.0009225106309479642},"point_estimate":-0.0006156672052086698,"standard_error":0.0008870087498302985}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/100/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (LocalStr - Optimized)","value_str":"100","throughput":null,"full_id":"Clone/FlexStr 0.10 (LocalStr - Optimized)/100","directory_name":"Clone/FlexStr 0.10 (LocalStr - Optimized)/100","title":"Clone/FlexStr 0.10 (LocalStr - Optimized)/100"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/100/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40277.08704669481,"upper_bound":40616.053817665845},"point_estimate":40403.275214359535,"standard_error":92.77886735887995},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40219.287142857145,"upper_bound":40280.731339743594},"point_estimate":40250.72680851064,"standard_error":15.291605041829946},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":74.63920224674516,"upper_bound":128.70242047200577},"point_estimate":92.84539389832358,"standard_error":14.259774730900363},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40251.84369422597,"upper_bound":40931.192872362575},"point_estimate":40475.34190418206,"standard_error":198.10552759580435},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":161.38833589422666,"upper_bound":1560.0966769900256},"point_estimate":930.3746802720026,"standard_error":460.16564663111166}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/100/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[25.0,50.0,75.0,100.0,125.0,150.0,175.0,200.0,225.0,250.0,275.0,300.0,325.0,350.0,375.0,400.0,425.0,450.0,475.0,500.0,525.0,550.0,575.0,600.0,625.0,650.0,675.0,700.0,725.0,750.0,775.0,800.0,825.0,850.0,875.0,900.0,925.0,950.0,975.0,1000.0,1025.0,1050.0,1075.0,1100.0,1125.0,1150.0,1175.0,1200.0,1225.0,1250.0,1275.0,1300.0,1325.0,1350.0,1375.0,1400.0,1425.0,1450.0,1475.0,1500.0,1525.0,1550.0,1575.0,1600.0,1625.0,1650.0,1675.0,1700.0,1725.0,1750.0,1775.0,1800.0,1825.0,1850.0,1875.0,1900.0,1925.0,1950.0,1975.0,2000.0,2025.0,2050.0,2075.0,2100.0,2125.0,2150.0,2175.0,2200.0,2225.0,2250.0,2275.0,2300.0,2325.0,2350.0,2375.0,2400.0,2425.0,2450.0,2475.0,2500.0],"times":[1016622.0,2007333.0,3016583.0,4144583.0,5260749.0,6156581.0,7158751.0,8031291.0,9077207.0,10020624.0,11154663.0,12059292.0,13061958.0,14044252.0,15291626.0,16123084.0,17121668.0,18134250.0,19116124.0,20056000.0,21139248.0,22259875.0,23136001.0,24117709.0,25112251.0,26189710.0,27262042.0,28473874.0,29092874.0,30135334.0,31187751.0,32192124.0,33146125.0,34174417.0,35145126.0,36142791.0,37172082.0,38220582.0,39266373.0,40144251.0,41193292.0,42213793.0,43214417.0,44191084.0,45211083.0,46227127.0,47345706.0,48212253.0,49169500.0,50367374.0,51247916.0,52348957.0,53386834.0,54680501.0,55308875.0,56307002.0,57279582.0,58204709.0,59378166.0,60257165.0,61462084.0,62385082.0,63429251.0,64244336.0,65455458.0,66589584.0,67609877.0,68556250.0,69663999.0,70460584.0,71451375.0,72572458.0,73658998.0,74538333.0,75356126.0,76406252.0,77588706.0,78553584.0,79769625.0,80779832.0,81639332.0,82407751.0,83755043.0,84514251.0,85926375.0,86397915.0,107067335.0,89361959.0,89634874.0,90462500.0,91637877.0,92703375.0,93476000.0,94594582.0,96415791.0,96674834.0,97336292.0,98282916.0,99533919.0,100352167.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/100/new/tukey.json ================================================ [39809.486105420045,39999.54044783197,40506.35202759711,40696.40637000904] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/100/report/index.html ================================================ Clone/FlexStr 0.10 (LocalStr - Optimized)/100 - Criterion.rs

Clone/FlexStr 0.10 (LocalStr - Optimized)/100

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 40.252 µs 40.475 µs 40.931 µs
0.8636493 0.8669019 0.8535294
Mean 40.277 µs 40.403 µs 40.616 µs
Std. Dev. 161.39 ns 930.37 ns 1.5601 µs
Median 40.219 µs 40.251 µs 40.281 µs
MAD 74.639 ns 92.845 ns 128.70 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −5.0401% −2.4951% −0.3862% (p = 0.03 < 0.05)
Change within noise threshold.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/20/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (LocalStr - Optimized)","value_str":"20","throughput":null,"full_id":"Clone/FlexStr 0.10 (LocalStr - Optimized)/20","directory_name":"Clone/FlexStr 0.10 (LocalStr - Optimized)/20","title":"Clone/FlexStr 0.10 (LocalStr - Optimized)/20"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/20/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12462.723009524088,"upper_bound":12506.501875939757},"point_estimate":12482.356565024702,"standard_error":11.212420570013078},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12439.40311587147,"upper_bound":12450.604067233866},"point_estimate":12444.102299147507,"standard_error":3.0966209981463355},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":16.491179521389938,"upper_bound":31.5983973920359},"point_estimate":22.946097335234256,"standard_error":3.87224227280651},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12445.249205461105,"upper_bound":12468.47577263211},"point_estimate":12455.56286778914,"standard_error":5.939886157738566},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":60.31377083471497,"upper_bound":161.4636195474016},"point_estimate":112.67859019076569,"standard_error":26.56779974910198}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/20/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[79.0,158.0,237.0,316.0,395.0,474.0,553.0,632.0,711.0,790.0,869.0,948.0,1027.0,1106.0,1185.0,1264.0,1343.0,1422.0,1501.0,1580.0,1659.0,1738.0,1817.0,1896.0,1975.0,2054.0,2133.0,2212.0,2291.0,2370.0,2449.0,2528.0,2607.0,2686.0,2765.0,2844.0,2923.0,3002.0,3081.0,3160.0,3239.0,3318.0,3397.0,3476.0,3555.0,3634.0,3713.0,3792.0,3871.0,3950.0,4029.0,4108.0,4187.0,4266.0,4345.0,4424.0,4503.0,4582.0,4661.0,4740.0,4819.0,4898.0,4977.0,5056.0,5135.0,5214.0,5293.0,5372.0,5451.0,5530.0,5609.0,5688.0,5767.0,5846.0,5925.0,6004.0,6083.0,6162.0,6241.0,6320.0,6399.0,6478.0,6557.0,6636.0,6715.0,6794.0,6873.0,6952.0,7031.0,7110.0,7189.0,7268.0,7347.0,7426.0,7505.0,7584.0,7663.0,7742.0,7821.0,7900.0],"times":[1000626.0,1969543.0,3056334.0,4047290.0,5225373.0,6079083.0,6972629.0,7935376.0,8841959.0,9888623.0,10839416.0,11803666.0,12774375.0,13907668.0,14824293.0,15777249.0,16738668.0,17894958.0,18665500.0,19670458.0,20650790.0,21619332.0,22629960.0,23589834.0,24573584.0,25548334.0,26555959.0,27480044.0,28487918.0,29451582.0,30469666.0,31472457.0,32443915.0,33427458.0,34607959.0,35370584.0,36399125.0,37441084.0,38364375.0,39284876.0,40250668.0,41269875.0,42216251.0,43196206.0,44253378.0,45199834.0,46155458.0,47148000.0,48169752.0,49169751.0,50060250.0,51067373.0,52459748.0,53028625.0,54735585.0,55684459.0,56110793.0,57008583.0,57917874.0,58900999.0,59999461.0,60857793.0,61860331.0,63103707.0,63876335.0,65275168.0,65792164.0,66767416.0,67747584.0,68719253.0,70786627.0,70772916.0,72024625.0,73040833.0,73822041.0,74802957.0,75699624.0,78049083.0,77776833.0,78775248.0,79615834.0,80525878.0,81458335.0,82759417.0,84074956.0,84665625.0,85459333.0,86338875.0,87351126.0,88459750.0,89404374.0,90360625.0,91322624.0,92291957.0,93478373.0,94349333.0,95574249.0,96215751.0,97230957.0,98146875.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/20/base/tukey.json ================================================ [12310.735744925008,12371.239020222973,12532.581087684208,12593.08436298217] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/20/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0010595056745273388,"upper_bound":0.0029199401464259696},"point_estimate":0.0009182876918072402,"standard_error":0.0010277751494686613},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.000921857558276673,"upper_bound":0.000687794856655671},"point_estimate":-0.00008909669871082215,"standard_error":0.00043609744170441126}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/20/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (LocalStr - Optimized)","value_str":"20","throughput":null,"full_id":"Clone/FlexStr 0.10 (LocalStr - Optimized)/20","directory_name":"Clone/FlexStr 0.10 (LocalStr - Optimized)/20","title":"Clone/FlexStr 0.10 (LocalStr - Optimized)/20"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/20/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12462.723009524088,"upper_bound":12506.501875939757},"point_estimate":12482.356565024702,"standard_error":11.212420570013078},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12439.40311587147,"upper_bound":12450.604067233866},"point_estimate":12444.102299147507,"standard_error":3.0966209981463355},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":16.491179521389938,"upper_bound":31.5983973920359},"point_estimate":22.946097335234256,"standard_error":3.87224227280651},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12445.249205461105,"upper_bound":12468.47577263211},"point_estimate":12455.56286778914,"standard_error":5.939886157738566},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":60.31377083471497,"upper_bound":161.4636195474016},"point_estimate":112.67859019076569,"standard_error":26.56779974910198}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/20/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[79.0,158.0,237.0,316.0,395.0,474.0,553.0,632.0,711.0,790.0,869.0,948.0,1027.0,1106.0,1185.0,1264.0,1343.0,1422.0,1501.0,1580.0,1659.0,1738.0,1817.0,1896.0,1975.0,2054.0,2133.0,2212.0,2291.0,2370.0,2449.0,2528.0,2607.0,2686.0,2765.0,2844.0,2923.0,3002.0,3081.0,3160.0,3239.0,3318.0,3397.0,3476.0,3555.0,3634.0,3713.0,3792.0,3871.0,3950.0,4029.0,4108.0,4187.0,4266.0,4345.0,4424.0,4503.0,4582.0,4661.0,4740.0,4819.0,4898.0,4977.0,5056.0,5135.0,5214.0,5293.0,5372.0,5451.0,5530.0,5609.0,5688.0,5767.0,5846.0,5925.0,6004.0,6083.0,6162.0,6241.0,6320.0,6399.0,6478.0,6557.0,6636.0,6715.0,6794.0,6873.0,6952.0,7031.0,7110.0,7189.0,7268.0,7347.0,7426.0,7505.0,7584.0,7663.0,7742.0,7821.0,7900.0],"times":[1000626.0,1969543.0,3056334.0,4047290.0,5225373.0,6079083.0,6972629.0,7935376.0,8841959.0,9888623.0,10839416.0,11803666.0,12774375.0,13907668.0,14824293.0,15777249.0,16738668.0,17894958.0,18665500.0,19670458.0,20650790.0,21619332.0,22629960.0,23589834.0,24573584.0,25548334.0,26555959.0,27480044.0,28487918.0,29451582.0,30469666.0,31472457.0,32443915.0,33427458.0,34607959.0,35370584.0,36399125.0,37441084.0,38364375.0,39284876.0,40250668.0,41269875.0,42216251.0,43196206.0,44253378.0,45199834.0,46155458.0,47148000.0,48169752.0,49169751.0,50060250.0,51067373.0,52459748.0,53028625.0,54735585.0,55684459.0,56110793.0,57008583.0,57917874.0,58900999.0,59999461.0,60857793.0,61860331.0,63103707.0,63876335.0,65275168.0,65792164.0,66767416.0,67747584.0,68719253.0,70786627.0,70772916.0,72024625.0,73040833.0,73822041.0,74802957.0,75699624.0,78049083.0,77776833.0,78775248.0,79615834.0,80525878.0,81458335.0,82759417.0,84074956.0,84665625.0,85459333.0,86338875.0,87351126.0,88459750.0,89404374.0,90360625.0,91322624.0,92291957.0,93478373.0,94349333.0,95574249.0,96215751.0,97230957.0,98146875.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/20/new/tukey.json ================================================ [12310.735744925008,12371.239020222973,12532.581087684208,12593.08436298217] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/20/report/index.html ================================================ Clone/FlexStr 0.10 (LocalStr - Optimized)/20 - Criterion.rs

Clone/FlexStr 0.10 (LocalStr - Optimized)/20

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 12.445 µs 12.456 µs 12.468 µs
0.9978432 0.9979385 0.9977891
Mean 12.463 µs 12.482 µs 12.507 µs
Std. Dev. 60.314 ns 112.68 ns 161.46 ns
Median 12.439 µs 12.444 µs 12.451 µs
MAD 16.491 ns 22.946 ns 31.598 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.1060% +0.0918% +0.2920% (p = 0.39 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/500/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (LocalStr - Optimized)","value_str":"500","throughput":null,"full_id":"Clone/FlexStr 0.10 (LocalStr - Optimized)/500","directory_name":"Clone/FlexStr 0.10 (LocalStr - Optimized)/500","title":"Clone/FlexStr 0.10 (LocalStr - Optimized)/500"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/500/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40265.956707989004,"upper_bound":40365.97729386806},"point_estimate":40312.04735285804,"standard_error":25.610445268028634},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40214.005,"upper_bound":40240.794626865674},"point_estimate":40223.38501774623,"standard_error":7.8150450469235535},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":37.36681433660474,"upper_bound":83.18156804322922},"point_estimate":60.41818053899972,"standard_error":11.671700329729752},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40211.515042539904,"upper_bound":40240.45958658456},"point_estimate":40224.90071168908,"standard_error":7.38295606390128},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":153.62888322681238,"upper_bound":346.3252998903171},"point_estimate":258.5319173438223,"standard_error":49.24541592557944}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/500/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[25.0,50.0,75.0,100.0,125.0,150.0,175.0,200.0,225.0,250.0,275.0,300.0,325.0,350.0,375.0,400.0,425.0,450.0,475.0,500.0,525.0,550.0,575.0,600.0,625.0,650.0,675.0,700.0,725.0,750.0,775.0,800.0,825.0,850.0,875.0,900.0,925.0,950.0,975.0,1000.0,1025.0,1050.0,1075.0,1100.0,1125.0,1150.0,1175.0,1200.0,1225.0,1250.0,1275.0,1300.0,1325.0,1350.0,1375.0,1400.0,1425.0,1450.0,1475.0,1500.0,1525.0,1550.0,1575.0,1600.0,1625.0,1650.0,1675.0,1700.0,1725.0,1750.0,1775.0,1800.0,1825.0,1850.0,1875.0,1900.0,1925.0,1950.0,1975.0,2000.0,2025.0,2050.0,2075.0,2100.0,2125.0,2150.0,2175.0,2200.0,2225.0,2250.0,2275.0,2300.0,2325.0,2350.0,2375.0,2400.0,2425.0,2450.0,2475.0,2500.0],"times":[1016710.0,2015502.0,3018250.0,4112085.0,5219291.0,6176668.0,7193749.0,8047667.0,9089418.0,10049625.0,11136084.0,12072289.0,13139708.0,14143458.0,15290001.0,16093877.0,17120169.0,18093293.0,19136374.0,20199665.0,21128792.0,22152582.0,23230706.0,24194790.0,25148830.0,26147333.0,27384540.0,28238835.0,29156460.0,30174292.0,31172377.0,33006626.0,33713833.0,34140252.0,35182334.0,36300082.0,37185000.0,38295293.0,39331248.0,40183540.0,41228709.0,42249123.0,43230751.0,44212711.0,45328542.0,46305917.0,47259625.0,48214207.0,49328709.0,50305334.0,51253292.0,52343043.0,53238169.0,54273708.0,55250041.0,56251956.0,57219125.0,58502500.0,59455626.0,60325626.0,61339292.0,62283003.0,63300126.0,64267207.0,65447835.0,66339124.0,67403331.0,68607875.0,69303290.0,70349167.0,71430584.0,72385209.0,73309623.0,74395499.0,75394544.0,76415625.0,77364126.0,78331377.0,79297792.0,80634166.0,81482292.0,82408917.0,83412835.0,84338877.0,85444541.0,86511167.0,87373500.0,88459249.0,89402082.0,90411040.0,91454041.0,92514335.0,93457791.0,94435377.0,95456457.0,96390166.0,97516708.0,98546708.0,99749792.0,100739376.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/500/base/tukey.json ================================================ [39881.17784827335,40039.8990711955,40463.15566565456,40621.876888576706] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/500/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.021413416902154384,"upper_bound":-0.0021649710417942585},"point_estimate":-0.009583234731022738,"standard_error":0.005176071802173421},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.002032689149208955,"upper_bound":0.0003229483885692588},"point_estimate":-0.0007091524071523025,"standard_error":0.0005989405419626201}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/500/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (LocalStr - Optimized)","value_str":"500","throughput":null,"full_id":"Clone/FlexStr 0.10 (LocalStr - Optimized)/500","directory_name":"Clone/FlexStr 0.10 (LocalStr - Optimized)/500","title":"Clone/FlexStr 0.10 (LocalStr - Optimized)/500"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/500/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40265.956707989004,"upper_bound":40365.97729386806},"point_estimate":40312.04735285804,"standard_error":25.610445268028634},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40214.005,"upper_bound":40240.794626865674},"point_estimate":40223.38501774623,"standard_error":7.8150450469235535},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":37.36681433660474,"upper_bound":83.18156804322922},"point_estimate":60.41818053899972,"standard_error":11.671700329729752},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40211.515042539904,"upper_bound":40240.45958658456},"point_estimate":40224.90071168908,"standard_error":7.38295606390128},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":153.62888322681238,"upper_bound":346.3252998903171},"point_estimate":258.5319173438223,"standard_error":49.24541592557944}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/500/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[25.0,50.0,75.0,100.0,125.0,150.0,175.0,200.0,225.0,250.0,275.0,300.0,325.0,350.0,375.0,400.0,425.0,450.0,475.0,500.0,525.0,550.0,575.0,600.0,625.0,650.0,675.0,700.0,725.0,750.0,775.0,800.0,825.0,850.0,875.0,900.0,925.0,950.0,975.0,1000.0,1025.0,1050.0,1075.0,1100.0,1125.0,1150.0,1175.0,1200.0,1225.0,1250.0,1275.0,1300.0,1325.0,1350.0,1375.0,1400.0,1425.0,1450.0,1475.0,1500.0,1525.0,1550.0,1575.0,1600.0,1625.0,1650.0,1675.0,1700.0,1725.0,1750.0,1775.0,1800.0,1825.0,1850.0,1875.0,1900.0,1925.0,1950.0,1975.0,2000.0,2025.0,2050.0,2075.0,2100.0,2125.0,2150.0,2175.0,2200.0,2225.0,2250.0,2275.0,2300.0,2325.0,2350.0,2375.0,2400.0,2425.0,2450.0,2475.0,2500.0],"times":[1016710.0,2015502.0,3018250.0,4112085.0,5219291.0,6176668.0,7193749.0,8047667.0,9089418.0,10049625.0,11136084.0,12072289.0,13139708.0,14143458.0,15290001.0,16093877.0,17120169.0,18093293.0,19136374.0,20199665.0,21128792.0,22152582.0,23230706.0,24194790.0,25148830.0,26147333.0,27384540.0,28238835.0,29156460.0,30174292.0,31172377.0,33006626.0,33713833.0,34140252.0,35182334.0,36300082.0,37185000.0,38295293.0,39331248.0,40183540.0,41228709.0,42249123.0,43230751.0,44212711.0,45328542.0,46305917.0,47259625.0,48214207.0,49328709.0,50305334.0,51253292.0,52343043.0,53238169.0,54273708.0,55250041.0,56251956.0,57219125.0,58502500.0,59455626.0,60325626.0,61339292.0,62283003.0,63300126.0,64267207.0,65447835.0,66339124.0,67403331.0,68607875.0,69303290.0,70349167.0,71430584.0,72385209.0,73309623.0,74395499.0,75394544.0,76415625.0,77364126.0,78331377.0,79297792.0,80634166.0,81482292.0,82408917.0,83412835.0,84338877.0,85444541.0,86511167.0,87373500.0,88459249.0,89402082.0,90411040.0,91454041.0,92514335.0,93457791.0,94435377.0,95456457.0,96390166.0,97516708.0,98546708.0,99749792.0,100739376.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/500/new/tukey.json ================================================ [39881.17784827335,40039.8990711955,40463.15566565456,40621.876888576706] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/500/report/index.html ================================================ Clone/FlexStr 0.10 (LocalStr - Optimized)/500 - Criterion.rs

Clone/FlexStr 0.10 (LocalStr - Optimized)/500

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 40.212 µs 40.225 µs 40.240 µs
0.9993198 0.9993350 0.9993145
Mean 40.266 µs 40.312 µs 40.366 µs
Std. Dev. 153.63 ns 258.53 ns 346.33 ns
Median 40.214 µs 40.223 µs 40.241 µs
MAD 37.367 ns 60.418 ns 83.182 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −2.1413% −0.9583% −0.2165% (p = 0.03 < 0.05)
Change within noise threshold.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (LocalStr - Optimized)/report/index.html ================================================ Clone/FlexStr 0.10 (LocalStr - Optimized) Summary - Criterion.rs

Clone/FlexStr 0.10 (LocalStr - Optimized)

Violin Plot

Violin Plot

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

Line Chart

Line Chart

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

Clone/FlexStr 0.10 (LocalStr - Optimized)/0

PDF of Slope Regression

Clone/FlexStr 0.10 (LocalStr - Optimized)/10

PDF of Slope Regression

Clone/FlexStr 0.10 (LocalStr - Optimized)/20

PDF of Slope Regression

Clone/FlexStr 0.10 (LocalStr - Optimized)/100

PDF of Slope Regression

Clone/FlexStr 0.10 (LocalStr - Optimized)/500

PDF of Slope Regression
================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/0/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (SharedStr - Boxed)","value_str":"0","throughput":null,"full_id":"Clone/FlexStr 0.10 (SharedStr - Boxed)/0","directory_name":"Clone/FlexStr 0.10 (SharedStr - Boxed)/0","title":"Clone/FlexStr 0.10 (SharedStr - Boxed)/0"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/0/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":81024.94621305424,"upper_bound":81695.39465534729},"point_estimate":81289.73330818518,"standard_error":177.83252119659394},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":80841.88425925926,"upper_bound":80950.64880952382},"point_estimate":80871.01089340198,"standard_error":29.76604165937697},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":115.58311331415209,"upper_bound":240.64155151714218},"point_estimate":176.4241800454855,"standard_error":31.228518021811148},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":80854.0242749032,"upper_bound":82432.8014666018},"point_estimate":81375.51226786857,"standard_error":463.5769082991296},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":457.4765594424016,"upper_bound":2930.0524550137593},"point_estimate":1786.3145498205497,"standard_error":778.029261868577}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/0/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[12.0,24.0,36.0,48.0,60.0,72.0,84.0,96.0,108.0,120.0,132.0,144.0,156.0,168.0,180.0,192.0,204.0,216.0,228.0,240.0,252.0,264.0,276.0,288.0,300.0,312.0,324.0,336.0,348.0,360.0,372.0,384.0,396.0,408.0,420.0,432.0,444.0,456.0,468.0,480.0,492.0,504.0,516.0,528.0,540.0,552.0,564.0,576.0,588.0,600.0,612.0,624.0,636.0,648.0,660.0,672.0,684.0,696.0,708.0,720.0,732.0,744.0,756.0,768.0,780.0,792.0,804.0,816.0,828.0,840.0,852.0,864.0,876.0,888.0,900.0,912.0,924.0,936.0,948.0,960.0,972.0,984.0,996.0,1008.0,1020.0,1032.0,1044.0,1056.0,1068.0,1080.0,1092.0,1104.0,1116.0,1128.0,1140.0,1152.0,1164.0,1176.0,1188.0,1200.0],"times":[975332.0,1993457.0,2916916.0,4044667.0,5128252.0,5906917.0,6863709.0,7935749.0,8816125.0,9746251.0,10939000.0,11666956.0,12650334.0,13599709.0,14763041.0,15554918.0,16624000.0,17756626.0,18711750.0,19524081.0,20465291.0,21411500.0,22512085.0,23269292.0,24257292.0,25210793.0,26242166.0,27234125.0,28120624.0,29070375.0,30049792.0,31109458.0,32023792.0,33144208.0,33930624.0,34958749.0,36020792.0,36873415.0,37904541.0,38822376.0,39820583.0,40745753.0,41715168.0,42637583.0,43629458.0,44641169.0,45719372.0,46522376.0,47656251.0,48597124.0,49475082.0,50389209.0,51353790.0,52385541.0,53306293.0,54327209.0,55402292.0,56247251.0,57232124.0,58174626.0,59238834.0,60159876.0,61046291.0,62026375.0,63012125.0,63927541.0,64964833.0,65922792.0,66913791.0,67824999.0,68831541.0,70242833.0,70738832.0,71932915.0,72786499.0,73753749.0,74685666.0,75526208.0,76568753.0,77520042.0,78577958.0,79476748.0,80472957.0,81439252.0,82400912.0,83463498.0,84571290.0,85420416.0,86320834.0,87204666.0,88163206.0,90665500.0,90336292.0,91313251.0,92057125.0,93723084.0,94287332.0,114679083.0,96013708.0,97015083.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/0/base/tukey.json ================================================ [79968.76134427042,80381.72898562727,81482.97602924556,81895.94367060243] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/0/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.046104049527195816,"upper_bound":-0.0010644310684283698},"point_estimate":-0.021346302419605778,"standard_error":0.011585988612886183},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0023650587330023695,"upper_bound":0.00029942173996566623},"point_estimate":-0.0008038872383331341,"standard_error":0.0006513524396761291}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/0/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (SharedStr - Boxed)","value_str":"0","throughput":null,"full_id":"Clone/FlexStr 0.10 (SharedStr - Boxed)/0","directory_name":"Clone/FlexStr 0.10 (SharedStr - Boxed)/0","title":"Clone/FlexStr 0.10 (SharedStr - Boxed)/0"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/0/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":81024.94621305424,"upper_bound":81695.39465534729},"point_estimate":81289.73330818518,"standard_error":177.83252119659394},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":80841.88425925926,"upper_bound":80950.64880952382},"point_estimate":80871.01089340198,"standard_error":29.76604165937697},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":115.58311331415209,"upper_bound":240.64155151714218},"point_estimate":176.4241800454855,"standard_error":31.228518021811148},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":80854.0242749032,"upper_bound":82432.8014666018},"point_estimate":81375.51226786857,"standard_error":463.5769082991296},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":457.4765594424016,"upper_bound":2930.0524550137593},"point_estimate":1786.3145498205497,"standard_error":778.029261868577}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/0/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[12.0,24.0,36.0,48.0,60.0,72.0,84.0,96.0,108.0,120.0,132.0,144.0,156.0,168.0,180.0,192.0,204.0,216.0,228.0,240.0,252.0,264.0,276.0,288.0,300.0,312.0,324.0,336.0,348.0,360.0,372.0,384.0,396.0,408.0,420.0,432.0,444.0,456.0,468.0,480.0,492.0,504.0,516.0,528.0,540.0,552.0,564.0,576.0,588.0,600.0,612.0,624.0,636.0,648.0,660.0,672.0,684.0,696.0,708.0,720.0,732.0,744.0,756.0,768.0,780.0,792.0,804.0,816.0,828.0,840.0,852.0,864.0,876.0,888.0,900.0,912.0,924.0,936.0,948.0,960.0,972.0,984.0,996.0,1008.0,1020.0,1032.0,1044.0,1056.0,1068.0,1080.0,1092.0,1104.0,1116.0,1128.0,1140.0,1152.0,1164.0,1176.0,1188.0,1200.0],"times":[975332.0,1993457.0,2916916.0,4044667.0,5128252.0,5906917.0,6863709.0,7935749.0,8816125.0,9746251.0,10939000.0,11666956.0,12650334.0,13599709.0,14763041.0,15554918.0,16624000.0,17756626.0,18711750.0,19524081.0,20465291.0,21411500.0,22512085.0,23269292.0,24257292.0,25210793.0,26242166.0,27234125.0,28120624.0,29070375.0,30049792.0,31109458.0,32023792.0,33144208.0,33930624.0,34958749.0,36020792.0,36873415.0,37904541.0,38822376.0,39820583.0,40745753.0,41715168.0,42637583.0,43629458.0,44641169.0,45719372.0,46522376.0,47656251.0,48597124.0,49475082.0,50389209.0,51353790.0,52385541.0,53306293.0,54327209.0,55402292.0,56247251.0,57232124.0,58174626.0,59238834.0,60159876.0,61046291.0,62026375.0,63012125.0,63927541.0,64964833.0,65922792.0,66913791.0,67824999.0,68831541.0,70242833.0,70738832.0,71932915.0,72786499.0,73753749.0,74685666.0,75526208.0,76568753.0,77520042.0,78577958.0,79476748.0,80472957.0,81439252.0,82400912.0,83463498.0,84571290.0,85420416.0,86320834.0,87204666.0,88163206.0,90665500.0,90336292.0,91313251.0,92057125.0,93723084.0,94287332.0,114679083.0,96013708.0,97015083.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/0/new/tukey.json ================================================ [79968.76134427042,80381.72898562727,81482.97602924556,81895.94367060243] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/0/report/index.html ================================================ Clone/FlexStr 0.10 (SharedStr - Boxed)/0 - Criterion.rs

Clone/FlexStr 0.10 (SharedStr - Boxed)/0

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 80.854 µs 81.376 µs 82.433 µs
0.8549298 0.8591939 0.8419326
Mean 81.025 µs 81.290 µs 81.695 µs
Std. Dev. 457.48 ns 1.7863 µs 2.9301 µs
Median 80.842 µs 80.871 µs 80.951 µs
MAD 115.58 ns 176.42 ns 240.64 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −4.6104% −2.1346% −0.1064% (p = 0.06 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/10/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (SharedStr - Boxed)","value_str":"10","throughput":null,"full_id":"Clone/FlexStr 0.10 (SharedStr - Boxed)/10","directory_name":"Clone/FlexStr 0.10 (SharedStr - Boxed)/10","title":"Clone/FlexStr 0.10 (SharedStr - Boxed)/10"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/10/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":68531.58740584049,"upper_bound":68684.31248960433},"point_estimate":68603.2805657198,"standard_error":39.24467534966742},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":68451.12340425533,"upper_bound":68497.08444444444},"point_estimate":68476.54423076923,"standard_error":12.429850712243095},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":107.47355876887427,"upper_bound":180.54749241753711},"point_estimate":144.59215464359946,"standard_error":19.566637491640588},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":68449.78547181263,"upper_bound":68558.22335132453},"point_estimate":68497.44341106349,"standard_error":27.894800970390705},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":265.20299891056817,"upper_bound":501.5678177229415},"point_estimate":394.11597819275477,"standard_error":60.3383781342735}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/10/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[15.0,30.0,45.0,60.0,75.0,90.0,105.0,120.0,135.0,150.0,165.0,180.0,195.0,210.0,225.0,240.0,255.0,270.0,285.0,300.0,315.0,330.0,345.0,360.0,375.0,390.0,405.0,420.0,435.0,450.0,465.0,480.0,495.0,510.0,525.0,540.0,555.0,570.0,585.0,600.0,615.0,630.0,645.0,660.0,675.0,690.0,705.0,720.0,735.0,750.0,765.0,780.0,795.0,810.0,825.0,840.0,855.0,870.0,885.0,900.0,915.0,930.0,945.0,960.0,975.0,990.0,1005.0,1020.0,1035.0,1050.0,1065.0,1080.0,1095.0,1110.0,1125.0,1140.0,1155.0,1170.0,1185.0,1200.0,1215.0,1230.0,1245.0,1260.0,1275.0,1290.0,1305.0,1320.0,1335.0,1350.0,1365.0,1380.0,1395.0,1410.0,1425.0,1440.0,1455.0,1470.0,1485.0,1500.0],"times":[1033208.0,2049793.0,3075834.0,4209876.0,5249082.0,6259624.0,7288499.0,8376250.0,9501250.0,10348958.0,11393250.0,12326376.0,13517458.0,14445249.0,15442584.0,16452082.0,17492207.0,18525919.0,19517711.0,20558833.0,21581082.0,22646834.0,23729584.0,24650958.0,25713667.0,26715582.0,27735871.0,28794209.0,29794332.0,30839208.0,31878168.0,32878625.0,33898707.0,34891832.0,36042124.0,36963457.0,37918210.0,38933627.0,40046665.0,40974460.0,42030251.0,43037291.0,44093416.0,45117250.0,46185417.0,47670127.0,48274041.0,49275457.0,50240291.0,51598542.0,52308416.0,53413000.0,54403792.0,55447042.0,56402708.0,57394458.0,58560085.0,59479794.0,60648458.0,61647376.0,62610668.0,63575124.0,64601293.0,65655336.0,66720709.0,67900250.0,68712041.0,69842207.0,70851959.0,71897708.0,72909332.0,74222544.0,75254915.0,76725333.0,77172585.0,77952084.0,78978250.0,80062624.0,81030373.0,82368208.0,83265000.0,84601709.0,85131874.0,86147167.0,87128750.0,89585542.0,89268082.0,90267666.0,91232583.0,92337291.0,93763832.0,94378710.0,95528958.0,96516084.0,97651123.0,98525457.0,99644332.0,100566543.0,101653043.0,102533624.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/10/base/tukey.json ================================================ [67727.79185590078,68055.62692382687,68929.8537716298,69257.6888395559] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/10/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.001466218679273573,"upper_bound":0.0015762329100449716},"point_estimate":0.00004142245858718141,"standard_error":0.0007792816991001125},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0006871983167107132,"upper_bound":0.0005421325736845173},"point_estimate":-0.00006335498767529035,"standard_error":0.00031631958329096844}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/10/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (SharedStr - Boxed)","value_str":"10","throughput":null,"full_id":"Clone/FlexStr 0.10 (SharedStr - Boxed)/10","directory_name":"Clone/FlexStr 0.10 (SharedStr - Boxed)/10","title":"Clone/FlexStr 0.10 (SharedStr - Boxed)/10"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/10/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":68531.58740584049,"upper_bound":68684.31248960433},"point_estimate":68603.2805657198,"standard_error":39.24467534966742},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":68451.12340425533,"upper_bound":68497.08444444444},"point_estimate":68476.54423076923,"standard_error":12.429850712243095},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":107.47355876887427,"upper_bound":180.54749241753711},"point_estimate":144.59215464359946,"standard_error":19.566637491640588},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":68449.78547181263,"upper_bound":68558.22335132453},"point_estimate":68497.44341106349,"standard_error":27.894800970390705},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":265.20299891056817,"upper_bound":501.5678177229415},"point_estimate":394.11597819275477,"standard_error":60.3383781342735}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/10/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[15.0,30.0,45.0,60.0,75.0,90.0,105.0,120.0,135.0,150.0,165.0,180.0,195.0,210.0,225.0,240.0,255.0,270.0,285.0,300.0,315.0,330.0,345.0,360.0,375.0,390.0,405.0,420.0,435.0,450.0,465.0,480.0,495.0,510.0,525.0,540.0,555.0,570.0,585.0,600.0,615.0,630.0,645.0,660.0,675.0,690.0,705.0,720.0,735.0,750.0,765.0,780.0,795.0,810.0,825.0,840.0,855.0,870.0,885.0,900.0,915.0,930.0,945.0,960.0,975.0,990.0,1005.0,1020.0,1035.0,1050.0,1065.0,1080.0,1095.0,1110.0,1125.0,1140.0,1155.0,1170.0,1185.0,1200.0,1215.0,1230.0,1245.0,1260.0,1275.0,1290.0,1305.0,1320.0,1335.0,1350.0,1365.0,1380.0,1395.0,1410.0,1425.0,1440.0,1455.0,1470.0,1485.0,1500.0],"times":[1033208.0,2049793.0,3075834.0,4209876.0,5249082.0,6259624.0,7288499.0,8376250.0,9501250.0,10348958.0,11393250.0,12326376.0,13517458.0,14445249.0,15442584.0,16452082.0,17492207.0,18525919.0,19517711.0,20558833.0,21581082.0,22646834.0,23729584.0,24650958.0,25713667.0,26715582.0,27735871.0,28794209.0,29794332.0,30839208.0,31878168.0,32878625.0,33898707.0,34891832.0,36042124.0,36963457.0,37918210.0,38933627.0,40046665.0,40974460.0,42030251.0,43037291.0,44093416.0,45117250.0,46185417.0,47670127.0,48274041.0,49275457.0,50240291.0,51598542.0,52308416.0,53413000.0,54403792.0,55447042.0,56402708.0,57394458.0,58560085.0,59479794.0,60648458.0,61647376.0,62610668.0,63575124.0,64601293.0,65655336.0,66720709.0,67900250.0,68712041.0,69842207.0,70851959.0,71897708.0,72909332.0,74222544.0,75254915.0,76725333.0,77172585.0,77952084.0,78978250.0,80062624.0,81030373.0,82368208.0,83265000.0,84601709.0,85131874.0,86147167.0,87128750.0,89585542.0,89268082.0,90267666.0,91232583.0,92337291.0,93763832.0,94378710.0,95528958.0,96516084.0,97651123.0,98525457.0,99644332.0,100566543.0,101653043.0,102533624.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/10/new/tukey.json ================================================ [67727.79185590078,68055.62692382687,68929.8537716298,69257.6888395559] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/10/report/index.html ================================================ Clone/FlexStr 0.10 (SharedStr - Boxed)/10 - Criterion.rs

Clone/FlexStr 0.10 (SharedStr - Boxed)/10

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 68.450 µs 68.497 µs 68.558 µs
0.9986314 0.9986987 0.9985893
Mean 68.532 µs 68.603 µs 68.684 µs
Std. Dev. 265.20 ns 394.12 ns 501.57 ns
Median 68.451 µs 68.477 µs 68.497 µs
MAD 107.47 ns 144.59 ns 180.55 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.1466% +0.0041% +0.1576% (p = 0.95 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/100/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (SharedStr - Boxed)","value_str":"100","throughput":null,"full_id":"Clone/FlexStr 0.10 (SharedStr - Boxed)/100","directory_name":"Clone/FlexStr 0.10 (SharedStr - Boxed)/100","title":"Clone/FlexStr 0.10 (SharedStr - Boxed)/100"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/100/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":250056.12665371134,"upper_bound":256174.42605125884},"point_estimate":252322.12550116162,"standard_error":1716.9240894126626},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":249174.2708333333,"upper_bound":250100.44578291557},"point_estimate":249582.57738646894,"standard_error":231.74146734791674},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1264.5548666625546,"upper_bound":2393.7595862522808},"point_estimate":1963.1178322925664,"standard_error":290.22049180747507},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":249836.03095106725,"upper_bound":254016.66406685536},"point_estimate":251388.87338776415,"standard_error":1120.7449657984437},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3002.2147452913346,"upper_bound":29060.641370816586},"point_estimate":17235.823027617604,"standard_error":8887.793411239863}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/100/base/sample.json ================================================ {"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":[1005377.0,2010873.0,3013751.0,4123251.0,5070292.0,6544959.0,7483248.0,8117125.0,8948041.0,10013335.0,11306749.0,12156127.0,13002709.0,13986499.0,15060040.0,16056793.0,16966458.0,17990582.0,18842833.0,19975250.0,20893541.0,21814041.0,22894083.0,23872335.0,24873748.0,25733750.0,26710665.0,27558916.0,28464167.0,29398293.0,31021375.0,31958668.0,32863584.0,33907416.0,34835249.0,35821083.0,36882497.0,37895415.0,38846247.0,39814501.0,41848542.0,41742375.0,42592460.0,43685917.0,44630415.0,76918461.0,47245333.0,47897332.0,48771792.0,49698251.0,50811334.0,51922836.0,52426459.0,55582499.0,55355249.0,55553960.0,56636042.0,58258127.0,59103167.0,59714295.0,60360416.0,60911502.0,64756792.0,67100125.0,67102207.0,67786874.0,66428376.0,67108291.0,68052374.0,70305499.0,72799874.0,72378085.0,75320208.0,74923376.0,74705377.0,76229915.0,76923167.0,78014915.0,79959749.0,80396124.0,80411498.0,81761667.0,82845997.0,83628417.0,84792166.0,86314042.0,86560000.0,88316959.0,89054499.0,88458084.0,91078042.0,92213542.0,92739499.0,93926626.0,94591666.0,96561665.0,96981418.0,98895377.0,98752625.0,99579249.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/100/base/tukey.json ================================================ [241175.55855463704,244955.22021533165,255034.31797718396,258813.9796378786] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/100/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.0005410980538654256,"upper_bound":0.02866136013288419},"point_estimate":0.010187089883753275,"standard_error":0.007340199455508591},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0022535626549763377,"upper_bound":0.0026514103493122665},"point_estimate":0.00029431715549343984,"standard_error":0.0012273720264493278}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/100/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (SharedStr - Boxed)","value_str":"100","throughput":null,"full_id":"Clone/FlexStr 0.10 (SharedStr - Boxed)/100","directory_name":"Clone/FlexStr 0.10 (SharedStr - Boxed)/100","title":"Clone/FlexStr 0.10 (SharedStr - Boxed)/100"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/100/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":250056.12665371134,"upper_bound":256174.42605125884},"point_estimate":252322.12550116162,"standard_error":1716.9240894126626},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":249174.2708333333,"upper_bound":250100.44578291557},"point_estimate":249582.57738646894,"standard_error":231.74146734791674},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1264.5548666625546,"upper_bound":2393.7595862522808},"point_estimate":1963.1178322925664,"standard_error":290.22049180747507},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":249836.03095106725,"upper_bound":254016.66406685536},"point_estimate":251388.87338776415,"standard_error":1120.7449657984437},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3002.2147452913346,"upper_bound":29060.641370816586},"point_estimate":17235.823027617604,"standard_error":8887.793411239863}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/100/new/sample.json ================================================ {"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":[1005377.0,2010873.0,3013751.0,4123251.0,5070292.0,6544959.0,7483248.0,8117125.0,8948041.0,10013335.0,11306749.0,12156127.0,13002709.0,13986499.0,15060040.0,16056793.0,16966458.0,17990582.0,18842833.0,19975250.0,20893541.0,21814041.0,22894083.0,23872335.0,24873748.0,25733750.0,26710665.0,27558916.0,28464167.0,29398293.0,31021375.0,31958668.0,32863584.0,33907416.0,34835249.0,35821083.0,36882497.0,37895415.0,38846247.0,39814501.0,41848542.0,41742375.0,42592460.0,43685917.0,44630415.0,76918461.0,47245333.0,47897332.0,48771792.0,49698251.0,50811334.0,51922836.0,52426459.0,55582499.0,55355249.0,55553960.0,56636042.0,58258127.0,59103167.0,59714295.0,60360416.0,60911502.0,64756792.0,67100125.0,67102207.0,67786874.0,66428376.0,67108291.0,68052374.0,70305499.0,72799874.0,72378085.0,75320208.0,74923376.0,74705377.0,76229915.0,76923167.0,78014915.0,79959749.0,80396124.0,80411498.0,81761667.0,82845997.0,83628417.0,84792166.0,86314042.0,86560000.0,88316959.0,89054499.0,88458084.0,91078042.0,92213542.0,92739499.0,93926626.0,94591666.0,96561665.0,96981418.0,98895377.0,98752625.0,99579249.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/100/new/tukey.json ================================================ [241175.55855463704,244955.22021533165,255034.31797718396,258813.9796378786] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/100/report/index.html ================================================ Clone/FlexStr 0.10 (SharedStr - Boxed)/100 - Criterion.rs

Clone/FlexStr 0.10 (SharedStr - Boxed)/100

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 249.84 µs 251.39 µs 254.02 µs
0.7023705 0.7050955 0.6973478
Mean 250.06 µs 252.32 µs 256.17 µs
Std. Dev. 3.0022 µs 17.236 µs 29.061 µs
Median 249.17 µs 249.58 µs 250.10 µs
MAD 1.2646 µs 1.9631 µs 2.3938 µs

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time +0.0541% +1.0187% +2.8661% (p = 0.11 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/20/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (SharedStr - Boxed)","value_str":"20","throughput":null,"full_id":"Clone/FlexStr 0.10 (SharedStr - Boxed)/20","directory_name":"Clone/FlexStr 0.10 (SharedStr - Boxed)/20","title":"Clone/FlexStr 0.10 (SharedStr - Boxed)/20"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/20/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":74729.02792932006,"upper_bound":74964.9137773068},"point_estimate":74835.95539392672,"standard_error":60.452554482757506},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":74616.25210084034,"upper_bound":74711.83858911986},"point_estimate":74664.3350515464,"standard_error":25.727072677166632},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":134.09092390651398,"upper_bound":242.97981141658093},"point_estimate":199.96261908457757,"standard_error":29.405101492574357},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":74701.50401219483,"upper_bound":74945.8546018158},"point_estimate":74808.59052439358,"standard_error":63.1062759438826},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":316.208474081306,"upper_bound":837.4271309001429},"point_estimate":606.1901984344352,"standard_error":131.99598708360742}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/20/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[14.0,28.0,42.0,56.0,70.0,84.0,98.0,112.0,126.0,140.0,154.0,168.0,182.0,196.0,210.0,224.0,238.0,252.0,266.0,280.0,294.0,308.0,322.0,336.0,350.0,364.0,378.0,392.0,406.0,420.0,434.0,448.0,462.0,476.0,490.0,504.0,518.0,532.0,546.0,560.0,574.0,588.0,602.0,616.0,630.0,644.0,658.0,672.0,686.0,700.0,714.0,728.0,742.0,756.0,770.0,784.0,798.0,812.0,826.0,840.0,854.0,868.0,882.0,896.0,910.0,924.0,938.0,952.0,966.0,980.0,994.0,1008.0,1022.0,1036.0,1050.0,1064.0,1078.0,1092.0,1106.0,1120.0,1134.0,1148.0,1162.0,1176.0,1190.0,1204.0,1218.0,1232.0,1246.0,1260.0,1274.0,1288.0,1302.0,1316.0,1330.0,1344.0,1358.0,1372.0,1386.0,1400.0],"times":[1055583.0,2093668.0,3126124.0,4342458.0,5486331.0,6318168.0,7298501.0,8410459.0,9381624.0,10481459.0,11497750.0,12601499.0,13634501.0,14802167.0,15698041.0,16723290.0,17758668.0,18802793.0,19831541.0,20972792.0,21927125.0,23024499.0,24030332.0,25055250.0,26116915.0,27143919.0,28159958.0,29208084.0,30336705.0,31292957.0,32411250.0,33399000.0,34670127.0,35560626.0,36516961.0,37922376.0,38621876.0,39695582.0,40772791.0,41730624.0,42773042.0,43802625.0,44864958.0,45897458.0,46966500.0,48402000.0,49072250.0,50078458.0,51127917.0,52435916.0,53194709.0,54474917.0,55307876.0,56323834.0,57833125.0,58908335.0,59533625.0,60593041.0,61631499.0,62735666.0,63882625.0,64830168.0,67322544.0,66902544.0,67820874.0,68904873.0,69879625.0,70988374.0,71993209.0,73098667.0,74409250.0,75221502.0,76544335.0,77596374.0,78484957.0,79277916.0,80675250.0,81546498.0,82518834.0,86083375.0,87238001.0,85865042.0,87068708.0,87984248.0,88862581.0,90067166.0,91098374.0,92044417.0,93297708.0,94040792.0,95058876.0,96024125.0,97571040.0,98561250.0,99372918.0,100271042.0,101399084.0,102377583.0,103573793.0,104487918.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/20/base/tukey.json ================================================ [73651.40982663409,74104.89040661108,75314.17195321643,75767.65253319344] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/20/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0023281083813225622,"upper_bound":0.0019548025724809284},"point_estimate":-0.00019334654091818226,"standard_error":0.00108773892095659},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.001201511209551358,"upper_bound":0.000623980760924292},"point_estimate":-0.00007589091413173765,"standard_error":0.0004640027525701145}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/20/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (SharedStr - Boxed)","value_str":"20","throughput":null,"full_id":"Clone/FlexStr 0.10 (SharedStr - Boxed)/20","directory_name":"Clone/FlexStr 0.10 (SharedStr - Boxed)/20","title":"Clone/FlexStr 0.10 (SharedStr - Boxed)/20"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/20/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":74729.02792932006,"upper_bound":74964.9137773068},"point_estimate":74835.95539392672,"standard_error":60.452554482757506},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":74616.25210084034,"upper_bound":74711.83858911986},"point_estimate":74664.3350515464,"standard_error":25.727072677166632},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":134.09092390651398,"upper_bound":242.97981141658093},"point_estimate":199.96261908457757,"standard_error":29.405101492574357},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":74701.50401219483,"upper_bound":74945.8546018158},"point_estimate":74808.59052439358,"standard_error":63.1062759438826},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":316.208474081306,"upper_bound":837.4271309001429},"point_estimate":606.1901984344352,"standard_error":131.99598708360742}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/20/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[14.0,28.0,42.0,56.0,70.0,84.0,98.0,112.0,126.0,140.0,154.0,168.0,182.0,196.0,210.0,224.0,238.0,252.0,266.0,280.0,294.0,308.0,322.0,336.0,350.0,364.0,378.0,392.0,406.0,420.0,434.0,448.0,462.0,476.0,490.0,504.0,518.0,532.0,546.0,560.0,574.0,588.0,602.0,616.0,630.0,644.0,658.0,672.0,686.0,700.0,714.0,728.0,742.0,756.0,770.0,784.0,798.0,812.0,826.0,840.0,854.0,868.0,882.0,896.0,910.0,924.0,938.0,952.0,966.0,980.0,994.0,1008.0,1022.0,1036.0,1050.0,1064.0,1078.0,1092.0,1106.0,1120.0,1134.0,1148.0,1162.0,1176.0,1190.0,1204.0,1218.0,1232.0,1246.0,1260.0,1274.0,1288.0,1302.0,1316.0,1330.0,1344.0,1358.0,1372.0,1386.0,1400.0],"times":[1055583.0,2093668.0,3126124.0,4342458.0,5486331.0,6318168.0,7298501.0,8410459.0,9381624.0,10481459.0,11497750.0,12601499.0,13634501.0,14802167.0,15698041.0,16723290.0,17758668.0,18802793.0,19831541.0,20972792.0,21927125.0,23024499.0,24030332.0,25055250.0,26116915.0,27143919.0,28159958.0,29208084.0,30336705.0,31292957.0,32411250.0,33399000.0,34670127.0,35560626.0,36516961.0,37922376.0,38621876.0,39695582.0,40772791.0,41730624.0,42773042.0,43802625.0,44864958.0,45897458.0,46966500.0,48402000.0,49072250.0,50078458.0,51127917.0,52435916.0,53194709.0,54474917.0,55307876.0,56323834.0,57833125.0,58908335.0,59533625.0,60593041.0,61631499.0,62735666.0,63882625.0,64830168.0,67322544.0,66902544.0,67820874.0,68904873.0,69879625.0,70988374.0,71993209.0,73098667.0,74409250.0,75221502.0,76544335.0,77596374.0,78484957.0,79277916.0,80675250.0,81546498.0,82518834.0,86083375.0,87238001.0,85865042.0,87068708.0,87984248.0,88862581.0,90067166.0,91098374.0,92044417.0,93297708.0,94040792.0,95058876.0,96024125.0,97571040.0,98561250.0,99372918.0,100271042.0,101399084.0,102377583.0,103573793.0,104487918.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/20/new/tukey.json ================================================ [73651.40982663409,74104.89040661108,75314.17195321643,75767.65253319344] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/20/report/index.html ================================================ Clone/FlexStr 0.10 (SharedStr - Boxed)/20 - Criterion.rs

Clone/FlexStr 0.10 (SharedStr - Boxed)/20

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 74.702 µs 74.809 µs 74.946 µs
0.9940861 0.9943683 0.9939046
Mean 74.729 µs 74.836 µs 74.965 µs
Std. Dev. 316.21 ns 606.19 ns 837.43 ns
Median 74.616 µs 74.664 µs 74.712 µs
MAD 134.09 ns 199.96 ns 242.98 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.2328% −0.0193% +0.1955% (p = 0.87 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/500/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (SharedStr - Boxed)","value_str":"500","throughput":null,"full_id":"Clone/FlexStr 0.10 (SharedStr - Boxed)/500","directory_name":"Clone/FlexStr 0.10 (SharedStr - Boxed)/500","title":"Clone/FlexStr 0.10 (SharedStr - Boxed)/500"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/500/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":520759.19974001095,"upper_bound":523306.3868506508},"point_estimate":522023.71987097576,"standard_error":648.4376791416852},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":519699.365942029,"upper_bound":523116.0625},"point_estimate":521390.40073710075,"standard_error":818.1720591588803},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4862.325362684626,"upper_bound":7771.995590525346},"point_estimate":6572.620076194652,"standard_error":734.2369898410672},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":518428.77426288795,"upper_bound":521033.49527189945},"point_estimate":519612.5794783508,"standard_error":666.623695631909},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":5459.047168752231,"upper_bound":7520.013174713686},"point_estimate":6503.453252394881,"standard_error":529.6262744104178}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/500/base/sample.json ================================================ {"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":[1039042.0,2031293.0,3054083.0,4151873.0,5238708.0,6220416.0,7342876.0,8091041.0,9243875.0,10260541.0,11741706.0,12610957.0,13685957.0,14748791.0,15885333.0,17142625.0,18087124.0,19196250.0,20109958.0,21227791.0,22111916.0,23266086.0,24223332.0,25256542.0,26429378.0,27603707.0,28396501.0,29402168.0,30673082.0,31826208.0,32813667.0,33540084.0,34990792.0,35790624.0,36560250.0,37672623.0,38580665.0,39878294.0,40793876.0,41613791.0,43051333.0,44387124.0,45176710.0,45917751.0,46985542.0,48085461.0,49007125.0,50022041.0,51921586.0,51839667.0,53358333.0,54285917.0,54884749.0,58838499.0,57356251.0,58588999.0,59253125.0,60027918.0,61180751.0,62260830.0,63451666.0,64174498.0,65047623.0,66436667.0,67474874.0,68154666.0,69266165.0,70417165.0,71743127.0,72600874.0,73571542.0,77135791.0,76883208.0,78217125.0,80100999.0,79293497.0,80157583.0,81700834.0,82281207.0,82661374.0,83891626.0,85543251.0,85313498.0,86708375.0,87923041.0,89536834.0,91098792.0,90938958.0,91786543.0,92571749.0,93866957.0,94537416.0,96435837.0,96934209.0,98196959.0,99262999.0,99644918.0,100734124.0,101834044.0,103225667.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/500/base/tukey.json ================================================ [491055.06491564284,504288.8917459193,539579.0966266566,552812.923456933] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/500/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0022590892016247587,"upper_bound":0.005062783382751346},"point_estimate":0.001441200398091702,"standard_error":0.0018662352672927068},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0031997931157319087,"upper_bound":0.007217704409331338},"point_estimate":0.002311343501286922,"standard_error":0.0026349538523486767}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/500/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (SharedStr - Boxed)","value_str":"500","throughput":null,"full_id":"Clone/FlexStr 0.10 (SharedStr - Boxed)/500","directory_name":"Clone/FlexStr 0.10 (SharedStr - Boxed)/500","title":"Clone/FlexStr 0.10 (SharedStr - Boxed)/500"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/500/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":520759.19974001095,"upper_bound":523306.3868506508},"point_estimate":522023.71987097576,"standard_error":648.4376791416852},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":519699.365942029,"upper_bound":523116.0625},"point_estimate":521390.40073710075,"standard_error":818.1720591588803},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4862.325362684626,"upper_bound":7771.995590525346},"point_estimate":6572.620076194652,"standard_error":734.2369898410672},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":518428.77426288795,"upper_bound":521033.49527189945},"point_estimate":519612.5794783508,"standard_error":666.623695631909},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":5459.047168752231,"upper_bound":7520.013174713686},"point_estimate":6503.453252394881,"standard_error":529.6262744104178}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/500/new/sample.json ================================================ {"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":[1039042.0,2031293.0,3054083.0,4151873.0,5238708.0,6220416.0,7342876.0,8091041.0,9243875.0,10260541.0,11741706.0,12610957.0,13685957.0,14748791.0,15885333.0,17142625.0,18087124.0,19196250.0,20109958.0,21227791.0,22111916.0,23266086.0,24223332.0,25256542.0,26429378.0,27603707.0,28396501.0,29402168.0,30673082.0,31826208.0,32813667.0,33540084.0,34990792.0,35790624.0,36560250.0,37672623.0,38580665.0,39878294.0,40793876.0,41613791.0,43051333.0,44387124.0,45176710.0,45917751.0,46985542.0,48085461.0,49007125.0,50022041.0,51921586.0,51839667.0,53358333.0,54285917.0,54884749.0,58838499.0,57356251.0,58588999.0,59253125.0,60027918.0,61180751.0,62260830.0,63451666.0,64174498.0,65047623.0,66436667.0,67474874.0,68154666.0,69266165.0,70417165.0,71743127.0,72600874.0,73571542.0,77135791.0,76883208.0,78217125.0,80100999.0,79293497.0,80157583.0,81700834.0,82281207.0,82661374.0,83891626.0,85543251.0,85313498.0,86708375.0,87923041.0,89536834.0,91098792.0,90938958.0,91786543.0,92571749.0,93866957.0,94537416.0,96435837.0,96934209.0,98196959.0,99262999.0,99644918.0,100734124.0,101834044.0,103225667.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/500/new/tukey.json ================================================ [491055.06491564284,504288.8917459193,539579.0966266566,552812.923456933] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/500/report/index.html ================================================ Clone/FlexStr 0.10 (SharedStr - Boxed)/500 - Criterion.rs

Clone/FlexStr 0.10 (SharedStr - Boxed)/500

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 518.43 µs 519.61 µs 521.03 µs
0.9839708 0.9846877 0.9836552
Mean 520.76 µs 522.02 µs 523.31 µs
Std. Dev. 5.4590 µs 6.5035 µs 7.5200 µs
Median 519.70 µs 521.39 µs 523.12 µs
MAD 4.8623 µs 6.5726 µs 7.7720 µs

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.2259% +0.1441% +0.5063% (p = 0.43 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Boxed)/report/index.html ================================================ Clone/FlexStr 0.10 (SharedStr - Boxed) Summary - Criterion.rs

Clone/FlexStr 0.10 (SharedStr - Boxed)

Violin Plot

Violin Plot

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

Line Chart

Line Chart

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

Clone/FlexStr 0.10 (SharedStr - Boxed)/0

PDF of Slope Regression

Clone/FlexStr 0.10 (SharedStr - Boxed)/10

PDF of Slope Regression

Clone/FlexStr 0.10 (SharedStr - Boxed)/20

PDF of Slope Regression

Clone/FlexStr 0.10 (SharedStr - Boxed)/100

PDF of Slope Regression

Clone/FlexStr 0.10 (SharedStr - Boxed)/500

PDF of Slope Regression
================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/0/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (SharedStr - Optimized)","value_str":"0","throughput":null,"full_id":"Clone/FlexStr 0.10 (SharedStr - Optimized)/0","directory_name":"Clone/FlexStr 0.10 (SharedStr - Optimized)/0","title":"Clone/FlexStr 0.10 (SharedStr - Optimized)/0"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/0/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12547.85853586002,"upper_bound":12633.597218502277},"point_estimate":12588.502253605191,"standard_error":21.885329476644507},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12469.703411526554,"upper_bound":12532.498538011696},"point_estimate":12483.653871457489,"standard_error":15.692450361967298},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":49.180544372185615,"upper_bound":134.11677393473892},"point_estimate":76.44599760829941,"standard_error":20.351971753850844},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12523.568877380096,"upper_bound":12607.53296524051},"point_estimate":12562.960616886905,"standard_error":21.51794148596246},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":159.6755446667976,"upper_bound":274.7599380074064},"point_estimate":218.62759277358006,"standard_error":29.57676999559917}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/0/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[76.0,152.0,228.0,304.0,380.0,456.0,532.0,608.0,684.0,760.0,836.0,912.0,988.0,1064.0,1140.0,1216.0,1292.0,1368.0,1444.0,1520.0,1596.0,1672.0,1748.0,1824.0,1900.0,1976.0,2052.0,2128.0,2204.0,2280.0,2356.0,2432.0,2508.0,2584.0,2660.0,2736.0,2812.0,2888.0,2964.0,3040.0,3116.0,3192.0,3268.0,3344.0,3420.0,3496.0,3572.0,3648.0,3724.0,3800.0,3876.0,3952.0,4028.0,4104.0,4180.0,4256.0,4332.0,4408.0,4484.0,4560.0,4636.0,4712.0,4788.0,4864.0,4940.0,5016.0,5092.0,5168.0,5244.0,5320.0,5396.0,5472.0,5548.0,5624.0,5700.0,5776.0,5852.0,5928.0,6004.0,6080.0,6156.0,6232.0,6308.0,6384.0,6460.0,6536.0,6612.0,6688.0,6764.0,6840.0,6916.0,6992.0,7068.0,7144.0,7220.0,7296.0,7372.0,7448.0,7524.0,7600.0],"times":[1022126.0,2067459.0,2937582.0,3856166.0,4864375.0,5710750.0,6704874.0,7793332.0,8609500.0,9532125.0,10488249.0,11373541.0,12321168.0,13264417.0,14295583.0,15187627.0,16070375.0,17144458.0,18000125.0,19087460.0,19876084.0,20796208.0,21799251.0,23008000.0,24484958.0,24599209.0,25523126.0,26552916.0,27392334.0,28387041.0,29290210.0,30305209.0,31278750.0,32218834.0,33064543.0,34066667.0,34945583.0,35941916.0,36806000.0,37823500.0,38732499.0,39652207.0,40601168.0,41960457.0,44084210.0,45489669.0,46696918.0,45609042.0,46445124.0,47372166.0,48786458.0,51231249.0,51302873.0,51083334.0,52073584.0,54181126.0,56253209.0,56434208.0,55786625.0,56814125.0,58197292.0,60786706.0,60293541.0,60838042.0,61676624.0,63957875.0,65408041.0,64414874.0,65314625.0,67214874.0,69890207.0,68104000.0,69394252.0,71170293.0,73515665.0,72029041.0,72785542.0,75736082.0,76117997.0,75891540.0,77340292.0,81008084.0,78526126.0,79633583.0,83016291.0,83077667.0,82625252.0,83445210.0,84092918.0,85821750.0,86413336.0,87332543.0,87869419.0,88989873.0,89713749.0,90616874.0,91766332.0,92685125.0,93577002.0,94490500.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/0/base/tukey.json ================================================ [11812.336146386646,12130.40881437291,12978.60259566961,13296.675263655872] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/0/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.0051931027812565315,"upper_bound":0.012489114939971471},"point_estimate":0.00884486018730346,"standard_error":0.0018878330521708122},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.0018959520782608763,"upper_bound":0.007139267667896245},"point_estimate":0.0031683697115398868,"standard_error":0.0012034002067241383}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/0/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (SharedStr - Optimized)","value_str":"0","throughput":null,"full_id":"Clone/FlexStr 0.10 (SharedStr - Optimized)/0","directory_name":"Clone/FlexStr 0.10 (SharedStr - Optimized)/0","title":"Clone/FlexStr 0.10 (SharedStr - Optimized)/0"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/0/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12547.85853586002,"upper_bound":12633.597218502277},"point_estimate":12588.502253605191,"standard_error":21.885329476644507},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12469.703411526554,"upper_bound":12532.498538011696},"point_estimate":12483.653871457489,"standard_error":15.692450361967298},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":49.180544372185615,"upper_bound":134.11677393473892},"point_estimate":76.44599760829941,"standard_error":20.351971753850844},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12523.568877380096,"upper_bound":12607.53296524051},"point_estimate":12562.960616886905,"standard_error":21.51794148596246},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":159.6755446667976,"upper_bound":274.7599380074064},"point_estimate":218.62759277358006,"standard_error":29.57676999559917}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/0/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[76.0,152.0,228.0,304.0,380.0,456.0,532.0,608.0,684.0,760.0,836.0,912.0,988.0,1064.0,1140.0,1216.0,1292.0,1368.0,1444.0,1520.0,1596.0,1672.0,1748.0,1824.0,1900.0,1976.0,2052.0,2128.0,2204.0,2280.0,2356.0,2432.0,2508.0,2584.0,2660.0,2736.0,2812.0,2888.0,2964.0,3040.0,3116.0,3192.0,3268.0,3344.0,3420.0,3496.0,3572.0,3648.0,3724.0,3800.0,3876.0,3952.0,4028.0,4104.0,4180.0,4256.0,4332.0,4408.0,4484.0,4560.0,4636.0,4712.0,4788.0,4864.0,4940.0,5016.0,5092.0,5168.0,5244.0,5320.0,5396.0,5472.0,5548.0,5624.0,5700.0,5776.0,5852.0,5928.0,6004.0,6080.0,6156.0,6232.0,6308.0,6384.0,6460.0,6536.0,6612.0,6688.0,6764.0,6840.0,6916.0,6992.0,7068.0,7144.0,7220.0,7296.0,7372.0,7448.0,7524.0,7600.0],"times":[1022126.0,2067459.0,2937582.0,3856166.0,4864375.0,5710750.0,6704874.0,7793332.0,8609500.0,9532125.0,10488249.0,11373541.0,12321168.0,13264417.0,14295583.0,15187627.0,16070375.0,17144458.0,18000125.0,19087460.0,19876084.0,20796208.0,21799251.0,23008000.0,24484958.0,24599209.0,25523126.0,26552916.0,27392334.0,28387041.0,29290210.0,30305209.0,31278750.0,32218834.0,33064543.0,34066667.0,34945583.0,35941916.0,36806000.0,37823500.0,38732499.0,39652207.0,40601168.0,41960457.0,44084210.0,45489669.0,46696918.0,45609042.0,46445124.0,47372166.0,48786458.0,51231249.0,51302873.0,51083334.0,52073584.0,54181126.0,56253209.0,56434208.0,55786625.0,56814125.0,58197292.0,60786706.0,60293541.0,60838042.0,61676624.0,63957875.0,65408041.0,64414874.0,65314625.0,67214874.0,69890207.0,68104000.0,69394252.0,71170293.0,73515665.0,72029041.0,72785542.0,75736082.0,76117997.0,75891540.0,77340292.0,81008084.0,78526126.0,79633583.0,83016291.0,83077667.0,82625252.0,83445210.0,84092918.0,85821750.0,86413336.0,87332543.0,87869419.0,88989873.0,89713749.0,90616874.0,91766332.0,92685125.0,93577002.0,94490500.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/0/new/tukey.json ================================================ [11812.336146386646,12130.40881437291,12978.60259566961,13296.675263655872] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/0/report/index.html ================================================ Clone/FlexStr 0.10 (SharedStr - Optimized)/0 - Criterion.rs

Clone/FlexStr 0.10 (SharedStr - Optimized)/0

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 12.524 µs 12.563 µs 12.608 µs
0.9720283 0.9733696 0.9716530
Mean 12.548 µs 12.589 µs 12.634 µs
Std. Dev. 159.68 ns 218.63 ns 274.76 ns
Median 12.470 µs 12.484 µs 12.532 µs
MAD 49.181 ns 76.446 ns 134.12 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time +0.5193% +0.8845% +1.2489% (p = 0.00 < 0.05)
Change within noise threshold.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/10/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (SharedStr - Optimized)","value_str":"10","throughput":null,"full_id":"Clone/FlexStr 0.10 (SharedStr - Optimized)/10","directory_name":"Clone/FlexStr 0.10 (SharedStr - Optimized)/10","title":"Clone/FlexStr 0.10 (SharedStr - Optimized)/10"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/10/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12566.49187207371,"upper_bound":13111.52861064182},"point_estimate":12807.54078100992,"standard_error":140.5410796587168},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12439.724038461538,"upper_bound":12452.792944500674},"point_estimate":12443.414058139535,"standard_error":3.2491731648232585},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":15.346572900619282,"upper_bound":35.00039340377634},"point_estimate":21.236940564714992,"standard_error":4.830250133941574},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12539.220161222003,"upper_bound":13111.732699817172},"point_estimate":12784.953107580908,"standard_error":147.21170737148017},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":612.543602776595,"upper_bound":2007.8288265907802},"point_estimate":1415.0033841601726,"standard_error":359.04391687582785}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/10/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[80.0,160.0,240.0,320.0,400.0,480.0,560.0,640.0,720.0,800.0,880.0,960.0,1040.0,1120.0,1200.0,1280.0,1360.0,1440.0,1520.0,1600.0,1680.0,1760.0,1840.0,1920.0,2000.0,2080.0,2160.0,2240.0,2320.0,2400.0,2480.0,2560.0,2640.0,2720.0,2800.0,2880.0,2960.0,3040.0,3120.0,3200.0,3280.0,3360.0,3440.0,3520.0,3600.0,3680.0,3760.0,3840.0,3920.0,4000.0,4080.0,4160.0,4240.0,4320.0,4400.0,4480.0,4560.0,4640.0,4720.0,4800.0,4880.0,4960.0,5040.0,5120.0,5200.0,5280.0,5360.0,5440.0,5520.0,5600.0,5680.0,5760.0,5840.0,5920.0,6000.0,6080.0,6160.0,6240.0,6320.0,6400.0,6480.0,6560.0,6640.0,6720.0,6800.0,6880.0,6960.0,7040.0,7120.0,7200.0,7280.0,7360.0,7440.0,7520.0,7600.0,7680.0,7760.0,7840.0,7920.0,8000.0],"times":[1014833.0,1989833.0,2994832.0,4099124.0,5153666.0,6064834.0,6989416.0,8033417.0,8934124.0,10426210.0,11022417.0,11998917.0,12954709.0,13928083.0,15123084.0,15985248.0,16918124.0,17963584.0,18907917.0,19908002.0,20927372.0,21903000.0,22920080.0,23886042.0,24887876.0,25874626.0,26860833.0,27852665.0,28825625.0,29856750.0,30945499.0,32059084.0,32842167.0,34023792.0,34786627.0,35939792.0,36896876.0,37850165.0,38859206.0,39936207.0,40769415.0,41751125.0,42803542.0,43811375.0,44801207.0,46511375.0,47309000.0,47731249.0,48687626.0,49758627.0,50743293.0,51690751.0,52692584.0,53771043.0,65574083.0,58523208.0,85469248.0,98725375.0,84203834.0,95006794.0,68725208.0,64505919.0,65329376.0,63749085.0,64655123.0,65647958.0,66598625.0,67628500.0,68883833.0,69606251.0,70842167.0,71643375.0,72622708.0,73564793.0,74549043.0,75685417.0,76582500.0,77553166.0,78576753.0,79740960.0,80589166.0,81913209.0,82555127.0,83533956.0,84545542.0,85496918.0,86515165.0,87578960.0,88492833.0,89534166.0,90492041.0,91680416.0,92611957.0,93583206.0,94558584.0,95457584.0,96447542.0,97440251.0,99026958.0,99534916.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/10/base/tukey.json ================================================ [12284.540419665309,12358.78179335027,12556.758789843498,12631.000163528457] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/10/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.006232419469421021,"upper_bound":0.04923864148557513},"point_estimate":0.025793068966877497,"standard_error":0.011367639823953005},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0007021223621753725,"upper_bound":0.0006952772000750063},"point_estimate":-0.00016756213646373919,"standard_error":0.00034944893484626185}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/10/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (SharedStr - Optimized)","value_str":"10","throughput":null,"full_id":"Clone/FlexStr 0.10 (SharedStr - Optimized)/10","directory_name":"Clone/FlexStr 0.10 (SharedStr - Optimized)/10","title":"Clone/FlexStr 0.10 (SharedStr - Optimized)/10"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/10/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12566.49187207371,"upper_bound":13111.52861064182},"point_estimate":12807.54078100992,"standard_error":140.5410796587168},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12439.724038461538,"upper_bound":12452.792944500674},"point_estimate":12443.414058139535,"standard_error":3.2491731648232585},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":15.346572900619282,"upper_bound":35.00039340377634},"point_estimate":21.236940564714992,"standard_error":4.830250133941574},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12539.220161222003,"upper_bound":13111.732699817172},"point_estimate":12784.953107580908,"standard_error":147.21170737148017},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":612.543602776595,"upper_bound":2007.8288265907802},"point_estimate":1415.0033841601726,"standard_error":359.04391687582785}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/10/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[80.0,160.0,240.0,320.0,400.0,480.0,560.0,640.0,720.0,800.0,880.0,960.0,1040.0,1120.0,1200.0,1280.0,1360.0,1440.0,1520.0,1600.0,1680.0,1760.0,1840.0,1920.0,2000.0,2080.0,2160.0,2240.0,2320.0,2400.0,2480.0,2560.0,2640.0,2720.0,2800.0,2880.0,2960.0,3040.0,3120.0,3200.0,3280.0,3360.0,3440.0,3520.0,3600.0,3680.0,3760.0,3840.0,3920.0,4000.0,4080.0,4160.0,4240.0,4320.0,4400.0,4480.0,4560.0,4640.0,4720.0,4800.0,4880.0,4960.0,5040.0,5120.0,5200.0,5280.0,5360.0,5440.0,5520.0,5600.0,5680.0,5760.0,5840.0,5920.0,6000.0,6080.0,6160.0,6240.0,6320.0,6400.0,6480.0,6560.0,6640.0,6720.0,6800.0,6880.0,6960.0,7040.0,7120.0,7200.0,7280.0,7360.0,7440.0,7520.0,7600.0,7680.0,7760.0,7840.0,7920.0,8000.0],"times":[1014833.0,1989833.0,2994832.0,4099124.0,5153666.0,6064834.0,6989416.0,8033417.0,8934124.0,10426210.0,11022417.0,11998917.0,12954709.0,13928083.0,15123084.0,15985248.0,16918124.0,17963584.0,18907917.0,19908002.0,20927372.0,21903000.0,22920080.0,23886042.0,24887876.0,25874626.0,26860833.0,27852665.0,28825625.0,29856750.0,30945499.0,32059084.0,32842167.0,34023792.0,34786627.0,35939792.0,36896876.0,37850165.0,38859206.0,39936207.0,40769415.0,41751125.0,42803542.0,43811375.0,44801207.0,46511375.0,47309000.0,47731249.0,48687626.0,49758627.0,50743293.0,51690751.0,52692584.0,53771043.0,65574083.0,58523208.0,85469248.0,98725375.0,84203834.0,95006794.0,68725208.0,64505919.0,65329376.0,63749085.0,64655123.0,65647958.0,66598625.0,67628500.0,68883833.0,69606251.0,70842167.0,71643375.0,72622708.0,73564793.0,74549043.0,75685417.0,76582500.0,77553166.0,78576753.0,79740960.0,80589166.0,81913209.0,82555127.0,83533956.0,84545542.0,85496918.0,86515165.0,87578960.0,88492833.0,89534166.0,90492041.0,91680416.0,92611957.0,93583206.0,94558584.0,95457584.0,96447542.0,97440251.0,99026958.0,99534916.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/10/new/tukey.json ================================================ [12284.540419665309,12358.78179335027,12556.758789843498,12631.000163528457] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/10/report/index.html ================================================ Clone/FlexStr 0.10 (SharedStr - Optimized)/10 - Criterion.rs

Clone/FlexStr 0.10 (SharedStr - Optimized)/10

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 12.539 µs 12.785 µs 13.112 µs
0.3363882 0.3430293 0.3314572
Mean 12.566 µs 12.808 µs 13.112 µs
Std. Dev. 612.54 ns 1.4150 µs 2.0078 µs
Median 12.440 µs 12.443 µs 12.453 µs
MAD 15.347 ns 21.237 ns 35.000 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time +0.6232% +2.5793% +4.9239% (p = 0.01 < 0.05)
Change within noise threshold.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/100/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (SharedStr - Optimized)","value_str":"100","throughput":null,"full_id":"Clone/FlexStr 0.10 (SharedStr - Optimized)/100","directory_name":"Clone/FlexStr 0.10 (SharedStr - Optimized)/100","title":"Clone/FlexStr 0.10 (SharedStr - Optimized)/100"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/100/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94988.75692772212,"upper_bound":95173.5607688443},"point_estimate":95073.25753206894,"standard_error":47.24621464959072},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94898.7,"upper_bound":94974.64685314686},"point_estimate":94934.46301834131,"standard_error":21.34957316311543},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":110.52281633806729,"upper_bound":186.20500850962287},"point_estimate":156.7803740397087,"standard_error":19.61737635536282},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94907.9718458255,"upper_bound":94990.1925503347},"point_estimate":94946.89538724022,"standard_error":21.000278742766646},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":278.445380735778,"upper_bound":655.8883571758386},"point_estimate":476.4792253138015,"standard_error":97.84951530802444}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/100/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[11.0,22.0,33.0,44.0,55.0,66.0,77.0,88.0,99.0,110.0,121.0,132.0,143.0,154.0,165.0,176.0,187.0,198.0,209.0,220.0,231.0,242.0,253.0,264.0,275.0,286.0,297.0,308.0,319.0,330.0,341.0,352.0,363.0,374.0,385.0,396.0,407.0,418.0,429.0,440.0,451.0,462.0,473.0,484.0,495.0,506.0,517.0,528.0,539.0,550.0,561.0,572.0,583.0,594.0,605.0,616.0,627.0,638.0,649.0,660.0,671.0,682.0,693.0,704.0,715.0,726.0,737.0,748.0,759.0,770.0,781.0,792.0,803.0,814.0,825.0,836.0,847.0,858.0,869.0,880.0,891.0,902.0,913.0,924.0,935.0,946.0,957.0,968.0,979.0,990.0,1001.0,1012.0,1023.0,1034.0,1045.0,1056.0,1067.0,1078.0,1089.0,1100.0],"times":[1056875.0,2084376.0,3127585.0,4253166.0,5387958.0,6269417.0,7432417.0,8330917.0,9508250.0,10506666.0,11501920.0,12543874.0,13622958.0,14753876.0,15763292.0,16729501.0,17746749.0,18844749.0,19850625.0,20895667.0,21909959.0,22950041.0,24054208.0,25063291.0,26276251.0,27162749.0,28200667.0,29242166.0,30264544.0,31316417.0,32371001.0,33514333.0,34509960.0,35542499.0,36701498.0,37600585.0,38651373.0,39681667.0,40747082.0,41758124.0,43200666.0,44674792.0,44833417.0,45919042.0,47054332.0,48009750.0,49094706.0,50041292.0,51057791.0,52262250.0,53222793.0,54347959.0,55363083.0,56460457.0,57514376.0,58408835.0,59420750.0,60515669.0,61556876.0,62634250.0,63627125.0,64663376.0,65695874.0,66787832.0,67834708.0,68914168.0,69913333.0,71137293.0,71962794.0,73071999.0,74033293.0,75091581.0,76246625.0,77182500.0,78416833.0,79267499.0,80256378.0,81400957.0,82516834.0,83458252.0,84566377.0,85513877.0,86643708.0,87672376.0,88951624.0,89748583.0,90808958.0,91832664.0,92790960.0,94218708.0,95193081.0,96055248.0,97189082.0,98261667.0,99034502.0,100389957.0,101478377.0,102716084.0,103273249.0,104370958.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/100/base/tukey.json ================================================ [94223.10420420131,94537.20768960929,95374.81698403056,95688.92046943854] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/100/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0010623354053478195,"upper_bound":0.001720252564553487},"point_estimate":0.00032280429068354266,"standard_error":0.0007089429336016367},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.00033884520471244806,"upper_bound":0.0008649324514082846},"point_estimate":0.0003757005132043467,"standard_error":0.0003081132251518334}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/100/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (SharedStr - Optimized)","value_str":"100","throughput":null,"full_id":"Clone/FlexStr 0.10 (SharedStr - Optimized)/100","directory_name":"Clone/FlexStr 0.10 (SharedStr - Optimized)/100","title":"Clone/FlexStr 0.10 (SharedStr - Optimized)/100"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/100/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94988.75692772212,"upper_bound":95173.5607688443},"point_estimate":95073.25753206894,"standard_error":47.24621464959072},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94898.7,"upper_bound":94974.64685314686},"point_estimate":94934.46301834131,"standard_error":21.34957316311543},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":110.52281633806729,"upper_bound":186.20500850962287},"point_estimate":156.7803740397087,"standard_error":19.61737635536282},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94907.9718458255,"upper_bound":94990.1925503347},"point_estimate":94946.89538724022,"standard_error":21.000278742766646},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":278.445380735778,"upper_bound":655.8883571758386},"point_estimate":476.4792253138015,"standard_error":97.84951530802444}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/100/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[11.0,22.0,33.0,44.0,55.0,66.0,77.0,88.0,99.0,110.0,121.0,132.0,143.0,154.0,165.0,176.0,187.0,198.0,209.0,220.0,231.0,242.0,253.0,264.0,275.0,286.0,297.0,308.0,319.0,330.0,341.0,352.0,363.0,374.0,385.0,396.0,407.0,418.0,429.0,440.0,451.0,462.0,473.0,484.0,495.0,506.0,517.0,528.0,539.0,550.0,561.0,572.0,583.0,594.0,605.0,616.0,627.0,638.0,649.0,660.0,671.0,682.0,693.0,704.0,715.0,726.0,737.0,748.0,759.0,770.0,781.0,792.0,803.0,814.0,825.0,836.0,847.0,858.0,869.0,880.0,891.0,902.0,913.0,924.0,935.0,946.0,957.0,968.0,979.0,990.0,1001.0,1012.0,1023.0,1034.0,1045.0,1056.0,1067.0,1078.0,1089.0,1100.0],"times":[1056875.0,2084376.0,3127585.0,4253166.0,5387958.0,6269417.0,7432417.0,8330917.0,9508250.0,10506666.0,11501920.0,12543874.0,13622958.0,14753876.0,15763292.0,16729501.0,17746749.0,18844749.0,19850625.0,20895667.0,21909959.0,22950041.0,24054208.0,25063291.0,26276251.0,27162749.0,28200667.0,29242166.0,30264544.0,31316417.0,32371001.0,33514333.0,34509960.0,35542499.0,36701498.0,37600585.0,38651373.0,39681667.0,40747082.0,41758124.0,43200666.0,44674792.0,44833417.0,45919042.0,47054332.0,48009750.0,49094706.0,50041292.0,51057791.0,52262250.0,53222793.0,54347959.0,55363083.0,56460457.0,57514376.0,58408835.0,59420750.0,60515669.0,61556876.0,62634250.0,63627125.0,64663376.0,65695874.0,66787832.0,67834708.0,68914168.0,69913333.0,71137293.0,71962794.0,73071999.0,74033293.0,75091581.0,76246625.0,77182500.0,78416833.0,79267499.0,80256378.0,81400957.0,82516834.0,83458252.0,84566377.0,85513877.0,86643708.0,87672376.0,88951624.0,89748583.0,90808958.0,91832664.0,92790960.0,94218708.0,95193081.0,96055248.0,97189082.0,98261667.0,99034502.0,100389957.0,101478377.0,102716084.0,103273249.0,104370958.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/100/new/tukey.json ================================================ [94223.10420420131,94537.20768960929,95374.81698403056,95688.92046943854] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/100/report/index.html ================================================ Clone/FlexStr 0.10 (SharedStr - Optimized)/100 - Criterion.rs

Clone/FlexStr 0.10 (SharedStr - Optimized)/100

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 94.908 µs 94.947 µs 94.990 µs
0.9993765 0.9993997 0.9993710
Mean 94.989 µs 95.073 µs 95.174 µs
Std. Dev. 278.45 ns 476.48 ns 655.89 ns
Median 94.899 µs 94.934 µs 94.975 µs
MAD 110.52 ns 156.78 ns 186.21 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.1062% +0.0323% +0.1720% (p = 0.64 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/20/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (SharedStr - Optimized)","value_str":"20","throughput":null,"full_id":"Clone/FlexStr 0.10 (SharedStr - Optimized)/20","directory_name":"Clone/FlexStr 0.10 (SharedStr - Optimized)/20","title":"Clone/FlexStr 0.10 (SharedStr - Optimized)/20"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/20/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12490.57948172472,"upper_bound":12540.032878922395},"point_estimate":12513.720289212519,"standard_error":12.656813789597676},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12453.575561870317,"upper_bound":12474.098289632308},"point_estimate":12462.4265664839,"standard_error":4.903982480345927},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":26.11232354327779,"upper_bound":55.64300812673761},"point_estimate":40.12902553878418,"standard_error":7.438417437899961},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12467.647457972074,"upper_bound":12508.793948300023},"point_estimate":12485.745641413187,"standard_error":10.553651210510608},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":89.08401250369462,"upper_bound":159.92554308174468},"point_estimate":126.62128067492085,"standard_error":18.108693616518867}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/20/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[79.0,158.0,237.0,316.0,395.0,474.0,553.0,632.0,711.0,790.0,869.0,948.0,1027.0,1106.0,1185.0,1264.0,1343.0,1422.0,1501.0,1580.0,1659.0,1738.0,1817.0,1896.0,1975.0,2054.0,2133.0,2212.0,2291.0,2370.0,2449.0,2528.0,2607.0,2686.0,2765.0,2844.0,2923.0,3002.0,3081.0,3160.0,3239.0,3318.0,3397.0,3476.0,3555.0,3634.0,3713.0,3792.0,3871.0,3950.0,4029.0,4108.0,4187.0,4266.0,4345.0,4424.0,4503.0,4582.0,4661.0,4740.0,4819.0,4898.0,4977.0,5056.0,5135.0,5214.0,5293.0,5372.0,5451.0,5530.0,5609.0,5688.0,5767.0,5846.0,5925.0,6004.0,6083.0,6162.0,6241.0,6320.0,6399.0,6478.0,6557.0,6636.0,6715.0,6794.0,6873.0,6952.0,7031.0,7110.0,7189.0,7268.0,7347.0,7426.0,7505.0,7584.0,7663.0,7742.0,7821.0,7900.0],"times":[991583.0,1970748.0,2966373.0,4029708.0,5179374.0,5995542.0,6925917.0,7952915.0,8850041.0,9934457.0,10820376.0,11823292.0,12791790.0,13768583.0,14903040.0,15777500.0,16737127.0,17702583.0,18667414.0,19673083.0,20806666.0,21625083.0,22700209.0,23597792.0,24621207.0,25645917.0,26587002.0,27521710.0,28585501.0,30043209.0,31398836.0,32323084.0,33201917.0,34402500.0,35804376.0,35547542.0,36393459.0,37366581.0,38342373.0,39405043.0,40460416.0,42492249.0,42448252.0,43188208.0,44532790.0,45887750.0,46988709.0,47987668.0,48207791.0,49139415.0,50187792.0,51082832.0,52051623.0,53045501.0,54039375.0,55195459.0,55944666.0,56940707.0,58100584.0,58994249.0,60060791.0,60934876.0,61867750.0,62819250.0,64001748.0,64812876.0,65768459.0,67041417.0,67832083.0,69064708.0,69708666.0,70672500.0,71664836.0,72664206.0,73711000.0,75291832.0,78553040.0,77960040.0,78253750.0,79076416.0,80387376.0,80653208.0,81707291.0,82909751.0,83534125.0,84562460.0,85606249.0,86595623.0,87498540.0,88455958.0,89565958.0,90875958.0,92404958.0,92471791.0,93572541.0,94227041.0,95225375.0,96468709.0,97468125.0,98419750.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/20/base/tukey.json ================================================ [12199.728409775884,12321.66692353006,12646.836293541195,12768.774807295371] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/20/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.00106760681579767,"upper_bound":0.004198921334338754},"point_estimate":0.001559394906746725,"standard_error":0.001337611443516703},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.000765979864737143,"upper_bound":0.0017095329841356846},"point_estimate":0.0004024653946794743,"standard_error":0.0006631083090350779}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/20/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (SharedStr - Optimized)","value_str":"20","throughput":null,"full_id":"Clone/FlexStr 0.10 (SharedStr - Optimized)/20","directory_name":"Clone/FlexStr 0.10 (SharedStr - Optimized)/20","title":"Clone/FlexStr 0.10 (SharedStr - Optimized)/20"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/20/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12490.57948172472,"upper_bound":12540.032878922395},"point_estimate":12513.720289212519,"standard_error":12.656813789597676},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12453.575561870317,"upper_bound":12474.098289632308},"point_estimate":12462.4265664839,"standard_error":4.903982480345927},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":26.11232354327779,"upper_bound":55.64300812673761},"point_estimate":40.12902553878418,"standard_error":7.438417437899961},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12467.647457972074,"upper_bound":12508.793948300023},"point_estimate":12485.745641413187,"standard_error":10.553651210510608},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":89.08401250369462,"upper_bound":159.92554308174468},"point_estimate":126.62128067492085,"standard_error":18.108693616518867}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/20/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[79.0,158.0,237.0,316.0,395.0,474.0,553.0,632.0,711.0,790.0,869.0,948.0,1027.0,1106.0,1185.0,1264.0,1343.0,1422.0,1501.0,1580.0,1659.0,1738.0,1817.0,1896.0,1975.0,2054.0,2133.0,2212.0,2291.0,2370.0,2449.0,2528.0,2607.0,2686.0,2765.0,2844.0,2923.0,3002.0,3081.0,3160.0,3239.0,3318.0,3397.0,3476.0,3555.0,3634.0,3713.0,3792.0,3871.0,3950.0,4029.0,4108.0,4187.0,4266.0,4345.0,4424.0,4503.0,4582.0,4661.0,4740.0,4819.0,4898.0,4977.0,5056.0,5135.0,5214.0,5293.0,5372.0,5451.0,5530.0,5609.0,5688.0,5767.0,5846.0,5925.0,6004.0,6083.0,6162.0,6241.0,6320.0,6399.0,6478.0,6557.0,6636.0,6715.0,6794.0,6873.0,6952.0,7031.0,7110.0,7189.0,7268.0,7347.0,7426.0,7505.0,7584.0,7663.0,7742.0,7821.0,7900.0],"times":[991583.0,1970748.0,2966373.0,4029708.0,5179374.0,5995542.0,6925917.0,7952915.0,8850041.0,9934457.0,10820376.0,11823292.0,12791790.0,13768583.0,14903040.0,15777500.0,16737127.0,17702583.0,18667414.0,19673083.0,20806666.0,21625083.0,22700209.0,23597792.0,24621207.0,25645917.0,26587002.0,27521710.0,28585501.0,30043209.0,31398836.0,32323084.0,33201917.0,34402500.0,35804376.0,35547542.0,36393459.0,37366581.0,38342373.0,39405043.0,40460416.0,42492249.0,42448252.0,43188208.0,44532790.0,45887750.0,46988709.0,47987668.0,48207791.0,49139415.0,50187792.0,51082832.0,52051623.0,53045501.0,54039375.0,55195459.0,55944666.0,56940707.0,58100584.0,58994249.0,60060791.0,60934876.0,61867750.0,62819250.0,64001748.0,64812876.0,65768459.0,67041417.0,67832083.0,69064708.0,69708666.0,70672500.0,71664836.0,72664206.0,73711000.0,75291832.0,78553040.0,77960040.0,78253750.0,79076416.0,80387376.0,80653208.0,81707291.0,82909751.0,83534125.0,84562460.0,85606249.0,86595623.0,87498540.0,88455958.0,89565958.0,90875958.0,92404958.0,92471791.0,93572541.0,94227041.0,95225375.0,96468709.0,97468125.0,98419750.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/20/new/tukey.json ================================================ [12199.728409775884,12321.66692353006,12646.836293541195,12768.774807295371] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/20/report/index.html ================================================ Clone/FlexStr 0.10 (SharedStr - Optimized)/20 - Criterion.rs

Clone/FlexStr 0.10 (SharedStr - Optimized)/20

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 12.468 µs 12.486 µs 12.509 µs
0.9920884 0.9923770 0.9919090
Mean 12.491 µs 12.514 µs 12.540 µs
Std. Dev. 89.084 ns 126.62 ns 159.93 ns
Median 12.454 µs 12.462 µs 12.474 µs
MAD 26.112 ns 40.129 ns 55.643 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.1068% +0.1559% +0.4199% (p = 0.25 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/500/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (SharedStr - Optimized)","value_str":"500","throughput":null,"full_id":"Clone/FlexStr 0.10 (SharedStr - Optimized)/500","directory_name":"Clone/FlexStr 0.10 (SharedStr - Optimized)/500","title":"Clone/FlexStr 0.10 (SharedStr - Optimized)/500"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/500/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":95028.51835813344,"upper_bound":95270.48191734377},"point_estimate":95135.91244698696,"standard_error":62.19610238186455},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94910.26573426573,"upper_bound":94981.58730158731},"point_estimate":94942.95281385281,"standard_error":18.823844093736728},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":99.44482560498525,"upper_bound":199.87642039817354},"point_estimate":149.6771946747181,"standard_error":25.519453649504005},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94915.03695328406,"upper_bound":95073.3350094407},"point_estimate":94980.16789714793,"standard_error":41.05510946858861},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":323.0961602677342,"upper_bound":910.8546423273616},"point_estimate":624.6347705455523,"standard_error":159.05369135041855}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/500/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[11.0,22.0,33.0,44.0,55.0,66.0,77.0,88.0,99.0,110.0,121.0,132.0,143.0,154.0,165.0,176.0,187.0,198.0,209.0,220.0,231.0,242.0,253.0,264.0,275.0,286.0,297.0,308.0,319.0,330.0,341.0,352.0,363.0,374.0,385.0,396.0,407.0,418.0,429.0,440.0,451.0,462.0,473.0,484.0,495.0,506.0,517.0,528.0,539.0,550.0,561.0,572.0,583.0,594.0,605.0,616.0,627.0,638.0,649.0,660.0,671.0,682.0,693.0,704.0,715.0,726.0,737.0,748.0,759.0,770.0,781.0,792.0,803.0,814.0,825.0,836.0,847.0,858.0,869.0,880.0,891.0,902.0,913.0,924.0,935.0,946.0,957.0,968.0,979.0,990.0,1001.0,1012.0,1023.0,1034.0,1045.0,1056.0,1067.0,1078.0,1089.0,1100.0],"times":[1049667.0,2084749.0,3130458.0,4281083.0,5472792.0,6343751.0,7446125.0,8370209.0,9442375.0,10463375.0,11529751.0,12541626.0,13598375.0,14626960.0,15885873.0,16871709.0,17835666.0,18848000.0,19825002.0,20884875.0,21918083.0,22968000.0,24033500.0,25047332.0,26104414.0,27144336.0,28187501.0,29228416.0,30232084.0,31401457.0,32535541.0,33548293.0,34530667.0,35476501.0,36552832.0,37598918.0,38599333.0,39679876.0,40673665.0,41737458.0,42813878.0,43880668.0,45247415.0,46013625.0,47001209.0,47988708.0,49131166.0,50088791.0,51455792.0,52203961.0,53633419.0,54316334.0,55392419.0,56420124.0,57403083.0,58598792.0,59494459.0,60833958.0,62560415.0,62741292.0,63861500.0,64782501.0,65738084.0,66840750.0,67848290.0,68954794.0,70057209.0,70944956.0,72138665.0,72997582.0,74277376.0,75116042.0,76123376.0,77135208.0,78328375.0,79463500.0,80298793.0,81443582.0,84087168.0,83788958.0,84595876.0,85741208.0,86618624.0,87634417.0,88673418.0,89789708.0,90800333.0,91836999.0,92887251.0,93863957.0,94866333.0,96025167.0,97099374.0,98037249.0,99152874.0,100097375.0,101086748.0,102385041.0,103343498.0,104300542.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/500/base/tukey.json ================================================ [94130.51922462578,94500.60185914111,95487.48888451533,95857.57151903067] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/500/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.003805622675549597,"upper_bound":-0.00016035205128376348},"point_estimate":-0.0019405123412599146,"standard_error":0.0009286014040649427},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.002127090870959858,"upper_bound":0.0002409925068025398},"point_estimate":-0.0007924600175018837,"standard_error":0.0006008568823938971}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/500/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.10 (SharedStr - Optimized)","value_str":"500","throughput":null,"full_id":"Clone/FlexStr 0.10 (SharedStr - Optimized)/500","directory_name":"Clone/FlexStr 0.10 (SharedStr - Optimized)/500","title":"Clone/FlexStr 0.10 (SharedStr - Optimized)/500"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/500/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":95028.51835813344,"upper_bound":95270.48191734377},"point_estimate":95135.91244698696,"standard_error":62.19610238186455},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94910.26573426573,"upper_bound":94981.58730158731},"point_estimate":94942.95281385281,"standard_error":18.823844093736728},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":99.44482560498525,"upper_bound":199.87642039817354},"point_estimate":149.6771946747181,"standard_error":25.519453649504005},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94915.03695328406,"upper_bound":95073.3350094407},"point_estimate":94980.16789714793,"standard_error":41.05510946858861},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":323.0961602677342,"upper_bound":910.8546423273616},"point_estimate":624.6347705455523,"standard_error":159.05369135041855}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/500/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[11.0,22.0,33.0,44.0,55.0,66.0,77.0,88.0,99.0,110.0,121.0,132.0,143.0,154.0,165.0,176.0,187.0,198.0,209.0,220.0,231.0,242.0,253.0,264.0,275.0,286.0,297.0,308.0,319.0,330.0,341.0,352.0,363.0,374.0,385.0,396.0,407.0,418.0,429.0,440.0,451.0,462.0,473.0,484.0,495.0,506.0,517.0,528.0,539.0,550.0,561.0,572.0,583.0,594.0,605.0,616.0,627.0,638.0,649.0,660.0,671.0,682.0,693.0,704.0,715.0,726.0,737.0,748.0,759.0,770.0,781.0,792.0,803.0,814.0,825.0,836.0,847.0,858.0,869.0,880.0,891.0,902.0,913.0,924.0,935.0,946.0,957.0,968.0,979.0,990.0,1001.0,1012.0,1023.0,1034.0,1045.0,1056.0,1067.0,1078.0,1089.0,1100.0],"times":[1049667.0,2084749.0,3130458.0,4281083.0,5472792.0,6343751.0,7446125.0,8370209.0,9442375.0,10463375.0,11529751.0,12541626.0,13598375.0,14626960.0,15885873.0,16871709.0,17835666.0,18848000.0,19825002.0,20884875.0,21918083.0,22968000.0,24033500.0,25047332.0,26104414.0,27144336.0,28187501.0,29228416.0,30232084.0,31401457.0,32535541.0,33548293.0,34530667.0,35476501.0,36552832.0,37598918.0,38599333.0,39679876.0,40673665.0,41737458.0,42813878.0,43880668.0,45247415.0,46013625.0,47001209.0,47988708.0,49131166.0,50088791.0,51455792.0,52203961.0,53633419.0,54316334.0,55392419.0,56420124.0,57403083.0,58598792.0,59494459.0,60833958.0,62560415.0,62741292.0,63861500.0,64782501.0,65738084.0,66840750.0,67848290.0,68954794.0,70057209.0,70944956.0,72138665.0,72997582.0,74277376.0,75116042.0,76123376.0,77135208.0,78328375.0,79463500.0,80298793.0,81443582.0,84087168.0,83788958.0,84595876.0,85741208.0,86618624.0,87634417.0,88673418.0,89789708.0,90800333.0,91836999.0,92887251.0,93863957.0,94866333.0,96025167.0,97099374.0,98037249.0,99152874.0,100097375.0,101086748.0,102385041.0,103343498.0,104300542.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/500/new/tukey.json ================================================ [94130.51922462578,94500.60185914111,95487.48888451533,95857.57151903067] ================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/500/report/index.html ================================================ Clone/FlexStr 0.10 (SharedStr - Optimized)/500 - Criterion.rs

Clone/FlexStr 0.10 (SharedStr - Optimized)/500

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 94.915 µs 94.980 µs 95.073 µs
0.9982689 0.9983341 0.9982006
Mean 95.029 µs 95.136 µs 95.270 µs
Std. Dev. 323.10 ns 624.63 ns 910.85 ns
Median 94.910 µs 94.943 µs 94.982 µs
MAD 99.445 ns 149.68 ns 199.88 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.3806% −0.1941% −0.0160% (p = 0.05 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.10 (SharedStr - Optimized)/report/index.html ================================================ Clone/FlexStr 0.10 (SharedStr - Optimized) Summary - Criterion.rs

Clone/FlexStr 0.10 (SharedStr - Optimized)

Violin Plot

Violin Plot

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

Line Chart

Line Chart

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

Clone/FlexStr 0.10 (SharedStr - Optimized)/0

PDF of Slope Regression

Clone/FlexStr 0.10 (SharedStr - Optimized)/10

PDF of Slope Regression

Clone/FlexStr 0.10 (SharedStr - Optimized)/20

PDF of Slope Regression

Clone/FlexStr 0.10 (SharedStr - Optimized)/100

PDF of Slope Regression

Clone/FlexStr 0.10 (SharedStr - Optimized)/500

PDF of Slope Regression
================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/0/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.9 (LocalStr)","value_str":"0","throughput":null,"full_id":"Clone/FlexStr 0.9 (LocalStr)/0","directory_name":"Clone/FlexStr 0.9 (LocalStr)/0","title":"Clone/FlexStr 0.9 (LocalStr)/0"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/0/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9344.899233586233,"upper_bound":9399.862907672914},"point_estimate":9365.764967451769,"standard_error":14.877532239319558},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9334.418301886792,"upper_bound":9339.91784591195},"point_estimate":9337.251572844598,"standard_error":1.5800684969738918},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12.344575425888968,"upper_bound":22.804706670122254},"point_estimate":18.37626471540026,"standard_error":2.7342579888421894},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9333.672714460317,"upper_bound":9343.009046276724},"point_estimate":9337.89295858648,"standard_error":2.3833050349126697},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":33.45802485190929,"upper_bound":248.20956166271245},"point_estimate":149.229249668413,"standard_error":70.81506899589411}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/0/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[106.0,212.0,318.0,424.0,530.0,636.0,742.0,848.0,954.0,1060.0,1166.0,1272.0,1378.0,1484.0,1590.0,1696.0,1802.0,1908.0,2014.0,2120.0,2226.0,2332.0,2438.0,2544.0,2650.0,2756.0,2862.0,2968.0,3074.0,3180.0,3286.0,3392.0,3498.0,3604.0,3710.0,3816.0,3922.0,4028.0,4134.0,4240.0,4346.0,4452.0,4558.0,4664.0,4770.0,4876.0,4982.0,5088.0,5194.0,5300.0,5406.0,5512.0,5618.0,5724.0,5830.0,5936.0,6042.0,6148.0,6254.0,6360.0,6466.0,6572.0,6678.0,6784.0,6890.0,6996.0,7102.0,7208.0,7314.0,7420.0,7526.0,7632.0,7738.0,7844.0,7950.0,8056.0,8162.0,8268.0,8374.0,8480.0,8586.0,8692.0,8798.0,8904.0,9010.0,9116.0,9222.0,9328.0,9434.0,9540.0,9646.0,9752.0,9858.0,9964.0,10070.0,10176.0,10282.0,10388.0,10494.0,10600.0],"times":[1002708.0,1974792.0,2963125.0,4067291.0,4978416.0,6846208.0,6931126.0,8069041.0,8986666.0,9945749.0,10960460.0,11973833.0,12924124.0,13853583.0,15090540.0,15971166.0,16827583.0,17847460.0,18810334.0,19844542.0,20756459.0,21795459.0,22768292.0,23760751.0,24730292.0,25725252.0,26834709.0,27693583.0,28651792.0,29637667.0,30805666.0,31836583.0,32662583.0,33659082.0,34621330.0,35663749.0,36587082.0,37565210.0,38555375.0,39517083.0,40507373.0,41607831.0,43713125.0,43464833.0,44531959.0,45557834.0,46544956.0,47637626.0,48496961.0,49472417.0,50439625.0,51551833.0,52472000.0,53518458.0,54428749.0,55412709.0,56380834.0,57389958.0,58297542.0,59467039.0,60656958.0,61365333.0,62251083.0,63494334.0,64219707.0,65325959.0,66290043.0,67190833.0,68314125.0,69233584.0,70308792.0,71419791.0,72383627.0,73156167.0,74150543.0,75172749.0,76120542.0,77186917.0,78296166.0,79067917.0,80149583.0,81166499.0,82071167.0,83302750.0,84030708.0,85136749.0,85977709.0,87018375.0,88251334.0,89059749.0,90305166.0,90935499.0,91896707.0,92992624.0,93901832.0,95303710.0,95955875.0,96848789.0,97805542.0,98795209.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/0/base/tukey.json ================================================ [9244.60245344936,9285.769480232178,9395.548218319695,9436.715245102514] ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/0/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0014594764996008506,"upper_bound":0.004771485692371462},"point_estimate":0.0012509556004187683,"standard_error":0.0016870119760289122},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0007084518475413137,"upper_bound":0.0005454196291496682},"point_estimate":-0.00006233724852977574,"standard_error":0.00030755445348487154}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/0/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.9 (LocalStr)","value_str":"0","throughput":null,"full_id":"Clone/FlexStr 0.9 (LocalStr)/0","directory_name":"Clone/FlexStr 0.9 (LocalStr)/0","title":"Clone/FlexStr 0.9 (LocalStr)/0"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/0/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9344.899233586233,"upper_bound":9399.862907672914},"point_estimate":9365.764967451769,"standard_error":14.877532239319558},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9334.418301886792,"upper_bound":9339.91784591195},"point_estimate":9337.251572844598,"standard_error":1.5800684969738918},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12.344575425888968,"upper_bound":22.804706670122254},"point_estimate":18.37626471540026,"standard_error":2.7342579888421894},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9333.672714460317,"upper_bound":9343.009046276724},"point_estimate":9337.89295858648,"standard_error":2.3833050349126697},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":33.45802485190929,"upper_bound":248.20956166271245},"point_estimate":149.229249668413,"standard_error":70.81506899589411}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/0/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[106.0,212.0,318.0,424.0,530.0,636.0,742.0,848.0,954.0,1060.0,1166.0,1272.0,1378.0,1484.0,1590.0,1696.0,1802.0,1908.0,2014.0,2120.0,2226.0,2332.0,2438.0,2544.0,2650.0,2756.0,2862.0,2968.0,3074.0,3180.0,3286.0,3392.0,3498.0,3604.0,3710.0,3816.0,3922.0,4028.0,4134.0,4240.0,4346.0,4452.0,4558.0,4664.0,4770.0,4876.0,4982.0,5088.0,5194.0,5300.0,5406.0,5512.0,5618.0,5724.0,5830.0,5936.0,6042.0,6148.0,6254.0,6360.0,6466.0,6572.0,6678.0,6784.0,6890.0,6996.0,7102.0,7208.0,7314.0,7420.0,7526.0,7632.0,7738.0,7844.0,7950.0,8056.0,8162.0,8268.0,8374.0,8480.0,8586.0,8692.0,8798.0,8904.0,9010.0,9116.0,9222.0,9328.0,9434.0,9540.0,9646.0,9752.0,9858.0,9964.0,10070.0,10176.0,10282.0,10388.0,10494.0,10600.0],"times":[1002708.0,1974792.0,2963125.0,4067291.0,4978416.0,6846208.0,6931126.0,8069041.0,8986666.0,9945749.0,10960460.0,11973833.0,12924124.0,13853583.0,15090540.0,15971166.0,16827583.0,17847460.0,18810334.0,19844542.0,20756459.0,21795459.0,22768292.0,23760751.0,24730292.0,25725252.0,26834709.0,27693583.0,28651792.0,29637667.0,30805666.0,31836583.0,32662583.0,33659082.0,34621330.0,35663749.0,36587082.0,37565210.0,38555375.0,39517083.0,40507373.0,41607831.0,43713125.0,43464833.0,44531959.0,45557834.0,46544956.0,47637626.0,48496961.0,49472417.0,50439625.0,51551833.0,52472000.0,53518458.0,54428749.0,55412709.0,56380834.0,57389958.0,58297542.0,59467039.0,60656958.0,61365333.0,62251083.0,63494334.0,64219707.0,65325959.0,66290043.0,67190833.0,68314125.0,69233584.0,70308792.0,71419791.0,72383627.0,73156167.0,74150543.0,75172749.0,76120542.0,77186917.0,78296166.0,79067917.0,80149583.0,81166499.0,82071167.0,83302750.0,84030708.0,85136749.0,85977709.0,87018375.0,88251334.0,89059749.0,90305166.0,90935499.0,91896707.0,92992624.0,93901832.0,95303710.0,95955875.0,96848789.0,97805542.0,98795209.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/0/new/tukey.json ================================================ [9244.60245344936,9285.769480232178,9395.548218319695,9436.715245102514] ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/0/report/index.html ================================================ Clone/FlexStr 0.9 (LocalStr)/0 - Criterion.rs

Clone/FlexStr 0.9 (LocalStr)/0

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 9.3337 µs 9.3379 µs 9.3430 µs
0.9986932 0.9987215 0.9986798
Mean 9.3449 µs 9.3658 µs 9.3999 µs
Std. Dev. 33.458 ns 149.23 ns 248.21 ns
Median 9.3344 µs 9.3373 µs 9.3399 µs
MAD 12.345 ns 18.376 ns 22.805 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.1459% +0.1251% +0.4771% (p = 0.53 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/10/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.9 (LocalStr)","value_str":"10","throughput":null,"full_id":"Clone/FlexStr 0.9 (LocalStr)/10","directory_name":"Clone/FlexStr 0.9 (LocalStr)/10","title":"Clone/FlexStr 0.9 (LocalStr)/10"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/10/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7282.401694106753,"upper_bound":7358.843630599383},"point_estimate":7309.983784848575,"standard_error":22.20599529884879},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7272.725164835165,"upper_bound":7280.408653846154},"point_estimate":7276.340650847807,"standard_error":1.9427418411138684},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":10.132994188575335,"upper_bound":18.995849129997804},"point_estimate":14.596736718984165,"standard_error":2.302360829577041},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7269.421545356814,"upper_bound":7477.844012040754},"point_estimate":7336.593661956781,"standard_error":62.18082921028289},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":28.99629364748362,"upper_bound":378.6329228608192},"point_estimate":222.8819426754632,"standard_error":121.76814236884914}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/10/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[130.0,260.0,390.0,520.0,650.0,780.0,910.0,1040.0,1170.0,1300.0,1430.0,1560.0,1690.0,1820.0,1950.0,2080.0,2210.0,2340.0,2470.0,2600.0,2730.0,2860.0,2990.0,3120.0,3250.0,3380.0,3510.0,3640.0,3770.0,3900.0,4030.0,4160.0,4290.0,4420.0,4550.0,4680.0,4810.0,4940.0,5070.0,5200.0,5330.0,5460.0,5590.0,5720.0,5850.0,5980.0,6110.0,6240.0,6370.0,6500.0,6630.0,6760.0,6890.0,7020.0,7150.0,7280.0,7410.0,7540.0,7670.0,7800.0,7930.0,8060.0,8190.0,8320.0,8450.0,8580.0,8710.0,8840.0,8970.0,9100.0,9230.0,9360.0,9490.0,9620.0,9750.0,9880.0,10010.0,10140.0,10270.0,10400.0,10530.0,10660.0,10790.0,10920.0,11050.0,11180.0,11310.0,11440.0,11570.0,11700.0,11830.0,11960.0,12090.0,12220.0,12350.0,12480.0,12610.0,12740.0,12870.0,13000.0],"times":[961041.0,1902456.0,2836834.0,3901707.0,4744584.0,5716043.0,6675167.0,7719000.0,8591208.0,9542460.0,10461790.0,11564377.0,12358999.0,13283585.0,14297959.0,15377459.0,16202708.0,17037127.0,18092960.0,18948917.0,19825501.0,20895750.0,21773417.0,22673084.0,23797083.0,24610498.0,25576584.0,26545750.0,27408916.0,28365330.0,29247414.0,30268918.0,31267833.0,32170374.0,33088914.0,34074876.0,34970790.0,35992583.0,36864625.0,37858125.0,38769957.0,39673000.0,40634956.0,41500125.0,42591168.0,43506584.0,44518499.0,45408167.0,46432793.0,47254000.0,48267668.0,49110584.0,50524085.0,51051418.0,51981750.0,52835788.0,53873835.0,54808748.0,55796706.0,56731877.0,57578251.0,58602751.0,59469959.0,60487374.0,61335082.0,62365374.0,63288958.0,64292960.0,65176000.0,66092417.0,67090210.0,67995249.0,68933916.0,69912667.0,71454041.0,72033458.0,72737458.0,73816793.0,74585082.0,74939585.0,76644750.0,77698165.0,78422544.0,79521377.0,80408376.0,81406749.0,82300792.0,83152377.0,84176209.0,85151374.0,86053334.0,86850125.0,87972874.0,89013916.0,89971166.0,90735584.0,91598834.0,92478290.0,122025916.0,94249459.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/10/base/tukey.json ================================================ [7207.96340349546,7238.311607779198,7319.240152535835,7349.588356819573] ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/10/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0016619614463100672,"upper_bound":0.010327035350367258},"point_estimate":0.0030441032378207833,"standard_error":0.003278854566561095},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.00034098761364276253,"upper_bound":0.001304523408535374},"point_estimate":0.0006155436628052513,"standard_error":0.0004136812112583967}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/10/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.9 (LocalStr)","value_str":"10","throughput":null,"full_id":"Clone/FlexStr 0.9 (LocalStr)/10","directory_name":"Clone/FlexStr 0.9 (LocalStr)/10","title":"Clone/FlexStr 0.9 (LocalStr)/10"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/10/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7282.401694106753,"upper_bound":7358.843630599383},"point_estimate":7309.983784848575,"standard_error":22.20599529884879},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7272.725164835165,"upper_bound":7280.408653846154},"point_estimate":7276.340650847807,"standard_error":1.9427418411138684},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":10.132994188575335,"upper_bound":18.995849129997804},"point_estimate":14.596736718984165,"standard_error":2.302360829577041},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7269.421545356814,"upper_bound":7477.844012040754},"point_estimate":7336.593661956781,"standard_error":62.18082921028289},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":28.99629364748362,"upper_bound":378.6329228608192},"point_estimate":222.8819426754632,"standard_error":121.76814236884914}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/10/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[130.0,260.0,390.0,520.0,650.0,780.0,910.0,1040.0,1170.0,1300.0,1430.0,1560.0,1690.0,1820.0,1950.0,2080.0,2210.0,2340.0,2470.0,2600.0,2730.0,2860.0,2990.0,3120.0,3250.0,3380.0,3510.0,3640.0,3770.0,3900.0,4030.0,4160.0,4290.0,4420.0,4550.0,4680.0,4810.0,4940.0,5070.0,5200.0,5330.0,5460.0,5590.0,5720.0,5850.0,5980.0,6110.0,6240.0,6370.0,6500.0,6630.0,6760.0,6890.0,7020.0,7150.0,7280.0,7410.0,7540.0,7670.0,7800.0,7930.0,8060.0,8190.0,8320.0,8450.0,8580.0,8710.0,8840.0,8970.0,9100.0,9230.0,9360.0,9490.0,9620.0,9750.0,9880.0,10010.0,10140.0,10270.0,10400.0,10530.0,10660.0,10790.0,10920.0,11050.0,11180.0,11310.0,11440.0,11570.0,11700.0,11830.0,11960.0,12090.0,12220.0,12350.0,12480.0,12610.0,12740.0,12870.0,13000.0],"times":[961041.0,1902456.0,2836834.0,3901707.0,4744584.0,5716043.0,6675167.0,7719000.0,8591208.0,9542460.0,10461790.0,11564377.0,12358999.0,13283585.0,14297959.0,15377459.0,16202708.0,17037127.0,18092960.0,18948917.0,19825501.0,20895750.0,21773417.0,22673084.0,23797083.0,24610498.0,25576584.0,26545750.0,27408916.0,28365330.0,29247414.0,30268918.0,31267833.0,32170374.0,33088914.0,34074876.0,34970790.0,35992583.0,36864625.0,37858125.0,38769957.0,39673000.0,40634956.0,41500125.0,42591168.0,43506584.0,44518499.0,45408167.0,46432793.0,47254000.0,48267668.0,49110584.0,50524085.0,51051418.0,51981750.0,52835788.0,53873835.0,54808748.0,55796706.0,56731877.0,57578251.0,58602751.0,59469959.0,60487374.0,61335082.0,62365374.0,63288958.0,64292960.0,65176000.0,66092417.0,67090210.0,67995249.0,68933916.0,69912667.0,71454041.0,72033458.0,72737458.0,73816793.0,74585082.0,74939585.0,76644750.0,77698165.0,78422544.0,79521377.0,80408376.0,81406749.0,82300792.0,83152377.0,84176209.0,85151374.0,86053334.0,86850125.0,87972874.0,89013916.0,89971166.0,90735584.0,91598834.0,92478290.0,122025916.0,94249459.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/10/new/tukey.json ================================================ [7207.96340349546,7238.311607779198,7319.240152535835,7349.588356819573] ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/10/report/index.html ================================================ Clone/FlexStr 0.9 (LocalStr)/10 - Criterion.rs

Clone/FlexStr 0.9 (LocalStr)/10

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 7.2694 µs 7.3366 µs 7.4778 µs
0.7243811 0.7307795 0.7033100
Mean 7.2824 µs 7.3100 µs 7.3588 µs
Std. Dev. 28.996 ns 222.88 ns 378.63 ns
Median 7.2727 µs 7.2763 µs 7.2804 µs
MAD 10.133 ns 14.597 ns 18.996 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.1662% +0.3044% +1.0327% (p = 0.42 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/100/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.9 (LocalStr)","value_str":"100","throughput":null,"full_id":"Clone/FlexStr 0.9 (LocalStr)/100","directory_name":"Clone/FlexStr 0.9 (LocalStr)/100","title":"Clone/FlexStr 0.9 (LocalStr)/100"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/100/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40288.72905338233,"upper_bound":40525.9243707278},"point_estimate":40388.23303923494,"standard_error":61.62292708157086},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40229.537333333334,"upper_bound":40285.35157894737},"point_estimate":40260.28523809524,"standard_error":13.294876263100237},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":69.90212958586324,"upper_bound":125.95195967126493},"point_estimate":94.44955524950109,"standard_error":14.505872279821146},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40246.645289761,"upper_bound":40390.92496626146},"point_estimate":40306.343159450276,"standard_error":37.26031379759479},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":184.50226435691764,"upper_bound":975.7683936054018},"point_estimate":619.4655507995749,"standard_error":215.2173400160122}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/100/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[25.0,50.0,75.0,100.0,125.0,150.0,175.0,200.0,225.0,250.0,275.0,300.0,325.0,350.0,375.0,400.0,425.0,450.0,475.0,500.0,525.0,550.0,575.0,600.0,625.0,650.0,675.0,700.0,725.0,750.0,775.0,800.0,825.0,850.0,875.0,900.0,925.0,950.0,975.0,1000.0,1025.0,1050.0,1075.0,1100.0,1125.0,1150.0,1175.0,1200.0,1225.0,1250.0,1275.0,1300.0,1325.0,1350.0,1375.0,1400.0,1425.0,1450.0,1475.0,1500.0,1525.0,1550.0,1575.0,1600.0,1625.0,1650.0,1675.0,1700.0,1725.0,1750.0,1775.0,1800.0,1825.0,1850.0,1875.0,1900.0,1925.0,1950.0,1975.0,2000.0,2025.0,2050.0,2075.0,2100.0,2125.0,2150.0,2175.0,2200.0,2225.0,2250.0,2275.0,2300.0,2325.0,2350.0,2375.0,2400.0,2425.0,2450.0,2475.0,2500.0],"times":[1014040.0,2015457.0,3018039.0,4159916.0,5248082.0,6023165.0,7122166.0,8060455.0,9155997.0,10101708.0,11099917.0,12076708.0,13119542.0,14092707.0,15242083.0,16109000.0,17091665.0,18127376.0,19115542.0,20213375.0,21115542.0,22193999.0,23374042.0,24197127.0,25165668.0,26187333.0,27286838.0,28300626.0,29214208.0,30140667.0,31125625.0,32303042.0,33185708.0,34153126.0,35171918.0,36135582.0,37170627.0,38271084.0,39292875.0,40110333.0,41227418.0,42146207.0,43157083.0,49901041.0,48299168.0,46243876.0,47255041.0,48203333.0,49481417.0,50403084.0,51285876.0,52392915.0,53520958.0,54247918.0,55277083.0,56239124.0,57461541.0,58275664.0,59401416.0,60188124.0,61211251.0,62482085.0,63237666.0,64345376.0,65187749.0,66320541.0,67609373.0,68485709.0,69551709.0,70388543.0,71894044.0,72424543.0,73332458.0,74435250.0,75380251.0,76226126.0,77441208.0,78589833.0,79524792.0,80485791.0,81539167.0,82513165.0,83475833.0,84521001.0,85487457.0,86630584.0,88699291.0,88395291.0,89474122.0,90516459.0,91443041.0,92569583.0,93978831.0,94626459.0,95635707.0,96282666.0,97746123.0,98444539.0,99900208.0,100719251.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/100/base/tukey.json ================================================ [39825.864744190025,40013.06017728982,40512.247998889274,40699.443431989064] ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/100/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0005793379204389769,"upper_bound":0.005205317904025662},"point_estimate":0.0021962577543195305,"standard_error":0.0015438931343572722},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.000310018221196273,"upper_bound":0.0012995427134974147},"point_estimate":0.0006177854898179458,"standard_error":0.00041364313816379415}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/100/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.9 (LocalStr)","value_str":"100","throughput":null,"full_id":"Clone/FlexStr 0.9 (LocalStr)/100","directory_name":"Clone/FlexStr 0.9 (LocalStr)/100","title":"Clone/FlexStr 0.9 (LocalStr)/100"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/100/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40288.72905338233,"upper_bound":40525.9243707278},"point_estimate":40388.23303923494,"standard_error":61.62292708157086},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40229.537333333334,"upper_bound":40285.35157894737},"point_estimate":40260.28523809524,"standard_error":13.294876263100237},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":69.90212958586324,"upper_bound":125.95195967126493},"point_estimate":94.44955524950109,"standard_error":14.505872279821146},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40246.645289761,"upper_bound":40390.92496626146},"point_estimate":40306.343159450276,"standard_error":37.26031379759479},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":184.50226435691764,"upper_bound":975.7683936054018},"point_estimate":619.4655507995749,"standard_error":215.2173400160122}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/100/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[25.0,50.0,75.0,100.0,125.0,150.0,175.0,200.0,225.0,250.0,275.0,300.0,325.0,350.0,375.0,400.0,425.0,450.0,475.0,500.0,525.0,550.0,575.0,600.0,625.0,650.0,675.0,700.0,725.0,750.0,775.0,800.0,825.0,850.0,875.0,900.0,925.0,950.0,975.0,1000.0,1025.0,1050.0,1075.0,1100.0,1125.0,1150.0,1175.0,1200.0,1225.0,1250.0,1275.0,1300.0,1325.0,1350.0,1375.0,1400.0,1425.0,1450.0,1475.0,1500.0,1525.0,1550.0,1575.0,1600.0,1625.0,1650.0,1675.0,1700.0,1725.0,1750.0,1775.0,1800.0,1825.0,1850.0,1875.0,1900.0,1925.0,1950.0,1975.0,2000.0,2025.0,2050.0,2075.0,2100.0,2125.0,2150.0,2175.0,2200.0,2225.0,2250.0,2275.0,2300.0,2325.0,2350.0,2375.0,2400.0,2425.0,2450.0,2475.0,2500.0],"times":[1014040.0,2015457.0,3018039.0,4159916.0,5248082.0,6023165.0,7122166.0,8060455.0,9155997.0,10101708.0,11099917.0,12076708.0,13119542.0,14092707.0,15242083.0,16109000.0,17091665.0,18127376.0,19115542.0,20213375.0,21115542.0,22193999.0,23374042.0,24197127.0,25165668.0,26187333.0,27286838.0,28300626.0,29214208.0,30140667.0,31125625.0,32303042.0,33185708.0,34153126.0,35171918.0,36135582.0,37170627.0,38271084.0,39292875.0,40110333.0,41227418.0,42146207.0,43157083.0,49901041.0,48299168.0,46243876.0,47255041.0,48203333.0,49481417.0,50403084.0,51285876.0,52392915.0,53520958.0,54247918.0,55277083.0,56239124.0,57461541.0,58275664.0,59401416.0,60188124.0,61211251.0,62482085.0,63237666.0,64345376.0,65187749.0,66320541.0,67609373.0,68485709.0,69551709.0,70388543.0,71894044.0,72424543.0,73332458.0,74435250.0,75380251.0,76226126.0,77441208.0,78589833.0,79524792.0,80485791.0,81539167.0,82513165.0,83475833.0,84521001.0,85487457.0,86630584.0,88699291.0,88395291.0,89474122.0,90516459.0,91443041.0,92569583.0,93978831.0,94626459.0,95635707.0,96282666.0,97746123.0,98444539.0,99900208.0,100719251.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/100/new/tukey.json ================================================ [39825.864744190025,40013.06017728982,40512.247998889274,40699.443431989064] ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/100/report/index.html ================================================ Clone/FlexStr 0.9 (LocalStr)/100 - Criterion.rs

Clone/FlexStr 0.9 (LocalStr)/100

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 40.247 µs 40.306 µs 40.391 µs
0.9827291 0.9830227 0.9824336
Mean 40.289 µs 40.388 µs 40.526 µs
Std. Dev. 184.50 ns 619.47 ns 975.77 ns
Median 40.230 µs 40.260 µs 40.285 µs
MAD 69.902 ns 94.450 ns 125.95 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.0579% +0.2196% +0.5205% (p = 0.19 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/20/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.9 (LocalStr)","value_str":"20","throughput":null,"full_id":"Clone/FlexStr 0.9 (LocalStr)/20","directory_name":"Clone/FlexStr 0.9 (LocalStr)/20","title":"Clone/FlexStr 0.9 (LocalStr)/20"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/20/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7281.677178349198,"upper_bound":7299.96797814789},"point_estimate":7290.255747810431,"standard_error":4.66070047234321},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7273.497762148338,"upper_bound":7280.595208728653},"point_estimate":7276.387943011428,"standard_error":1.8729321730347561},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":10.155286014524505,"upper_bound":19.06194429238169},"point_estimate":14.187984385664299,"standard_error":2.404705629013086},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7272.641338264943,"upper_bound":7288.88067781517},"point_estimate":7279.903189461835,"standard_error":4.138627137709316},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":30.71480794239275,"upper_bound":62.068013255324665},"point_estimate":46.795121524617194,"standard_error":8.118570044231129}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/20/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[136.0,272.0,408.0,544.0,680.0,816.0,952.0,1088.0,1224.0,1360.0,1496.0,1632.0,1768.0,1904.0,2040.0,2176.0,2312.0,2448.0,2584.0,2720.0,2856.0,2992.0,3128.0,3264.0,3400.0,3536.0,3672.0,3808.0,3944.0,4080.0,4216.0,4352.0,4488.0,4624.0,4760.0,4896.0,5032.0,5168.0,5304.0,5440.0,5576.0,5712.0,5848.0,5984.0,6120.0,6256.0,6392.0,6528.0,6664.0,6800.0,6936.0,7072.0,7208.0,7344.0,7480.0,7616.0,7752.0,7888.0,8024.0,8160.0,8296.0,8432.0,8568.0,8704.0,8840.0,8976.0,9112.0,9248.0,9384.0,9520.0,9656.0,9792.0,9928.0,10064.0,10200.0,10336.0,10472.0,10608.0,10744.0,10880.0,11016.0,11152.0,11288.0,11424.0,11560.0,11696.0,11832.0,11968.0,12104.0,12240.0,12376.0,12512.0,12648.0,12784.0,12920.0,13056.0,13192.0,13328.0,13464.0,13600.0],"times":[996124.0,1976165.0,3003291.0,4045123.0,5002668.0,6160250.0,6928499.0,7908584.0,8932623.0,9902083.0,10927251.0,11878583.0,12920709.0,13856790.0,15036290.0,15814670.0,16846834.0,17794502.0,18799166.0,19801876.0,20867878.0,21819790.0,22751501.0,23743874.0,25087415.0,26014582.0,26951001.0,27675834.0,28651460.0,29632668.0,30697460.0,31728751.0,32731293.0,33645000.0,34765376.0,35596916.0,36516833.0,37599833.0,38581917.0,39576874.0,40500418.0,41503459.0,42964707.0,43447335.0,44731375.0,45556168.0,46571584.0,47408833.0,48445543.0,49428539.0,50437794.0,52351126.0,53357582.0,53902957.0,54376709.0,55350585.0,56513208.0,57306291.0,58356335.0,59268959.0,60409792.0,61387043.0,62362168.0,62186167.0,64347583.0,65314834.0,66174791.0,67213457.0,68218416.0,69181082.0,70489292.0,71221666.0,72382708.0,73270042.0,74129416.0,75230997.0,76178668.0,77041333.0,78157875.0,79221210.0,80079333.0,81061251.0,82016915.0,83251915.0,84168084.0,85278083.0,87738042.0,87047337.0,88176206.0,88719708.0,90046418.0,90992542.0,91910209.0,93097209.0,93845460.0,95228084.0,95917333.0,96757835.0,97819710.0,99092209.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/20/base/tukey.json ================================================ [7201.548725331495,7235.047079179272,7324.376022773344,7357.87437662112] ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/20/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.005673744078147744,"upper_bound":0.0003605779083727556},"point_estimate":-0.002426576312779538,"standard_error":0.0015416863903345306},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0006191901304677394,"upper_bound":0.0009083221758696691},"point_estimate":0.00009218043289349609,"standard_error":0.0003788249639839959}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/20/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.9 (LocalStr)","value_str":"20","throughput":null,"full_id":"Clone/FlexStr 0.9 (LocalStr)/20","directory_name":"Clone/FlexStr 0.9 (LocalStr)/20","title":"Clone/FlexStr 0.9 (LocalStr)/20"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/20/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7281.677178349198,"upper_bound":7299.96797814789},"point_estimate":7290.255747810431,"standard_error":4.66070047234321},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7273.497762148338,"upper_bound":7280.595208728653},"point_estimate":7276.387943011428,"standard_error":1.8729321730347561},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":10.155286014524505,"upper_bound":19.06194429238169},"point_estimate":14.187984385664299,"standard_error":2.404705629013086},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7272.641338264943,"upper_bound":7288.88067781517},"point_estimate":7279.903189461835,"standard_error":4.138627137709316},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":30.71480794239275,"upper_bound":62.068013255324665},"point_estimate":46.795121524617194,"standard_error":8.118570044231129}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/20/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[136.0,272.0,408.0,544.0,680.0,816.0,952.0,1088.0,1224.0,1360.0,1496.0,1632.0,1768.0,1904.0,2040.0,2176.0,2312.0,2448.0,2584.0,2720.0,2856.0,2992.0,3128.0,3264.0,3400.0,3536.0,3672.0,3808.0,3944.0,4080.0,4216.0,4352.0,4488.0,4624.0,4760.0,4896.0,5032.0,5168.0,5304.0,5440.0,5576.0,5712.0,5848.0,5984.0,6120.0,6256.0,6392.0,6528.0,6664.0,6800.0,6936.0,7072.0,7208.0,7344.0,7480.0,7616.0,7752.0,7888.0,8024.0,8160.0,8296.0,8432.0,8568.0,8704.0,8840.0,8976.0,9112.0,9248.0,9384.0,9520.0,9656.0,9792.0,9928.0,10064.0,10200.0,10336.0,10472.0,10608.0,10744.0,10880.0,11016.0,11152.0,11288.0,11424.0,11560.0,11696.0,11832.0,11968.0,12104.0,12240.0,12376.0,12512.0,12648.0,12784.0,12920.0,13056.0,13192.0,13328.0,13464.0,13600.0],"times":[996124.0,1976165.0,3003291.0,4045123.0,5002668.0,6160250.0,6928499.0,7908584.0,8932623.0,9902083.0,10927251.0,11878583.0,12920709.0,13856790.0,15036290.0,15814670.0,16846834.0,17794502.0,18799166.0,19801876.0,20867878.0,21819790.0,22751501.0,23743874.0,25087415.0,26014582.0,26951001.0,27675834.0,28651460.0,29632668.0,30697460.0,31728751.0,32731293.0,33645000.0,34765376.0,35596916.0,36516833.0,37599833.0,38581917.0,39576874.0,40500418.0,41503459.0,42964707.0,43447335.0,44731375.0,45556168.0,46571584.0,47408833.0,48445543.0,49428539.0,50437794.0,52351126.0,53357582.0,53902957.0,54376709.0,55350585.0,56513208.0,57306291.0,58356335.0,59268959.0,60409792.0,61387043.0,62362168.0,62186167.0,64347583.0,65314834.0,66174791.0,67213457.0,68218416.0,69181082.0,70489292.0,71221666.0,72382708.0,73270042.0,74129416.0,75230997.0,76178668.0,77041333.0,78157875.0,79221210.0,80079333.0,81061251.0,82016915.0,83251915.0,84168084.0,85278083.0,87738042.0,87047337.0,88176206.0,88719708.0,90046418.0,90992542.0,91910209.0,93097209.0,93845460.0,95228084.0,95917333.0,96757835.0,97819710.0,99092209.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/20/new/tukey.json ================================================ [7201.548725331495,7235.047079179272,7324.376022773344,7357.87437662112] ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/20/report/index.html ================================================ Clone/FlexStr 0.9 (LocalStr)/20 - Criterion.rs

Clone/FlexStr 0.9 (LocalStr)/20

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 7.2726 µs 7.2799 µs 7.2889 µs
0.9969529 0.9970891 0.9968810
Mean 7.2817 µs 7.2903 µs 7.3000 µs
Std. Dev. 30.715 ns 46.795 ns 62.068 ns
Median 7.2735 µs 7.2764 µs 7.2806 µs
MAD 10.155 ns 14.188 ns 19.062 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.5674% −0.2427% +0.0361% (p = 0.12 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/500/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.9 (LocalStr)","value_str":"500","throughput":null,"full_id":"Clone/FlexStr 0.9 (LocalStr)/500","directory_name":"Clone/FlexStr 0.9 (LocalStr)/500","title":"Clone/FlexStr 0.9 (LocalStr)/500"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/500/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40317.946168510214,"upper_bound":40530.41430794591},"point_estimate":40406.92463246009,"standard_error":55.17801269369053},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40230.796309260084,"upper_bound":40276.29101538462},"point_estimate":40242.10315578895,"standard_error":13.629702649397485},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":51.16889507394211,"upper_bound":103.69264910649206},"point_estimate":68.42430703249597,"standard_error":13.966714831833567},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40270.70000425678,"upper_bound":40803.21205177729},"point_estimate":40490.29824796808,"standard_error":140.23693843741825},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":225.35512487543573,"upper_bound":867.5376888084876},"point_estimate":553.7410163011788,"standard_error":194.48794920995957}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/500/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[25.0,50.0,75.0,100.0,125.0,150.0,175.0,200.0,225.0,250.0,275.0,300.0,325.0,350.0,375.0,400.0,425.0,450.0,475.0,500.0,525.0,550.0,575.0,600.0,625.0,650.0,675.0,700.0,725.0,750.0,775.0,800.0,825.0,850.0,875.0,900.0,925.0,950.0,975.0,1000.0,1025.0,1050.0,1075.0,1100.0,1125.0,1150.0,1175.0,1200.0,1225.0,1250.0,1275.0,1300.0,1325.0,1350.0,1375.0,1400.0,1425.0,1450.0,1475.0,1500.0,1525.0,1550.0,1575.0,1600.0,1625.0,1650.0,1675.0,1700.0,1725.0,1750.0,1775.0,1800.0,1825.0,1850.0,1875.0,1900.0,1925.0,1950.0,1975.0,2000.0,2025.0,2050.0,2075.0,2100.0,2125.0,2150.0,2175.0,2200.0,2225.0,2250.0,2275.0,2300.0,2325.0,2350.0,2375.0,2400.0,2425.0,2450.0,2475.0,2500.0],"times":[1012459.0,2005625.0,3013501.0,4121543.0,5049457.0,6154625.0,7143208.0,8046709.0,9059708.0,10139209.0,11122624.0,12107832.0,13088416.0,14074875.0,15309834.0,16162542.0,17185542.0,18332623.0,19250542.0,20156165.0,21137417.0,22176541.0,23157417.0,24160207.0,25175333.0,26209541.0,27576792.0,28151708.0,29311583.0,30173626.0,31898042.0,32757249.0,33254583.0,34238545.0,35204333.0,36187086.0,37248167.0,38199915.0,39234707.0,40308582.0,41298625.0,42247542.0,43260750.0,44229001.0,45373707.0,46387251.0,47266710.0,48364664.0,49246335.0,50274000.0,51365292.0,52493207.0,53294708.0,54295210.0,55269543.0,56264417.0,57250794.0,58278999.0,59294499.0,60468206.0,61348748.0,62452543.0,63356084.0,64318999.0,65360168.0,67262372.0,67395542.0,68698750.0,69462002.0,70349958.0,71353917.0,72465126.0,73313417.0,74430875.0,75540627.0,76416665.0,77414876.0,78354625.0,79487331.0,80320748.0,81422416.0,82492874.0,83416001.0,84374792.0,85402210.0,86399293.0,87646124.0,88483666.0,89504540.0,90449084.0,91537500.0,92430042.0,93561832.0,94491668.0,95509042.0,96451959.0,109171751.0,100962583.0,102955291.0,104453210.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/500/base/tukey.json ================================================ [39840.56195184769,40025.3473449048,40518.10839305712,40702.89378611424] ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/500/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0005088461066576537,"upper_bound":0.005268299398169446},"point_estimate":0.0019086681181907927,"standard_error":0.0014852160923685908},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0007056575069231963,"upper_bound":0.0009169824987711461},"point_estimate":-0.0001356926369647793,"standard_error":0.00043059813425826496}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/500/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.9 (LocalStr)","value_str":"500","throughput":null,"full_id":"Clone/FlexStr 0.9 (LocalStr)/500","directory_name":"Clone/FlexStr 0.9 (LocalStr)/500","title":"Clone/FlexStr 0.9 (LocalStr)/500"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/500/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40317.946168510214,"upper_bound":40530.41430794591},"point_estimate":40406.92463246009,"standard_error":55.17801269369053},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40230.796309260084,"upper_bound":40276.29101538462},"point_estimate":40242.10315578895,"standard_error":13.629702649397485},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":51.16889507394211,"upper_bound":103.69264910649206},"point_estimate":68.42430703249597,"standard_error":13.966714831833567},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40270.70000425678,"upper_bound":40803.21205177729},"point_estimate":40490.29824796808,"standard_error":140.23693843741825},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":225.35512487543573,"upper_bound":867.5376888084876},"point_estimate":553.7410163011788,"standard_error":194.48794920995957}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/500/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[25.0,50.0,75.0,100.0,125.0,150.0,175.0,200.0,225.0,250.0,275.0,300.0,325.0,350.0,375.0,400.0,425.0,450.0,475.0,500.0,525.0,550.0,575.0,600.0,625.0,650.0,675.0,700.0,725.0,750.0,775.0,800.0,825.0,850.0,875.0,900.0,925.0,950.0,975.0,1000.0,1025.0,1050.0,1075.0,1100.0,1125.0,1150.0,1175.0,1200.0,1225.0,1250.0,1275.0,1300.0,1325.0,1350.0,1375.0,1400.0,1425.0,1450.0,1475.0,1500.0,1525.0,1550.0,1575.0,1600.0,1625.0,1650.0,1675.0,1700.0,1725.0,1750.0,1775.0,1800.0,1825.0,1850.0,1875.0,1900.0,1925.0,1950.0,1975.0,2000.0,2025.0,2050.0,2075.0,2100.0,2125.0,2150.0,2175.0,2200.0,2225.0,2250.0,2275.0,2300.0,2325.0,2350.0,2375.0,2400.0,2425.0,2450.0,2475.0,2500.0],"times":[1012459.0,2005625.0,3013501.0,4121543.0,5049457.0,6154625.0,7143208.0,8046709.0,9059708.0,10139209.0,11122624.0,12107832.0,13088416.0,14074875.0,15309834.0,16162542.0,17185542.0,18332623.0,19250542.0,20156165.0,21137417.0,22176541.0,23157417.0,24160207.0,25175333.0,26209541.0,27576792.0,28151708.0,29311583.0,30173626.0,31898042.0,32757249.0,33254583.0,34238545.0,35204333.0,36187086.0,37248167.0,38199915.0,39234707.0,40308582.0,41298625.0,42247542.0,43260750.0,44229001.0,45373707.0,46387251.0,47266710.0,48364664.0,49246335.0,50274000.0,51365292.0,52493207.0,53294708.0,54295210.0,55269543.0,56264417.0,57250794.0,58278999.0,59294499.0,60468206.0,61348748.0,62452543.0,63356084.0,64318999.0,65360168.0,67262372.0,67395542.0,68698750.0,69462002.0,70349958.0,71353917.0,72465126.0,73313417.0,74430875.0,75540627.0,76416665.0,77414876.0,78354625.0,79487331.0,80320748.0,81422416.0,82492874.0,83416001.0,84374792.0,85402210.0,86399293.0,87646124.0,88483666.0,89504540.0,90449084.0,91537500.0,92430042.0,93561832.0,94491668.0,95509042.0,96451959.0,109171751.0,100962583.0,102955291.0,104453210.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/500/new/tukey.json ================================================ [39840.56195184769,40025.3473449048,40518.10839305712,40702.89378611424] ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/500/report/index.html ================================================ Clone/FlexStr 0.9 (LocalStr)/500 - Criterion.rs

Clone/FlexStr 0.9 (LocalStr)/500

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 40.271 µs 40.490 µs 40.803 µs
0.9451805 0.9483855 0.9419005
Mean 40.318 µs 40.407 µs 40.530 µs
Std. Dev. 225.36 ns 553.74 ns 867.54 ns
Median 40.231 µs 40.242 µs 40.276 µs
MAD 51.169 ns 68.424 ns 103.69 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.0509% +0.1909% +0.5268% (p = 0.21 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (LocalStr)/report/index.html ================================================ Clone/FlexStr 0.9 (LocalStr) Summary - Criterion.rs

Clone/FlexStr 0.9 (LocalStr)

Violin Plot

Violin Plot

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

Line Chart

Line Chart

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

Clone/FlexStr 0.9 (LocalStr)/0

PDF of Slope Regression

Clone/FlexStr 0.9 (LocalStr)/10

PDF of Slope Regression

Clone/FlexStr 0.9 (LocalStr)/20

PDF of Slope Regression

Clone/FlexStr 0.9 (LocalStr)/100

PDF of Slope Regression

Clone/FlexStr 0.9 (LocalStr)/500

PDF of Slope Regression
================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/0/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.9 (SharedStr)","value_str":"0","throughput":null,"full_id":"Clone/FlexStr 0.9 (SharedStr)/0","directory_name":"Clone/FlexStr 0.9 (SharedStr)/0","title":"Clone/FlexStr 0.9 (SharedStr)/0"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/0/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9344.996820585247,"upper_bound":9369.586376692761},"point_estimate":9356.269424931172,"standard_error":6.325307705254591},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9331.409871967655,"upper_bound":9340.141886792453},"point_estimate":9337.876712442228,"standard_error":2.3740942586732183},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":10.697062434601058,"upper_bound":19.472379962391305},"point_estimate":17.22457837044011,"standard_error":2.4259648008472534},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9333.172775194053,"upper_bound":9341.640921028968},"point_estimate":9337.0234234395,"standard_error":2.166239108119337},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":37.347283780885576,"upper_bound":83.77546907591352},"point_estimate":63.416934374449994,"standard_error":11.853150747113652}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/0/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[106.0,212.0,318.0,424.0,530.0,636.0,742.0,848.0,954.0,1060.0,1166.0,1272.0,1378.0,1484.0,1590.0,1696.0,1802.0,1908.0,2014.0,2120.0,2226.0,2332.0,2438.0,2544.0,2650.0,2756.0,2862.0,2968.0,3074.0,3180.0,3286.0,3392.0,3498.0,3604.0,3710.0,3816.0,3922.0,4028.0,4134.0,4240.0,4346.0,4452.0,4558.0,4664.0,4770.0,4876.0,4982.0,5088.0,5194.0,5300.0,5406.0,5512.0,5618.0,5724.0,5830.0,5936.0,6042.0,6148.0,6254.0,6360.0,6466.0,6572.0,6678.0,6784.0,6890.0,6996.0,7102.0,7208.0,7314.0,7420.0,7526.0,7632.0,7738.0,7844.0,7950.0,8056.0,8162.0,8268.0,8374.0,8480.0,8586.0,8692.0,8798.0,8904.0,9010.0,9116.0,9222.0,9328.0,9434.0,9540.0,9646.0,9752.0,9858.0,9964.0,10070.0,10176.0,10282.0,10388.0,10494.0,10600.0],"times":[999251.0,1980000.0,2963834.0,4080374.0,5058417.0,6093791.0,6965916.0,8162876.0,8925624.0,9946459.0,10968000.0,11866791.0,12885002.0,13846374.0,15040125.0,16001625.0,16856334.0,17905624.0,18809500.0,19827376.0,20790042.0,21814710.0,22740374.0,23823206.0,24751376.0,25840623.0,26717584.0,27684248.0,28674792.0,29653123.0,30662001.0,31675334.0,33776584.0,33654668.0,34654000.0,35694166.0,36569374.0,37573208.0,38573293.0,39513873.0,40547584.0,41513916.0,42498918.0,43476251.0,44710709.0,45536127.0,46483708.0,47576375.0,48521541.0,49483207.0,50448208.0,51412001.0,52473166.0,53434250.0,54482625.0,55391249.0,56429915.0,57684084.0,58321334.0,59343625.0,60305000.0,61444499.0,62421210.0,63365166.0,64428418.0,65843081.0,66315708.0,67361915.0,68198499.0,69209790.0,70297458.0,71206417.0,72346835.0,73175584.0,74187375.0,75229751.0,76042833.0,77307290.0,78091291.0,79122334.0,80193708.0,81034211.0,82004544.0,83037875.0,84027751.0,85254416.0,86038086.0,87356916.0,87996208.0,89120123.0,89993958.0,91190915.0,92044583.0,92878168.0,93884334.0,94853333.0,95991666.0,96856374.0,97866376.0,98922542.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/0/base/tukey.json ================================================ [9257.296684792995,9292.434741893758,9386.13622749579,9421.274284596551] ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/0/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.00320894047972709,"upper_bound":0.0009439420099736906},"point_estimate":-0.0011156708518441638,"standard_error":0.0010594783370335857},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0010269386264858404,"upper_bound":0.0004970049603663096},"point_estimate":-0.0000935054715550665,"standard_error":0.0003863570895990185}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/0/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.9 (SharedStr)","value_str":"0","throughput":null,"full_id":"Clone/FlexStr 0.9 (SharedStr)/0","directory_name":"Clone/FlexStr 0.9 (SharedStr)/0","title":"Clone/FlexStr 0.9 (SharedStr)/0"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/0/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9344.996820585247,"upper_bound":9369.586376692761},"point_estimate":9356.269424931172,"standard_error":6.325307705254591},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9331.409871967655,"upper_bound":9340.141886792453},"point_estimate":9337.876712442228,"standard_error":2.3740942586732183},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":10.697062434601058,"upper_bound":19.472379962391305},"point_estimate":17.22457837044011,"standard_error":2.4259648008472534},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9333.172775194053,"upper_bound":9341.640921028968},"point_estimate":9337.0234234395,"standard_error":2.166239108119337},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":37.347283780885576,"upper_bound":83.77546907591352},"point_estimate":63.416934374449994,"standard_error":11.853150747113652}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/0/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[106.0,212.0,318.0,424.0,530.0,636.0,742.0,848.0,954.0,1060.0,1166.0,1272.0,1378.0,1484.0,1590.0,1696.0,1802.0,1908.0,2014.0,2120.0,2226.0,2332.0,2438.0,2544.0,2650.0,2756.0,2862.0,2968.0,3074.0,3180.0,3286.0,3392.0,3498.0,3604.0,3710.0,3816.0,3922.0,4028.0,4134.0,4240.0,4346.0,4452.0,4558.0,4664.0,4770.0,4876.0,4982.0,5088.0,5194.0,5300.0,5406.0,5512.0,5618.0,5724.0,5830.0,5936.0,6042.0,6148.0,6254.0,6360.0,6466.0,6572.0,6678.0,6784.0,6890.0,6996.0,7102.0,7208.0,7314.0,7420.0,7526.0,7632.0,7738.0,7844.0,7950.0,8056.0,8162.0,8268.0,8374.0,8480.0,8586.0,8692.0,8798.0,8904.0,9010.0,9116.0,9222.0,9328.0,9434.0,9540.0,9646.0,9752.0,9858.0,9964.0,10070.0,10176.0,10282.0,10388.0,10494.0,10600.0],"times":[999251.0,1980000.0,2963834.0,4080374.0,5058417.0,6093791.0,6965916.0,8162876.0,8925624.0,9946459.0,10968000.0,11866791.0,12885002.0,13846374.0,15040125.0,16001625.0,16856334.0,17905624.0,18809500.0,19827376.0,20790042.0,21814710.0,22740374.0,23823206.0,24751376.0,25840623.0,26717584.0,27684248.0,28674792.0,29653123.0,30662001.0,31675334.0,33776584.0,33654668.0,34654000.0,35694166.0,36569374.0,37573208.0,38573293.0,39513873.0,40547584.0,41513916.0,42498918.0,43476251.0,44710709.0,45536127.0,46483708.0,47576375.0,48521541.0,49483207.0,50448208.0,51412001.0,52473166.0,53434250.0,54482625.0,55391249.0,56429915.0,57684084.0,58321334.0,59343625.0,60305000.0,61444499.0,62421210.0,63365166.0,64428418.0,65843081.0,66315708.0,67361915.0,68198499.0,69209790.0,70297458.0,71206417.0,72346835.0,73175584.0,74187375.0,75229751.0,76042833.0,77307290.0,78091291.0,79122334.0,80193708.0,81034211.0,82004544.0,83037875.0,84027751.0,85254416.0,86038086.0,87356916.0,87996208.0,89120123.0,89993958.0,91190915.0,92044583.0,92878168.0,93884334.0,94853333.0,95991666.0,96856374.0,97866376.0,98922542.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/0/new/tukey.json ================================================ [9257.296684792995,9292.434741893758,9386.13622749579,9421.274284596551] ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/0/report/index.html ================================================ Clone/FlexStr 0.9 (SharedStr)/0 - Criterion.rs

Clone/FlexStr 0.9 (SharedStr)/0

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 9.3332 µs 9.3370 µs 9.3416 µs
0.9990193 0.9990428 0.9990090
Mean 9.3450 µs 9.3563 µs 9.3696 µs
Std. Dev. 37.347 ns 63.417 ns 83.775 ns
Median 9.3314 µs 9.3379 µs 9.3401 µs
MAD 10.697 ns 17.225 ns 19.472 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.3209% −0.1116% +0.0944% (p = 0.31 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/10/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.9 (SharedStr)","value_str":"10","throughput":null,"full_id":"Clone/FlexStr 0.9 (SharedStr)/10","directory_name":"Clone/FlexStr 0.9 (SharedStr)/10","title":"Clone/FlexStr 0.9 (SharedStr)/10"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/10/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7292.325550799665,"upper_bound":7316.367075509251},"point_estimate":7303.750973833978,"standard_error":6.16219302978868},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7277.863703703703,"upper_bound":7284.566489455963},"point_estimate":7281.514936914937,"standard_error":1.7320947884821134},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12.117065046037855,"upper_bound":22.876948620107665},"point_estimate":18.683847331629686,"standard_error":2.8325206259327653},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7290.405344840336,"upper_bound":7324.845403874479},"point_estimate":7306.356909752667,"standard_error":8.806957670687789},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":44.43013699714043,"upper_bound":76.28846132797841},"point_estimate":61.83123159552304,"standard_error":8.132218618279065}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/10/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[135.0,270.0,405.0,540.0,675.0,810.0,945.0,1080.0,1215.0,1350.0,1485.0,1620.0,1755.0,1890.0,2025.0,2160.0,2295.0,2430.0,2565.0,2700.0,2835.0,2970.0,3105.0,3240.0,3375.0,3510.0,3645.0,3780.0,3915.0,4050.0,4185.0,4320.0,4455.0,4590.0,4725.0,4860.0,4995.0,5130.0,5265.0,5400.0,5535.0,5670.0,5805.0,5940.0,6075.0,6210.0,6345.0,6480.0,6615.0,6750.0,6885.0,7020.0,7155.0,7290.0,7425.0,7560.0,7695.0,7830.0,7965.0,8100.0,8235.0,8370.0,8505.0,8640.0,8775.0,8910.0,9045.0,9180.0,9315.0,9450.0,9585.0,9720.0,9855.0,9990.0,10125.0,10260.0,10395.0,10530.0,10665.0,10800.0,10935.0,11070.0,11205.0,11340.0,11475.0,11610.0,11745.0,11880.0,12015.0,12150.0,12285.0,12420.0,12555.0,12690.0,12825.0,12960.0,13095.0,13230.0,13365.0,13500.0],"times":[979792.0,1966710.0,2980958.0,3989874.0,4925292.0,5907457.0,6940791.0,8026167.0,8952542.0,9901709.0,10920959.0,11793292.0,12825834.0,13793873.0,14920000.0,15755792.0,16726750.0,17683042.0,18685917.0,19665292.0,20687125.0,21598584.0,22576001.0,23522875.0,24562790.0,25559208.0,26390833.0,27527918.0,28717832.0,29744665.0,30416039.0,31480667.0,32425290.0,33419247.0,34376166.0,35391916.0,36344210.0,37331000.0,38269707.0,39063751.0,40195792.0,41235542.0,42286628.0,43268000.0,44317834.0,45178207.0,46198166.0,47134832.0,48176292.0,49057125.0,50056626.0,50981750.0,51911335.0,52941040.0,53793460.0,55017166.0,55862417.0,57083210.0,57898584.0,58976167.0,59980125.0,60874997.0,61862417.0,62956960.0,63830207.0,64853626.0,65823541.0,67199707.0,68317584.0,71296669.0,72252790.0,72781583.0,72953335.0,74808792.0,75361001.0,76791291.0,77368583.0,77163376.0,77392583.0,78842666.0,79678876.0,80485373.0,81435624.0,82362749.0,84231545.0,84428876.0,85513585.0,86348208.0,87675251.0,88495000.0,89634999.0,90288873.0,91368626.0,92363416.0,93466751.0,94425126.0,95164043.0,96330332.0,97109584.0,98250417.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/10/base/tukey.json ================================================ [7196.488401387297,7234.348432938578,7335.308517075328,7373.16854862661] ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/10/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.00025173642147071083,"upper_bound":0.004306625878431319},"point_estimate":0.0022016481575797275,"standard_error":0.0010337766936030083},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0003752052217276258,"upper_bound":0.0010226318863493233},"point_estimate":0.0003330638369869465,"standard_error":0.00034229821230444545}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/10/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.9 (SharedStr)","value_str":"10","throughput":null,"full_id":"Clone/FlexStr 0.9 (SharedStr)/10","directory_name":"Clone/FlexStr 0.9 (SharedStr)/10","title":"Clone/FlexStr 0.9 (SharedStr)/10"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/10/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7292.325550799665,"upper_bound":7316.367075509251},"point_estimate":7303.750973833978,"standard_error":6.16219302978868},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7277.863703703703,"upper_bound":7284.566489455963},"point_estimate":7281.514936914937,"standard_error":1.7320947884821134},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12.117065046037855,"upper_bound":22.876948620107665},"point_estimate":18.683847331629686,"standard_error":2.8325206259327653},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7290.405344840336,"upper_bound":7324.845403874479},"point_estimate":7306.356909752667,"standard_error":8.806957670687789},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":44.43013699714043,"upper_bound":76.28846132797841},"point_estimate":61.83123159552304,"standard_error":8.132218618279065}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/10/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[135.0,270.0,405.0,540.0,675.0,810.0,945.0,1080.0,1215.0,1350.0,1485.0,1620.0,1755.0,1890.0,2025.0,2160.0,2295.0,2430.0,2565.0,2700.0,2835.0,2970.0,3105.0,3240.0,3375.0,3510.0,3645.0,3780.0,3915.0,4050.0,4185.0,4320.0,4455.0,4590.0,4725.0,4860.0,4995.0,5130.0,5265.0,5400.0,5535.0,5670.0,5805.0,5940.0,6075.0,6210.0,6345.0,6480.0,6615.0,6750.0,6885.0,7020.0,7155.0,7290.0,7425.0,7560.0,7695.0,7830.0,7965.0,8100.0,8235.0,8370.0,8505.0,8640.0,8775.0,8910.0,9045.0,9180.0,9315.0,9450.0,9585.0,9720.0,9855.0,9990.0,10125.0,10260.0,10395.0,10530.0,10665.0,10800.0,10935.0,11070.0,11205.0,11340.0,11475.0,11610.0,11745.0,11880.0,12015.0,12150.0,12285.0,12420.0,12555.0,12690.0,12825.0,12960.0,13095.0,13230.0,13365.0,13500.0],"times":[979792.0,1966710.0,2980958.0,3989874.0,4925292.0,5907457.0,6940791.0,8026167.0,8952542.0,9901709.0,10920959.0,11793292.0,12825834.0,13793873.0,14920000.0,15755792.0,16726750.0,17683042.0,18685917.0,19665292.0,20687125.0,21598584.0,22576001.0,23522875.0,24562790.0,25559208.0,26390833.0,27527918.0,28717832.0,29744665.0,30416039.0,31480667.0,32425290.0,33419247.0,34376166.0,35391916.0,36344210.0,37331000.0,38269707.0,39063751.0,40195792.0,41235542.0,42286628.0,43268000.0,44317834.0,45178207.0,46198166.0,47134832.0,48176292.0,49057125.0,50056626.0,50981750.0,51911335.0,52941040.0,53793460.0,55017166.0,55862417.0,57083210.0,57898584.0,58976167.0,59980125.0,60874997.0,61862417.0,62956960.0,63830207.0,64853626.0,65823541.0,67199707.0,68317584.0,71296669.0,72252790.0,72781583.0,72953335.0,74808792.0,75361001.0,76791291.0,77368583.0,77163376.0,77392583.0,78842666.0,79678876.0,80485373.0,81435624.0,82362749.0,84231545.0,84428876.0,85513585.0,86348208.0,87675251.0,88495000.0,89634999.0,90288873.0,91368626.0,92363416.0,93466751.0,94425126.0,95164043.0,96330332.0,97109584.0,98250417.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/10/new/tukey.json ================================================ [7196.488401387297,7234.348432938578,7335.308517075328,7373.16854862661] ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/10/report/index.html ================================================ Clone/FlexStr 0.9 (SharedStr)/10 - Criterion.rs

Clone/FlexStr 0.9 (SharedStr)/10

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 7.2904 µs 7.3064 µs 7.3248 µs
0.9867236 0.9873749 0.9865002
Mean 7.2923 µs 7.3038 µs 7.3164 µs
Std. Dev. 44.430 ns 61.831 ns 76.288 ns
Median 7.2779 µs 7.2815 µs 7.2846 µs
MAD 12.117 ns 18.684 ns 22.877 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time +0.0252% +0.2202% +0.4307% (p = 0.03 < 0.05)
Change within noise threshold.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/100/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.9 (SharedStr)","value_str":"100","throughput":null,"full_id":"Clone/FlexStr 0.9 (SharedStr)/100","directory_name":"Clone/FlexStr 0.9 (SharedStr)/100","title":"Clone/FlexStr 0.9 (SharedStr)/100"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/100/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":95055.86507112415,"upper_bound":95293.91401418211},"point_estimate":95166.04059505717,"standard_error":61.03271051608203},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94919.62809917355,"upper_bound":94988.58386683739},"point_estimate":94950.93061045234,"standard_error":17.53945190098385},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":137.29427628131972,"upper_bound":249.0743270465606},"point_estimate":197.0592907598723,"standard_error":27.73398223643025},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94930.40866760508,"upper_bound":95129.2989342039},"point_estimate":95018.22729556538,"standard_error":51.44811401014757},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":394.5848847339057,"upper_bound":801.6616998119332},"point_estimate":612.447474670894,"standard_error":104.19969301532802}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/100/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[11.0,22.0,33.0,44.0,55.0,66.0,77.0,88.0,99.0,110.0,121.0,132.0,143.0,154.0,165.0,176.0,187.0,198.0,209.0,220.0,231.0,242.0,253.0,264.0,275.0,286.0,297.0,308.0,319.0,330.0,341.0,352.0,363.0,374.0,385.0,396.0,407.0,418.0,429.0,440.0,451.0,462.0,473.0,484.0,495.0,506.0,517.0,528.0,539.0,550.0,561.0,572.0,583.0,594.0,605.0,616.0,627.0,638.0,649.0,660.0,671.0,682.0,693.0,704.0,715.0,726.0,737.0,748.0,759.0,770.0,781.0,792.0,803.0,814.0,825.0,836.0,847.0,858.0,869.0,880.0,891.0,902.0,913.0,924.0,935.0,946.0,957.0,968.0,979.0,990.0,1001.0,1012.0,1023.0,1034.0,1045.0,1056.0,1067.0,1078.0,1089.0,1100.0],"times":[1055209.0,2084042.0,3130460.0,4271207.0,5323668.0,6355541.0,7366790.0,8486876.0,9511333.0,10494502.0,11534167.0,12640041.0,14051792.0,15064876.0,15840208.0,16857500.0,17870664.0,18843043.0,19839168.0,20897831.0,21948582.0,22974417.0,24023125.0,25059540.0,26102209.0,27228501.0,28199793.0,29231790.0,30253417.0,31293582.0,32370876.0,33509252.0,34449706.0,35460291.0,36509957.0,37684374.0,38776042.0,39796500.0,40696749.0,41717125.0,42755792.0,43901709.0,44852415.0,45912249.0,47063417.0,47973667.0,49219002.0,50257750.0,51117250.0,52150250.0,53191876.0,54237042.0,55304500.0,56451625.0,57426375.0,58432583.0,59617960.0,60580209.0,61605126.0,62565167.0,63612751.0,64720709.0,65792082.0,66727501.0,67952583.0,68962293.0,69867041.0,70918794.0,72040417.0,73122416.0,74186084.0,75231707.0,76156623.0,77151957.0,78165709.0,79384042.0,80435332.0,81350458.0,82517416.0,83429416.0,84519081.0,85810084.0,86839041.0,87763416.0,88730000.0,89663835.0,91092209.0,91937627.0,92814250.0,93931457.0,94885377.0,95922332.0,97910751.0,98151292.0,99276710.0,101076582.0,101469625.0,102370208.0,105001834.0,104439418.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/100/base/tukey.json ================================================ [93837.75386451602,94337.88842384524,95671.5805820565,96171.71514138572] ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/100/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0010695500198687395,"upper_bound":0.002499842759677062},"point_estimate":0.0007273001260070799,"standard_error":0.0009059505525633285},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.00019134985180513375,"upper_bound":0.0009110268872754013},"point_estimate":0.000505368468029177,"standard_error":0.00027034284315136006}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/100/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.9 (SharedStr)","value_str":"100","throughput":null,"full_id":"Clone/FlexStr 0.9 (SharedStr)/100","directory_name":"Clone/FlexStr 0.9 (SharedStr)/100","title":"Clone/FlexStr 0.9 (SharedStr)/100"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/100/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":95055.86507112415,"upper_bound":95293.91401418211},"point_estimate":95166.04059505717,"standard_error":61.03271051608203},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94919.62809917355,"upper_bound":94988.58386683739},"point_estimate":94950.93061045234,"standard_error":17.53945190098385},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":137.29427628131972,"upper_bound":249.0743270465606},"point_estimate":197.0592907598723,"standard_error":27.73398223643025},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94930.40866760508,"upper_bound":95129.2989342039},"point_estimate":95018.22729556538,"standard_error":51.44811401014757},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":394.5848847339057,"upper_bound":801.6616998119332},"point_estimate":612.447474670894,"standard_error":104.19969301532802}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/100/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[11.0,22.0,33.0,44.0,55.0,66.0,77.0,88.0,99.0,110.0,121.0,132.0,143.0,154.0,165.0,176.0,187.0,198.0,209.0,220.0,231.0,242.0,253.0,264.0,275.0,286.0,297.0,308.0,319.0,330.0,341.0,352.0,363.0,374.0,385.0,396.0,407.0,418.0,429.0,440.0,451.0,462.0,473.0,484.0,495.0,506.0,517.0,528.0,539.0,550.0,561.0,572.0,583.0,594.0,605.0,616.0,627.0,638.0,649.0,660.0,671.0,682.0,693.0,704.0,715.0,726.0,737.0,748.0,759.0,770.0,781.0,792.0,803.0,814.0,825.0,836.0,847.0,858.0,869.0,880.0,891.0,902.0,913.0,924.0,935.0,946.0,957.0,968.0,979.0,990.0,1001.0,1012.0,1023.0,1034.0,1045.0,1056.0,1067.0,1078.0,1089.0,1100.0],"times":[1055209.0,2084042.0,3130460.0,4271207.0,5323668.0,6355541.0,7366790.0,8486876.0,9511333.0,10494502.0,11534167.0,12640041.0,14051792.0,15064876.0,15840208.0,16857500.0,17870664.0,18843043.0,19839168.0,20897831.0,21948582.0,22974417.0,24023125.0,25059540.0,26102209.0,27228501.0,28199793.0,29231790.0,30253417.0,31293582.0,32370876.0,33509252.0,34449706.0,35460291.0,36509957.0,37684374.0,38776042.0,39796500.0,40696749.0,41717125.0,42755792.0,43901709.0,44852415.0,45912249.0,47063417.0,47973667.0,49219002.0,50257750.0,51117250.0,52150250.0,53191876.0,54237042.0,55304500.0,56451625.0,57426375.0,58432583.0,59617960.0,60580209.0,61605126.0,62565167.0,63612751.0,64720709.0,65792082.0,66727501.0,67952583.0,68962293.0,69867041.0,70918794.0,72040417.0,73122416.0,74186084.0,75231707.0,76156623.0,77151957.0,78165709.0,79384042.0,80435332.0,81350458.0,82517416.0,83429416.0,84519081.0,85810084.0,86839041.0,87763416.0,88730000.0,89663835.0,91092209.0,91937627.0,92814250.0,93931457.0,94885377.0,95922332.0,97910751.0,98151292.0,99276710.0,101076582.0,101469625.0,102370208.0,105001834.0,104439418.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/100/new/tukey.json ================================================ [93837.75386451602,94337.88842384524,95671.5805820565,96171.71514138572] ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/100/report/index.html ================================================ Clone/FlexStr 0.9 (SharedStr)/100 - Criterion.rs

Clone/FlexStr 0.9 (SharedStr)/100

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 94.930 µs 95.018 µs 95.129 µs
0.9981087 0.9982266 0.9980380
Mean 95.056 µs 95.166 µs 95.294 µs
Std. Dev. 394.58 ns 612.45 ns 801.66 ns
Median 94.920 µs 94.951 µs 94.989 µs
MAD 137.29 ns 197.06 ns 249.07 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.1070% +0.0727% +0.2500% (p = 0.45 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/20/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.9 (SharedStr)","value_str":"20","throughput":null,"full_id":"Clone/FlexStr 0.9 (SharedStr)/20","directory_name":"Clone/FlexStr 0.9 (SharedStr)/20","title":"Clone/FlexStr 0.9 (SharedStr)/20"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/20/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7289.598233423135,"upper_bound":7314.523864795892},"point_estimate":7300.886684660979,"standard_error":6.368064647608124},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7277.799687010955,"upper_bound":7288.690476190476},"point_estimate":7283.269801500847,"standard_error":3.063125923103102},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":14.89108111945497,"upper_bound":25.39314702046688},"point_estimate":19.833970093686986,"standard_error":2.7849173538311143},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7280.678892785073,"upper_bound":7316.076110529161},"point_estimate":7294.280835733324,"standard_error":9.468519593433012},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":34.671489588419,"upper_bound":89.07466064005024},"point_estimate":64.02342380696989,"standard_error":13.936751607310669}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/20/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[135.0,270.0,405.0,540.0,675.0,810.0,945.0,1080.0,1215.0,1350.0,1485.0,1620.0,1755.0,1890.0,2025.0,2160.0,2295.0,2430.0,2565.0,2700.0,2835.0,2970.0,3105.0,3240.0,3375.0,3510.0,3645.0,3780.0,3915.0,4050.0,4185.0,4320.0,4455.0,4590.0,4725.0,4860.0,4995.0,5130.0,5265.0,5400.0,5535.0,5670.0,5805.0,5940.0,6075.0,6210.0,6345.0,6480.0,6615.0,6750.0,6885.0,7020.0,7155.0,7290.0,7425.0,7560.0,7695.0,7830.0,7965.0,8100.0,8235.0,8370.0,8505.0,8640.0,8775.0,8910.0,9045.0,9180.0,9315.0,9450.0,9585.0,9720.0,9855.0,9990.0,10125.0,10260.0,10395.0,10530.0,10665.0,10800.0,10935.0,11070.0,11205.0,11340.0,11475.0,11610.0,11745.0,11880.0,12015.0,12150.0,12285.0,12420.0,12555.0,12690.0,12825.0,12960.0,13095.0,13230.0,13365.0,13500.0],"times":[985333.0,1964206.0,3066584.0,3924750.0,4913543.0,6049916.0,6908334.0,8021084.0,8800500.0,9907791.0,11189582.0,11832584.0,12819581.0,13777457.0,14973915.0,15743999.0,16722167.0,17726918.0,18709124.0,19686291.0,20663499.0,21679876.0,22797622.0,23764168.0,24521083.0,25553124.0,26520624.0,27551250.0,28550792.0,29449372.0,30461374.0,31453540.0,32368918.0,33431375.0,34429833.0,35395456.0,36352584.0,37384625.0,38276375.0,39433083.0,40749792.0,41271290.0,42206623.0,43153915.0,44789625.0,45200042.0,46165167.0,47106584.0,48245334.0,49196792.0,50214126.0,51034543.0,52024123.0,53408208.0,53993002.0,54880875.0,55980543.0,56955415.0,58007960.0,58929625.0,60508459.0,60762418.0,61820165.0,62714208.0,64061540.0,64764295.0,65973584.0,66890000.0,67890916.0,68676000.0,69757710.0,70814293.0,71915584.0,73314418.0,74122917.0,74525501.0,75564624.0,76508293.0,77503210.0,78554583.0,79834542.0,80630752.0,81721167.0,82582211.0,83402372.0,84331044.0,90295207.0,87638166.0,87425626.0,88256499.0,89336333.0,90546166.0,91345710.0,92229835.0,93742292.0,94184043.0,95658918.0,96530083.0,97162294.0,98062085.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/20/base/tukey.json ================================================ [7185.24220208445,7227.892979838134,7341.628387181294,7384.279164934979] ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/20/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.014777352553136041,"upper_bound":-0.0015284071931784802},"point_estimate":-0.006777713858458823,"standard_error":0.003495129858511458},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.004126077621300461,"upper_bound":0.0004739706106502428},"point_estimate":-0.0008731506272996459,"standard_error":0.0011755861000834178}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/20/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.9 (SharedStr)","value_str":"20","throughput":null,"full_id":"Clone/FlexStr 0.9 (SharedStr)/20","directory_name":"Clone/FlexStr 0.9 (SharedStr)/20","title":"Clone/FlexStr 0.9 (SharedStr)/20"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/20/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7289.598233423135,"upper_bound":7314.523864795892},"point_estimate":7300.886684660979,"standard_error":6.368064647608124},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7277.799687010955,"upper_bound":7288.690476190476},"point_estimate":7283.269801500847,"standard_error":3.063125923103102},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":14.89108111945497,"upper_bound":25.39314702046688},"point_estimate":19.833970093686986,"standard_error":2.7849173538311143},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7280.678892785073,"upper_bound":7316.076110529161},"point_estimate":7294.280835733324,"standard_error":9.468519593433012},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":34.671489588419,"upper_bound":89.07466064005024},"point_estimate":64.02342380696989,"standard_error":13.936751607310669}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/20/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[135.0,270.0,405.0,540.0,675.0,810.0,945.0,1080.0,1215.0,1350.0,1485.0,1620.0,1755.0,1890.0,2025.0,2160.0,2295.0,2430.0,2565.0,2700.0,2835.0,2970.0,3105.0,3240.0,3375.0,3510.0,3645.0,3780.0,3915.0,4050.0,4185.0,4320.0,4455.0,4590.0,4725.0,4860.0,4995.0,5130.0,5265.0,5400.0,5535.0,5670.0,5805.0,5940.0,6075.0,6210.0,6345.0,6480.0,6615.0,6750.0,6885.0,7020.0,7155.0,7290.0,7425.0,7560.0,7695.0,7830.0,7965.0,8100.0,8235.0,8370.0,8505.0,8640.0,8775.0,8910.0,9045.0,9180.0,9315.0,9450.0,9585.0,9720.0,9855.0,9990.0,10125.0,10260.0,10395.0,10530.0,10665.0,10800.0,10935.0,11070.0,11205.0,11340.0,11475.0,11610.0,11745.0,11880.0,12015.0,12150.0,12285.0,12420.0,12555.0,12690.0,12825.0,12960.0,13095.0,13230.0,13365.0,13500.0],"times":[985333.0,1964206.0,3066584.0,3924750.0,4913543.0,6049916.0,6908334.0,8021084.0,8800500.0,9907791.0,11189582.0,11832584.0,12819581.0,13777457.0,14973915.0,15743999.0,16722167.0,17726918.0,18709124.0,19686291.0,20663499.0,21679876.0,22797622.0,23764168.0,24521083.0,25553124.0,26520624.0,27551250.0,28550792.0,29449372.0,30461374.0,31453540.0,32368918.0,33431375.0,34429833.0,35395456.0,36352584.0,37384625.0,38276375.0,39433083.0,40749792.0,41271290.0,42206623.0,43153915.0,44789625.0,45200042.0,46165167.0,47106584.0,48245334.0,49196792.0,50214126.0,51034543.0,52024123.0,53408208.0,53993002.0,54880875.0,55980543.0,56955415.0,58007960.0,58929625.0,60508459.0,60762418.0,61820165.0,62714208.0,64061540.0,64764295.0,65973584.0,66890000.0,67890916.0,68676000.0,69757710.0,70814293.0,71915584.0,73314418.0,74122917.0,74525501.0,75564624.0,76508293.0,77503210.0,78554583.0,79834542.0,80630752.0,81721167.0,82582211.0,83402372.0,84331044.0,90295207.0,87638166.0,87425626.0,88256499.0,89336333.0,90546166.0,91345710.0,92229835.0,93742292.0,94184043.0,95658918.0,96530083.0,97162294.0,98062085.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/20/new/tukey.json ================================================ [7185.24220208445,7227.892979838134,7341.628387181294,7384.279164934979] ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/20/report/index.html ================================================ Clone/FlexStr 0.9 (SharedStr)/20 - Criterion.rs

Clone/FlexStr 0.9 (SharedStr)/20

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 7.2807 µs 7.2943 µs 7.3161 µs
0.9885830 0.9890605 0.9878354
Mean 7.2896 µs 7.3009 µs 7.3145 µs
Std. Dev. 34.671 ns 64.023 ns 89.075 ns
Median 7.2778 µs 7.2833 µs 7.2887 µs
MAD 14.891 ns 19.834 ns 25.393 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −1.4777% −0.6778% −0.1528% (p = 0.03 < 0.05)
Change within noise threshold.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/500/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.9 (SharedStr)","value_str":"500","throughput":null,"full_id":"Clone/FlexStr 0.9 (SharedStr)/500","directory_name":"Clone/FlexStr 0.9 (SharedStr)/500","title":"Clone/FlexStr 0.9 (SharedStr)/500"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/500/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":95000.68137651862,"upper_bound":95137.79381947938},"point_estimate":95064.83537712687,"standard_error":35.0486489316131},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94927.16601021928,"upper_bound":95007.59090909091},"point_estimate":94963.10369318182,"standard_error":24.320835987112986},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":126.33988372539991,"upper_bound":223.18660676250852},"point_estimate":171.89990888786596,"standard_error":26.207065084015838},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94922.05836447112,"upper_bound":95009.70704469417},"point_estimate":94963.22044413397,"standard_error":22.424843128579678},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":241.2770076549856,"upper_bound":444.0652908393695},"point_estimate":352.3678875629201,"standard_error":51.6290801722419}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/500/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[11.0,22.0,33.0,44.0,55.0,66.0,77.0,88.0,99.0,110.0,121.0,132.0,143.0,154.0,165.0,176.0,187.0,198.0,209.0,220.0,231.0,242.0,253.0,264.0,275.0,286.0,297.0,308.0,319.0,330.0,341.0,352.0,363.0,374.0,385.0,396.0,407.0,418.0,429.0,440.0,451.0,462.0,473.0,484.0,495.0,506.0,517.0,528.0,539.0,550.0,561.0,572.0,583.0,594.0,605.0,616.0,627.0,638.0,649.0,660.0,671.0,682.0,693.0,704.0,715.0,726.0,737.0,748.0,759.0,770.0,781.0,792.0,803.0,814.0,825.0,836.0,847.0,858.0,869.0,880.0,891.0,902.0,913.0,924.0,935.0,946.0,957.0,968.0,979.0,990.0,1001.0,1012.0,1023.0,1034.0,1045.0,1056.0,1067.0,1078.0,1089.0,1100.0],"times":[1062084.0,2090167.0,3127875.0,4241832.0,5294999.0,6269958.0,7339955.0,8421582.0,9412375.0,10478751.0,11534875.0,12516166.0,13573209.0,14622791.0,15838251.0,16765669.0,17819668.0,18836625.0,19902164.0,20916625.0,21947460.0,23127748.0,24084082.0,25051583.0,26108500.0,27188374.0,28190458.0,29222625.0,30268045.0,31304123.0,32426792.0,33427125.0,34429083.0,35474709.0,36520499.0,37551417.0,38667335.0,40061125.0,40723876.0,41783625.0,42750543.0,43856583.0,44840667.0,46033752.0,47022750.0,48064874.0,49282419.0,50145625.0,51285249.0,52248041.0,53202541.0,54349874.0,56135377.0,56841790.0,57480169.0,58487250.0,59399460.0,60520252.0,61611455.0,62556415.0,63695791.0,64788707.0,65850252.0,66922247.0,67787082.0,69030708.0,69977124.0,71010416.0,71992418.0,73017915.0,74075125.0,75088165.0,76522957.0,77231834.0,78258541.0,79306708.0,80299708.0,81481333.0,82679084.0,83759041.0,84462581.0,85572709.0,86756377.0,87653504.0,89040707.0,89700249.0,90767167.0,91821582.0,93017834.0,93890336.0,95120709.0,95945290.0,96955752.0,98041502.0,99115958.0,100364332.0,101480292.0,102227586.0,103379002.0,104620542.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/500/base/tukey.json ================================================ [94097.87588127544,94476.83565271842,95487.39504323305,95866.35481467603] ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/500/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.002459709543171176,"upper_bound":0.0003361599396172641},"point_estimate":-0.0010169094459792083,"standard_error":0.0007128168189219645},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0007308185451609939,"upper_bound":0.0006317145950749392},"point_estimate":-0.00006395449528395769,"standard_error":0.00034911337619577247}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/500/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"FlexStr 0.9 (SharedStr)","value_str":"500","throughput":null,"full_id":"Clone/FlexStr 0.9 (SharedStr)/500","directory_name":"Clone/FlexStr 0.9 (SharedStr)/500","title":"Clone/FlexStr 0.9 (SharedStr)/500"} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/500/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":95000.68137651862,"upper_bound":95137.79381947938},"point_estimate":95064.83537712687,"standard_error":35.0486489316131},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94927.16601021928,"upper_bound":95007.59090909091},"point_estimate":94963.10369318182,"standard_error":24.320835987112986},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":126.33988372539991,"upper_bound":223.18660676250852},"point_estimate":171.89990888786596,"standard_error":26.207065084015838},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":94922.05836447112,"upper_bound":95009.70704469417},"point_estimate":94963.22044413397,"standard_error":22.424843128579678},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":241.2770076549856,"upper_bound":444.0652908393695},"point_estimate":352.3678875629201,"standard_error":51.6290801722419}} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/500/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[11.0,22.0,33.0,44.0,55.0,66.0,77.0,88.0,99.0,110.0,121.0,132.0,143.0,154.0,165.0,176.0,187.0,198.0,209.0,220.0,231.0,242.0,253.0,264.0,275.0,286.0,297.0,308.0,319.0,330.0,341.0,352.0,363.0,374.0,385.0,396.0,407.0,418.0,429.0,440.0,451.0,462.0,473.0,484.0,495.0,506.0,517.0,528.0,539.0,550.0,561.0,572.0,583.0,594.0,605.0,616.0,627.0,638.0,649.0,660.0,671.0,682.0,693.0,704.0,715.0,726.0,737.0,748.0,759.0,770.0,781.0,792.0,803.0,814.0,825.0,836.0,847.0,858.0,869.0,880.0,891.0,902.0,913.0,924.0,935.0,946.0,957.0,968.0,979.0,990.0,1001.0,1012.0,1023.0,1034.0,1045.0,1056.0,1067.0,1078.0,1089.0,1100.0],"times":[1062084.0,2090167.0,3127875.0,4241832.0,5294999.0,6269958.0,7339955.0,8421582.0,9412375.0,10478751.0,11534875.0,12516166.0,13573209.0,14622791.0,15838251.0,16765669.0,17819668.0,18836625.0,19902164.0,20916625.0,21947460.0,23127748.0,24084082.0,25051583.0,26108500.0,27188374.0,28190458.0,29222625.0,30268045.0,31304123.0,32426792.0,33427125.0,34429083.0,35474709.0,36520499.0,37551417.0,38667335.0,40061125.0,40723876.0,41783625.0,42750543.0,43856583.0,44840667.0,46033752.0,47022750.0,48064874.0,49282419.0,50145625.0,51285249.0,52248041.0,53202541.0,54349874.0,56135377.0,56841790.0,57480169.0,58487250.0,59399460.0,60520252.0,61611455.0,62556415.0,63695791.0,64788707.0,65850252.0,66922247.0,67787082.0,69030708.0,69977124.0,71010416.0,71992418.0,73017915.0,74075125.0,75088165.0,76522957.0,77231834.0,78258541.0,79306708.0,80299708.0,81481333.0,82679084.0,83759041.0,84462581.0,85572709.0,86756377.0,87653504.0,89040707.0,89700249.0,90767167.0,91821582.0,93017834.0,93890336.0,95120709.0,95945290.0,96955752.0,98041502.0,99115958.0,100364332.0,101480292.0,102227586.0,103379002.0,104620542.0]} ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/500/new/tukey.json ================================================ [94097.87588127544,94476.83565271842,95487.39504323305,95866.35481467603] ================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/500/report/index.html ================================================ Clone/FlexStr 0.9 (SharedStr)/500 - Criterion.rs

Clone/FlexStr 0.9 (SharedStr)/500

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 94.922 µs 94.963 µs 95.010 µs
0.9993397 0.9993655 0.9993326
Mean 95.001 µs 95.065 µs 95.138 µs
Std. Dev. 241.28 ns 352.37 ns 444.07 ns
Median 94.927 µs 94.963 µs 95.008 µs
MAD 126.34 ns 171.90 ns 223.19 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.2460% −0.1017% +0.0336% (p = 0.17 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/FlexStr 0.9 (SharedStr)/report/index.html ================================================ Clone/FlexStr 0.9 (SharedStr) Summary - Criterion.rs

Clone/FlexStr 0.9 (SharedStr)

Violin Plot

Violin Plot

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

Line Chart

Line Chart

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

Clone/FlexStr 0.9 (SharedStr)/0

PDF of Slope Regression

Clone/FlexStr 0.9 (SharedStr)/10

PDF of Slope Regression

Clone/FlexStr 0.9 (SharedStr)/20

PDF of Slope Regression

Clone/FlexStr 0.9 (SharedStr)/100

PDF of Slope Regression

Clone/FlexStr 0.9 (SharedStr)/500

PDF of Slope Regression
================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/0/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"InlineFlexStr 0.1 (InlineStr)","value_str":"0","throughput":null,"full_id":"Clone/InlineFlexStr 0.1 (InlineStr)/0","directory_name":"Clone/InlineFlexStr 0.1 (InlineStr)/0","title":"Clone/InlineFlexStr 0.1 (InlineStr)/0"} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/0/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7406.460784421094,"upper_bound":7432.227529448185},"point_estimate":7418.071988029446,"standard_error":6.622660614293874},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7393.522388059701,"upper_bound":7399.6190920398},"point_estimate":7397.431233331774,"standard_error":1.6087591179963945},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":8.688796163525423,"upper_bound":17.00126836527793},"point_estimate":13.06253617558136,"standard_error":2.229434704419801},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7394.40390209537,"upper_bound":7401.092641827742},"point_estimate":7397.435247965875,"standard_error":1.7043283839961496},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":33.87061668619118,"upper_bound":93.39912989771258},"point_estimate":66.63782926042694,"standard_error":15.225702290904259}} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/0/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[134.0,268.0,402.0,536.0,670.0,804.0,938.0,1072.0,1206.0,1340.0,1474.0,1608.0,1742.0,1876.0,2010.0,2144.0,2278.0,2412.0,2546.0,2680.0,2814.0,2948.0,3082.0,3216.0,3350.0,3484.0,3618.0,3752.0,3886.0,4020.0,4154.0,4288.0,4422.0,4556.0,4690.0,4824.0,4958.0,5092.0,5226.0,5360.0,5494.0,5628.0,5762.0,5896.0,6030.0,6164.0,6298.0,6432.0,6566.0,6700.0,6834.0,6968.0,7102.0,7236.0,7370.0,7504.0,7638.0,7772.0,7906.0,8040.0,8174.0,8308.0,8442.0,8576.0,8710.0,8844.0,8978.0,9112.0,9246.0,9380.0,9514.0,9648.0,9782.0,9916.0,10050.0,10184.0,10318.0,10452.0,10586.0,10720.0,10854.0,10988.0,11122.0,11256.0,11390.0,11524.0,11658.0,11792.0,11926.0,12060.0,12194.0,12328.0,12462.0,12596.0,12730.0,12864.0,12998.0,13132.0,13266.0,13400.0],"times":[996496.0,1977623.0,2974044.0,4186043.0,5202582.0,6008125.0,6974916.0,8154792.0,8994416.0,10022208.0,10990250.0,11897753.0,12927374.0,13870248.0,15232125.0,16220541.0,16864585.0,17885707.0,18833001.0,19827709.0,20788540.0,21827583.0,22856498.0,23976293.0,25059333.0,26144499.0,26775293.0,27744416.0,28725749.0,29710669.0,30681124.0,31731792.0,32712043.0,33679877.0,34660957.0,35786124.0,36643460.0,37632292.0,38699126.0,39641001.0,40731124.0,41586457.0,42622165.0,43721625.0,44530251.0,45577831.0,46546707.0,47876248.0,49368707.0,49531000.0,50501875.0,51493125.0,52453415.0,53450417.0,54470877.0,55436667.0,56532416.0,57419711.0,58892957.0,59738749.0,60471958.0,61459583.0,62351334.0,63409957.0,64526376.0,65439044.0,66364334.0,67475541.0,68423249.0,69567501.0,70449001.0,71349043.0,72484332.0,73304125.0,74465085.0,75340957.0,76221957.0,77177501.0,78210751.0,79165544.0,80374083.0,81180917.0,82203623.0,83145668.0,84135874.0,85286873.0,86237666.0,87241122.0,88161248.0,89056709.0,90062709.0,91012499.0,92135415.0,93069667.0,94387542.0,95016541.0,96113377.0,97161999.0,98039832.0,99004750.0]} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/0/base/tukey.json ================================================ [7319.007379305212,7354.612275329989,7449.558664729392,7485.163560754168] ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/0/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.05140456750262948,"upper_bound":-0.003852790223078966},"point_estimate":-0.025059437204786095,"standard_error":0.012184905853616151},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0016095526006678629,"upper_bound":0.00008685914970187778},"point_estimate":-0.0003929615915194695,"standard_error":0.00045707302887564814}} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/0/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"InlineFlexStr 0.1 (InlineStr)","value_str":"0","throughput":null,"full_id":"Clone/InlineFlexStr 0.1 (InlineStr)/0","directory_name":"Clone/InlineFlexStr 0.1 (InlineStr)/0","title":"Clone/InlineFlexStr 0.1 (InlineStr)/0"} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/0/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7406.460784421094,"upper_bound":7432.227529448185},"point_estimate":7418.071988029446,"standard_error":6.622660614293874},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7393.522388059701,"upper_bound":7399.6190920398},"point_estimate":7397.431233331774,"standard_error":1.6087591179963945},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":8.688796163525423,"upper_bound":17.00126836527793},"point_estimate":13.06253617558136,"standard_error":2.229434704419801},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7394.40390209537,"upper_bound":7401.092641827742},"point_estimate":7397.435247965875,"standard_error":1.7043283839961496},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":33.87061668619118,"upper_bound":93.39912989771258},"point_estimate":66.63782926042694,"standard_error":15.225702290904259}} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/0/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[134.0,268.0,402.0,536.0,670.0,804.0,938.0,1072.0,1206.0,1340.0,1474.0,1608.0,1742.0,1876.0,2010.0,2144.0,2278.0,2412.0,2546.0,2680.0,2814.0,2948.0,3082.0,3216.0,3350.0,3484.0,3618.0,3752.0,3886.0,4020.0,4154.0,4288.0,4422.0,4556.0,4690.0,4824.0,4958.0,5092.0,5226.0,5360.0,5494.0,5628.0,5762.0,5896.0,6030.0,6164.0,6298.0,6432.0,6566.0,6700.0,6834.0,6968.0,7102.0,7236.0,7370.0,7504.0,7638.0,7772.0,7906.0,8040.0,8174.0,8308.0,8442.0,8576.0,8710.0,8844.0,8978.0,9112.0,9246.0,9380.0,9514.0,9648.0,9782.0,9916.0,10050.0,10184.0,10318.0,10452.0,10586.0,10720.0,10854.0,10988.0,11122.0,11256.0,11390.0,11524.0,11658.0,11792.0,11926.0,12060.0,12194.0,12328.0,12462.0,12596.0,12730.0,12864.0,12998.0,13132.0,13266.0,13400.0],"times":[996496.0,1977623.0,2974044.0,4186043.0,5202582.0,6008125.0,6974916.0,8154792.0,8994416.0,10022208.0,10990250.0,11897753.0,12927374.0,13870248.0,15232125.0,16220541.0,16864585.0,17885707.0,18833001.0,19827709.0,20788540.0,21827583.0,22856498.0,23976293.0,25059333.0,26144499.0,26775293.0,27744416.0,28725749.0,29710669.0,30681124.0,31731792.0,32712043.0,33679877.0,34660957.0,35786124.0,36643460.0,37632292.0,38699126.0,39641001.0,40731124.0,41586457.0,42622165.0,43721625.0,44530251.0,45577831.0,46546707.0,47876248.0,49368707.0,49531000.0,50501875.0,51493125.0,52453415.0,53450417.0,54470877.0,55436667.0,56532416.0,57419711.0,58892957.0,59738749.0,60471958.0,61459583.0,62351334.0,63409957.0,64526376.0,65439044.0,66364334.0,67475541.0,68423249.0,69567501.0,70449001.0,71349043.0,72484332.0,73304125.0,74465085.0,75340957.0,76221957.0,77177501.0,78210751.0,79165544.0,80374083.0,81180917.0,82203623.0,83145668.0,84135874.0,85286873.0,86237666.0,87241122.0,88161248.0,89056709.0,90062709.0,91012499.0,92135415.0,93069667.0,94387542.0,95016541.0,96113377.0,97161999.0,98039832.0,99004750.0]} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/0/new/tukey.json ================================================ [7319.007379305212,7354.612275329989,7449.558664729392,7485.163560754168] ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/0/report/index.html ================================================ Clone/InlineFlexStr 0.1 (InlineStr)/0 - Criterion.rs

Clone/InlineFlexStr 0.1 (InlineStr)/0

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 7.3944 µs 7.3974 µs 7.4011 µs
0.9990786 0.9991019 0.9990680
Mean 7.4065 µs 7.4181 µs 7.4322 µs
Std. Dev. 33.871 ns 66.638 ns 93.399 ns
Median 7.3935 µs 7.3974 µs 7.3996 µs
MAD 8.6888 ns 13.063 ns 17.001 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −5.1405% −2.5059% −0.3853% (p = 0.03 < 0.05)
Change within noise threshold.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/10/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"InlineFlexStr 0.1 (InlineStr)","value_str":"10","throughput":null,"full_id":"Clone/InlineFlexStr 0.1 (InlineStr)/10","directory_name":"Clone/InlineFlexStr 0.1 (InlineStr)/10","title":"Clone/InlineFlexStr 0.1 (InlineStr)/10"} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/10/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7676.234505582232,"upper_bound":8759.872198760373},"point_estimate":8159.176820061685,"standard_error":279.39000661739965},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7405.7862223125385,"upper_bound":7433.903935370341},"point_estimate":7416.1,"standard_error":6.682678617803615},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":26.20030529362538,"upper_bound":65.37415006428765},"point_estimate":40.27214784962071,"standard_error":9.662065388834053},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7454.735446906152,"upper_bound":7674.712023091961},"point_estimate":7546.565709596883,"standard_error":56.137740847411976},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1283.1312334626598,"upper_bound":4007.3035852877097},"point_estimate":2809.7516485107426,"standard_error":690.4536667395242}} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/10/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[133.0,266.0,399.0,532.0,665.0,798.0,931.0,1064.0,1197.0,1330.0,1463.0,1596.0,1729.0,1862.0,1995.0,2128.0,2261.0,2394.0,2527.0,2660.0,2793.0,2926.0,3059.0,3192.0,3325.0,3458.0,3591.0,3724.0,3857.0,3990.0,4123.0,4256.0,4389.0,4522.0,4655.0,4788.0,4921.0,5054.0,5187.0,5320.0,5453.0,5586.0,5719.0,5852.0,5985.0,6118.0,6251.0,6384.0,6517.0,6650.0,6783.0,6916.0,7049.0,7182.0,7315.0,7448.0,7581.0,7714.0,7847.0,7980.0,8113.0,8246.0,8379.0,8512.0,8645.0,8778.0,8911.0,9044.0,9177.0,9310.0,9443.0,9576.0,9709.0,9842.0,9975.0,10108.0,10241.0,10374.0,10507.0,10640.0,10773.0,10906.0,11039.0,11172.0,11305.0,11438.0,11571.0,11704.0,11837.0,11970.0,12103.0,12236.0,12369.0,12502.0,12635.0,12768.0,12901.0,13034.0,13167.0,13300.0],"times":[1001167.0,1994790.0,2958627.0,4147666.0,5029832.0,5987456.0,7060043.0,8225584.0,8844084.0,9857666.0,10919584.0,12002248.0,12832125.0,13972667.0,15257334.0,16367207.0,18595958.0,17937292.0,18835374.0,19896709.0,21091376.0,76812625.0,23643500.0,59073416.0,56652665.0,63741332.0,63909164.0,44449585.0,33649083.0,31281376.0,31367082.0,32009376.0,32800000.0,33718873.0,34880959.0,53162915.0,36443874.0,37361125.0,38412040.0,39479043.0,40274916.0,41266752.0,42429166.0,43508669.0,44334792.0,46015582.0,46490750.0,47832667.0,48195876.0,49489125.0,50472416.0,51278709.0,52450875.0,53144874.0,54051498.0,55090251.0,56022957.0,56959915.0,58272167.0,59188416.0,60024459.0,61175626.0,62104291.0,62911125.0,63823876.0,64858377.0,65818125.0,66844918.0,68146625.0,68890459.0,69912084.0,70940416.0,71910459.0,73099791.0,73699459.0,74757291.0,75797919.0,76685791.0,77751873.0,78648293.0,79537457.0,80722668.0,81837792.0,82585291.0,83601291.0,84499250.0,85449332.0,86442082.0,89114628.0,88420958.0,89433832.0,90372666.0,91343170.0,92938667.0,93596584.0,94519209.0,95760708.0,96404292.0,97350291.0,98460374.0]} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/10/base/tukey.json ================================================ [7068.709327702374,7231.694957767797,7666.323304608924,7829.308934674347] ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/10/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.030581218621004543,"upper_bound":0.17974073724053402},"point_estimate":0.10164610625583803,"standard_error":0.03828428876801491},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.0013287201198703968,"upper_bound":0.004778075302338961},"point_estimate":0.0026938241078919845,"standard_error":0.0008789550636204262}} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/10/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"InlineFlexStr 0.1 (InlineStr)","value_str":"10","throughput":null,"full_id":"Clone/InlineFlexStr 0.1 (InlineStr)/10","directory_name":"Clone/InlineFlexStr 0.1 (InlineStr)/10","title":"Clone/InlineFlexStr 0.1 (InlineStr)/10"} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/10/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7676.234505582232,"upper_bound":8759.872198760373},"point_estimate":8159.176820061685,"standard_error":279.39000661739965},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7405.7862223125385,"upper_bound":7433.903935370341},"point_estimate":7416.1,"standard_error":6.682678617803615},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":26.20030529362538,"upper_bound":65.37415006428765},"point_estimate":40.27214784962071,"standard_error":9.662065388834053},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7454.735446906152,"upper_bound":7674.712023091961},"point_estimate":7546.565709596883,"standard_error":56.137740847411976},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1283.1312334626598,"upper_bound":4007.3035852877097},"point_estimate":2809.7516485107426,"standard_error":690.4536667395242}} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/10/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[133.0,266.0,399.0,532.0,665.0,798.0,931.0,1064.0,1197.0,1330.0,1463.0,1596.0,1729.0,1862.0,1995.0,2128.0,2261.0,2394.0,2527.0,2660.0,2793.0,2926.0,3059.0,3192.0,3325.0,3458.0,3591.0,3724.0,3857.0,3990.0,4123.0,4256.0,4389.0,4522.0,4655.0,4788.0,4921.0,5054.0,5187.0,5320.0,5453.0,5586.0,5719.0,5852.0,5985.0,6118.0,6251.0,6384.0,6517.0,6650.0,6783.0,6916.0,7049.0,7182.0,7315.0,7448.0,7581.0,7714.0,7847.0,7980.0,8113.0,8246.0,8379.0,8512.0,8645.0,8778.0,8911.0,9044.0,9177.0,9310.0,9443.0,9576.0,9709.0,9842.0,9975.0,10108.0,10241.0,10374.0,10507.0,10640.0,10773.0,10906.0,11039.0,11172.0,11305.0,11438.0,11571.0,11704.0,11837.0,11970.0,12103.0,12236.0,12369.0,12502.0,12635.0,12768.0,12901.0,13034.0,13167.0,13300.0],"times":[1001167.0,1994790.0,2958627.0,4147666.0,5029832.0,5987456.0,7060043.0,8225584.0,8844084.0,9857666.0,10919584.0,12002248.0,12832125.0,13972667.0,15257334.0,16367207.0,18595958.0,17937292.0,18835374.0,19896709.0,21091376.0,76812625.0,23643500.0,59073416.0,56652665.0,63741332.0,63909164.0,44449585.0,33649083.0,31281376.0,31367082.0,32009376.0,32800000.0,33718873.0,34880959.0,53162915.0,36443874.0,37361125.0,38412040.0,39479043.0,40274916.0,41266752.0,42429166.0,43508669.0,44334792.0,46015582.0,46490750.0,47832667.0,48195876.0,49489125.0,50472416.0,51278709.0,52450875.0,53144874.0,54051498.0,55090251.0,56022957.0,56959915.0,58272167.0,59188416.0,60024459.0,61175626.0,62104291.0,62911125.0,63823876.0,64858377.0,65818125.0,66844918.0,68146625.0,68890459.0,69912084.0,70940416.0,71910459.0,73099791.0,73699459.0,74757291.0,75797919.0,76685791.0,77751873.0,78648293.0,79537457.0,80722668.0,81837792.0,82585291.0,83601291.0,84499250.0,85449332.0,86442082.0,89114628.0,88420958.0,89433832.0,90372666.0,91343170.0,92938667.0,93596584.0,94519209.0,95760708.0,96404292.0,97350291.0,98460374.0]} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/10/new/tukey.json ================================================ [7068.709327702374,7231.694957767797,7666.323304608924,7829.308934674347] ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/10/report/index.html ================================================ Clone/InlineFlexStr 0.1 (InlineStr)/10 - Criterion.rs

Clone/InlineFlexStr 0.1 (InlineStr)/10

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 7.4547 µs 7.5466 µs 7.6747 µs
0.1965403 0.1974566 0.1956801
Mean 7.6762 µs 8.1592 µs 8.7599 µs
Std. Dev. 1.2831 µs 2.8098 µs 4.0073 µs
Median 7.4058 µs 7.4161 µs 7.4339 µs
MAD 26.200 ns 40.272 ns 65.374 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time +3.0581% +10.165% +17.974% (p = 0.00 < 0.05)
Performance has regressed.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/100/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"InlineFlexStr 0.1 (InlineStr)","value_str":"100","throughput":null,"full_id":"Clone/InlineFlexStr 0.1 (InlineStr)/100","directory_name":"Clone/InlineFlexStr 0.1 (InlineStr)/100","title":"Clone/InlineFlexStr 0.1 (InlineStr)/100"} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/100/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7402.313354711428,"upper_bound":7420.292595102446},"point_estimate":7410.651908227367,"standard_error":4.606982158367305},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7391.160397789345,"upper_bound":7399.557644110276},"point_estimate":7394.544421865475,"standard_error":2.2279081496786426},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":10.305256993822539,"upper_bound":20.05080635985484},"point_estimate":14.193799982666796,"standard_error":2.5636772770729905},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7390.240533109654,"upper_bound":7395.618515453784},"point_estimate":7392.73376594286,"standard_error":1.3769897142505048},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":28.938284522704127,"upper_bound":60.47659383391359},"point_estimate":46.20382622978935,"standard_error":8.059652980235482}} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/100/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[133.0,266.0,399.0,532.0,665.0,798.0,931.0,1064.0,1197.0,1330.0,1463.0,1596.0,1729.0,1862.0,1995.0,2128.0,2261.0,2394.0,2527.0,2660.0,2793.0,2926.0,3059.0,3192.0,3325.0,3458.0,3591.0,3724.0,3857.0,3990.0,4123.0,4256.0,4389.0,4522.0,4655.0,4788.0,4921.0,5054.0,5187.0,5320.0,5453.0,5586.0,5719.0,5852.0,5985.0,6118.0,6251.0,6384.0,6517.0,6650.0,6783.0,6916.0,7049.0,7182.0,7315.0,7448.0,7581.0,7714.0,7847.0,7980.0,8113.0,8246.0,8379.0,8512.0,8645.0,8778.0,8911.0,9044.0,9177.0,9310.0,9443.0,9576.0,9709.0,9842.0,9975.0,10108.0,10241.0,10374.0,10507.0,10640.0,10773.0,10906.0,11039.0,11172.0,11305.0,11438.0,11571.0,11704.0,11837.0,11970.0,12103.0,12236.0,12369.0,12502.0,12635.0,12768.0,12901.0,13034.0,13167.0,13300.0],"times":[994542.0,1991167.0,2946792.0,4028876.0,5075376.0,5938791.0,6918248.0,7943583.0,8865958.0,9948332.0,11075291.0,11956251.0,12792793.0,13794210.0,14820959.0,15843294.0,16773292.0,17714541.0,18753835.0,19669292.0,20771624.0,21692415.0,22760294.0,23663418.0,24578877.0,25556208.0,26615124.0,27620623.0,28823167.0,30387875.0,30574375.0,31479457.0,32724960.0,33373918.0,34390040.0,35400166.0,36388916.0,37357043.0,38417000.0,39289500.0,40240794.0,41324374.0,42349459.0,43200416.0,44329583.0,45294960.0,46468999.0,47149417.0,48244251.0,49120711.0,50124834.0,51040832.0,52123250.0,53069791.0,54005292.0,55052834.0,56064583.0,56978957.0,57946085.0,58977292.0,60011541.0,61058458.0,61954709.0,62987085.0,63977416.0,64804917.0,65794084.0,66802458.0,67887461.0,68895627.0,69771502.0,70683418.0,71633793.0,72583125.0,73597541.0,74655291.0,75681542.0,76634538.0,77724625.0,78556374.0,79635585.0,80594042.0,81830374.0,82524415.0,83497874.0,84469377.0,85451416.0,86522002.0,87632293.0,88480583.0,89538417.0,90393837.0,91341498.0,92651418.0,93281626.0,94329791.0,95304208.0,96251251.0,97442707.0,98248710.0]} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/100/base/tukey.json ================================================ [7310.378796867532,7348.458637479656,7450.004879111988,7488.084719724113] ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/100/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0017980863290607413,"upper_bound":0.0015751949001530919},"point_estimate":-0.00013226447200931357,"standard_error":0.0008573774378498929},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0009724885143530537,"upper_bound":0.000359268899852605},"point_estimate":-0.0003920338966900694,"standard_error":0.0003537187733158258}} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/100/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"InlineFlexStr 0.1 (InlineStr)","value_str":"100","throughput":null,"full_id":"Clone/InlineFlexStr 0.1 (InlineStr)/100","directory_name":"Clone/InlineFlexStr 0.1 (InlineStr)/100","title":"Clone/InlineFlexStr 0.1 (InlineStr)/100"} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/100/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7402.313354711428,"upper_bound":7420.292595102446},"point_estimate":7410.651908227367,"standard_error":4.606982158367305},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7391.160397789345,"upper_bound":7399.557644110276},"point_estimate":7394.544421865475,"standard_error":2.2279081496786426},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":10.305256993822539,"upper_bound":20.05080635985484},"point_estimate":14.193799982666796,"standard_error":2.5636772770729905},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7390.240533109654,"upper_bound":7395.618515453784},"point_estimate":7392.73376594286,"standard_error":1.3769897142505048},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":28.938284522704127,"upper_bound":60.47659383391359},"point_estimate":46.20382622978935,"standard_error":8.059652980235482}} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/100/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[133.0,266.0,399.0,532.0,665.0,798.0,931.0,1064.0,1197.0,1330.0,1463.0,1596.0,1729.0,1862.0,1995.0,2128.0,2261.0,2394.0,2527.0,2660.0,2793.0,2926.0,3059.0,3192.0,3325.0,3458.0,3591.0,3724.0,3857.0,3990.0,4123.0,4256.0,4389.0,4522.0,4655.0,4788.0,4921.0,5054.0,5187.0,5320.0,5453.0,5586.0,5719.0,5852.0,5985.0,6118.0,6251.0,6384.0,6517.0,6650.0,6783.0,6916.0,7049.0,7182.0,7315.0,7448.0,7581.0,7714.0,7847.0,7980.0,8113.0,8246.0,8379.0,8512.0,8645.0,8778.0,8911.0,9044.0,9177.0,9310.0,9443.0,9576.0,9709.0,9842.0,9975.0,10108.0,10241.0,10374.0,10507.0,10640.0,10773.0,10906.0,11039.0,11172.0,11305.0,11438.0,11571.0,11704.0,11837.0,11970.0,12103.0,12236.0,12369.0,12502.0,12635.0,12768.0,12901.0,13034.0,13167.0,13300.0],"times":[994542.0,1991167.0,2946792.0,4028876.0,5075376.0,5938791.0,6918248.0,7943583.0,8865958.0,9948332.0,11075291.0,11956251.0,12792793.0,13794210.0,14820959.0,15843294.0,16773292.0,17714541.0,18753835.0,19669292.0,20771624.0,21692415.0,22760294.0,23663418.0,24578877.0,25556208.0,26615124.0,27620623.0,28823167.0,30387875.0,30574375.0,31479457.0,32724960.0,33373918.0,34390040.0,35400166.0,36388916.0,37357043.0,38417000.0,39289500.0,40240794.0,41324374.0,42349459.0,43200416.0,44329583.0,45294960.0,46468999.0,47149417.0,48244251.0,49120711.0,50124834.0,51040832.0,52123250.0,53069791.0,54005292.0,55052834.0,56064583.0,56978957.0,57946085.0,58977292.0,60011541.0,61058458.0,61954709.0,62987085.0,63977416.0,64804917.0,65794084.0,66802458.0,67887461.0,68895627.0,69771502.0,70683418.0,71633793.0,72583125.0,73597541.0,74655291.0,75681542.0,76634538.0,77724625.0,78556374.0,79635585.0,80594042.0,81830374.0,82524415.0,83497874.0,84469377.0,85451416.0,86522002.0,87632293.0,88480583.0,89538417.0,90393837.0,91341498.0,92651418.0,93281626.0,94329791.0,95304208.0,96251251.0,97442707.0,98248710.0]} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/100/new/tukey.json ================================================ [7310.378796867532,7348.458637479656,7450.004879111988,7488.084719724113] ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/100/report/index.html ================================================ Clone/InlineFlexStr 0.1 (InlineStr)/100 - Criterion.rs

Clone/InlineFlexStr 0.1 (InlineStr)/100

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 7.3902 µs 7.3927 µs 7.3956 µs
0.9992607 0.9992764 0.9992553
Mean 7.4023 µs 7.4107 µs 7.4203 µs
Std. Dev. 28.938 ns 46.204 ns 60.477 ns
Median 7.3912 µs 7.3945 µs 7.3996 µs
MAD 10.305 ns 14.194 ns 20.051 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.1798% −0.0132% +0.1575% (p = 0.89 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/20/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"InlineFlexStr 0.1 (InlineStr)","value_str":"20","throughput":null,"full_id":"Clone/InlineFlexStr 0.1 (InlineStr)/20","directory_name":"Clone/InlineFlexStr 0.1 (InlineStr)/20","title":"Clone/InlineFlexStr 0.1 (InlineStr)/20"} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/20/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7443.992291379441,"upper_bound":7783.867771846414},"point_estimate":7592.923483438994,"standard_error":87.16575353423339},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7394.711779448622,"upper_bound":7401.4241730809235},"point_estimate":7397.221158364662,"standard_error":1.797158498573756},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":11.267600551839573,"upper_bound":23.202669633528444},"point_estimate":16.926927657099657,"standard_error":3.077718148078805},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7452.064221817847,"upper_bound":8055.927350244341},"point_estimate":7717.6593407191685,"standard_error":153.88768840648999},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":158.64213577629423,"upper_bound":1297.8697478577653},"point_estimate":875.6288048584214,"standard_error":272.1180591456128}} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/20/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[133.0,266.0,399.0,532.0,665.0,798.0,931.0,1064.0,1197.0,1330.0,1463.0,1596.0,1729.0,1862.0,1995.0,2128.0,2261.0,2394.0,2527.0,2660.0,2793.0,2926.0,3059.0,3192.0,3325.0,3458.0,3591.0,3724.0,3857.0,3990.0,4123.0,4256.0,4389.0,4522.0,4655.0,4788.0,4921.0,5054.0,5187.0,5320.0,5453.0,5586.0,5719.0,5852.0,5985.0,6118.0,6251.0,6384.0,6517.0,6650.0,6783.0,6916.0,7049.0,7182.0,7315.0,7448.0,7581.0,7714.0,7847.0,7980.0,8113.0,8246.0,8379.0,8512.0,8645.0,8778.0,8911.0,9044.0,9177.0,9310.0,9443.0,9576.0,9709.0,9842.0,9975.0,10108.0,10241.0,10374.0,10507.0,10640.0,10773.0,10906.0,11039.0,11172.0,11305.0,11438.0,11571.0,11704.0,11837.0,11970.0,12103.0,12236.0,12369.0,12502.0,12635.0,12768.0,12901.0,13034.0,13167.0,13300.0],"times":[993835.0,1963292.0,2951418.0,4064459.0,4947750.0,5969124.0,6959748.0,7952876.0,8915083.0,10027207.0,11002083.0,11857502.0,12795081.0,13758749.0,14964960.0,15788584.0,18009377.0,17715541.0,18742207.0,20008125.0,20728623.0,21637544.0,22641332.0,23604252.0,24566292.0,25590169.0,26526416.0,27574040.0,28511416.0,29567914.0,30487918.0,31516708.0,32597248.0,33381956.0,34414958.0,35357207.0,36381958.0,37347333.0,38308875.0,39298541.0,40351710.0,41357499.0,42420458.0,43312416.0,44265502.0,45257878.0,46187083.0,47147959.0,48167753.0,49186875.0,50089458.0,51162708.0,52228917.0,53114210.0,54079457.0,55073456.0,56089125.0,57253459.0,58253210.0,58924626.0,60058417.0,61031625.0,61951083.0,62966709.0,63844417.0,64884918.0,65789375.0,66822542.0,67878165.0,68864500.0,69799584.0,70700666.0,71677793.0,72657626.0,84835249.0,79744959.0,123198125.0,140930999.0,121367292.0,87266292.0,82770794.0,83079668.0,81524543.0,82507873.0,83476208.0,84767792.0,85758751.0,86571207.0,87428709.0,88398666.0,89421000.0,90468209.0,91466626.0,92375249.0,93288415.0,94394834.0,95512998.0,96923709.0,97313460.0,98499751.0]} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/20/base/tukey.json ================================================ [7291.34155333176,7340.237291737754,7470.625927487072,7519.521665893066] ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/20/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.0034890982771298416,"upper_bound":0.04578065679194085},"point_estimate":0.022838852946174493,"standard_error":0.011493761391986294},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0019432200770276298,"upper_bound":-0.0002064302133364393},"point_estimate":-0.001152908969510591,"standard_error":0.0004427341795572575}} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/20/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"InlineFlexStr 0.1 (InlineStr)","value_str":"20","throughput":null,"full_id":"Clone/InlineFlexStr 0.1 (InlineStr)/20","directory_name":"Clone/InlineFlexStr 0.1 (InlineStr)/20","title":"Clone/InlineFlexStr 0.1 (InlineStr)/20"} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/20/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7443.992291379441,"upper_bound":7783.867771846414},"point_estimate":7592.923483438994,"standard_error":87.16575353423339},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7394.711779448622,"upper_bound":7401.4241730809235},"point_estimate":7397.221158364662,"standard_error":1.797158498573756},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":11.267600551839573,"upper_bound":23.202669633528444},"point_estimate":16.926927657099657,"standard_error":3.077718148078805},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7452.064221817847,"upper_bound":8055.927350244341},"point_estimate":7717.6593407191685,"standard_error":153.88768840648999},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":158.64213577629423,"upper_bound":1297.8697478577653},"point_estimate":875.6288048584214,"standard_error":272.1180591456128}} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/20/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[133.0,266.0,399.0,532.0,665.0,798.0,931.0,1064.0,1197.0,1330.0,1463.0,1596.0,1729.0,1862.0,1995.0,2128.0,2261.0,2394.0,2527.0,2660.0,2793.0,2926.0,3059.0,3192.0,3325.0,3458.0,3591.0,3724.0,3857.0,3990.0,4123.0,4256.0,4389.0,4522.0,4655.0,4788.0,4921.0,5054.0,5187.0,5320.0,5453.0,5586.0,5719.0,5852.0,5985.0,6118.0,6251.0,6384.0,6517.0,6650.0,6783.0,6916.0,7049.0,7182.0,7315.0,7448.0,7581.0,7714.0,7847.0,7980.0,8113.0,8246.0,8379.0,8512.0,8645.0,8778.0,8911.0,9044.0,9177.0,9310.0,9443.0,9576.0,9709.0,9842.0,9975.0,10108.0,10241.0,10374.0,10507.0,10640.0,10773.0,10906.0,11039.0,11172.0,11305.0,11438.0,11571.0,11704.0,11837.0,11970.0,12103.0,12236.0,12369.0,12502.0,12635.0,12768.0,12901.0,13034.0,13167.0,13300.0],"times":[993835.0,1963292.0,2951418.0,4064459.0,4947750.0,5969124.0,6959748.0,7952876.0,8915083.0,10027207.0,11002083.0,11857502.0,12795081.0,13758749.0,14964960.0,15788584.0,18009377.0,17715541.0,18742207.0,20008125.0,20728623.0,21637544.0,22641332.0,23604252.0,24566292.0,25590169.0,26526416.0,27574040.0,28511416.0,29567914.0,30487918.0,31516708.0,32597248.0,33381956.0,34414958.0,35357207.0,36381958.0,37347333.0,38308875.0,39298541.0,40351710.0,41357499.0,42420458.0,43312416.0,44265502.0,45257878.0,46187083.0,47147959.0,48167753.0,49186875.0,50089458.0,51162708.0,52228917.0,53114210.0,54079457.0,55073456.0,56089125.0,57253459.0,58253210.0,58924626.0,60058417.0,61031625.0,61951083.0,62966709.0,63844417.0,64884918.0,65789375.0,66822542.0,67878165.0,68864500.0,69799584.0,70700666.0,71677793.0,72657626.0,84835249.0,79744959.0,123198125.0,140930999.0,121367292.0,87266292.0,82770794.0,83079668.0,81524543.0,82507873.0,83476208.0,84767792.0,85758751.0,86571207.0,87428709.0,88398666.0,89421000.0,90468209.0,91466626.0,92375249.0,93288415.0,94394834.0,95512998.0,96923709.0,97313460.0,98499751.0]} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/20/new/tukey.json ================================================ [7291.34155333176,7340.237291737754,7470.625927487072,7519.521665893066] ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/20/report/index.html ================================================ Clone/InlineFlexStr 0.1 (InlineStr)/20 - Criterion.rs

Clone/InlineFlexStr 0.1 (InlineStr)/20

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 7.4521 µs 7.7177 µs 8.0559 µs
0.2093664 0.2181150 0.2042692
Mean 7.4440 µs 7.5929 µs 7.7839 µs
Std. Dev. 158.64 ns 875.63 ns 1.2979 µs
Median 7.3947 µs 7.3972 µs 7.4014 µs
MAD 11.268 ns 16.927 ns 23.203 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time +0.3489% +2.2839% +4.5781% (p = 0.03 < 0.05)
Change within noise threshold.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/500/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"InlineFlexStr 0.1 (InlineStr)","value_str":"500","throughput":null,"full_id":"Clone/InlineFlexStr 0.1 (InlineStr)/500","directory_name":"Clone/InlineFlexStr 0.1 (InlineStr)/500","title":"Clone/InlineFlexStr 0.1 (InlineStr)/500"} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/500/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7409.188260904711,"upper_bound":7443.808237565852},"point_estimate":7424.812664645807,"standard_error":8.844235593585426},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7391.642946341548,"upper_bound":7402.119757224386},"point_estimate":7395.081331299386,"standard_error":2.7961566204106023},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":10.345299562557432,"upper_bound":19.874668192429713},"point_estimate":15.060435091011664,"standard_error":2.4051326915173306},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7393.642733188671,"upper_bound":7401.295628545062},"point_estimate":7397.063063007007,"standard_error":1.9574297157792104},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":49.94298628319375,"upper_bound":123.89205219097208},"point_estimate":88.81267372945672,"standard_error":19.187809821088095}} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/500/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[133.0,266.0,399.0,532.0,665.0,798.0,931.0,1064.0,1197.0,1330.0,1463.0,1596.0,1729.0,1862.0,1995.0,2128.0,2261.0,2394.0,2527.0,2660.0,2793.0,2926.0,3059.0,3192.0,3325.0,3458.0,3591.0,3724.0,3857.0,3990.0,4123.0,4256.0,4389.0,4522.0,4655.0,4788.0,4921.0,5054.0,5187.0,5320.0,5453.0,5586.0,5719.0,5852.0,5985.0,6118.0,6251.0,6384.0,6517.0,6650.0,6783.0,6916.0,7049.0,7182.0,7315.0,7448.0,7581.0,7714.0,7847.0,7980.0,8113.0,8246.0,8379.0,8512.0,8645.0,8778.0,8911.0,9044.0,9177.0,9310.0,9443.0,9576.0,9709.0,9842.0,9975.0,10108.0,10241.0,10374.0,10507.0,10640.0,10773.0,10906.0,11039.0,11172.0,11305.0,11438.0,11571.0,11704.0,11837.0,11970.0,12103.0,12236.0,12369.0,12502.0,12635.0,12768.0,12901.0,13034.0,13167.0,13300.0],"times":[1015707.0,1963459.0,2946083.0,4039042.0,5305293.0,6195583.0,6903625.0,8061417.0,8865459.0,9874290.0,11162294.0,11869168.0,12974709.0,14200540.0,15354165.0,15960250.0,16921751.0,17831125.0,18700960.0,19656624.0,20682917.0,21691207.0,22644083.0,23599708.0,24606752.0,25565667.0,26545586.0,27513583.0,28469334.0,29605541.0,30455628.0,31518168.0,32515127.0,33462583.0,34471251.0,35367418.0,36339834.0,37359249.0,38334667.0,39305293.0,40248539.0,41265248.0,42264749.0,43186959.0,44188542.0,45346749.0,46587459.0,47160166.0,48156667.0,49143833.0,50216041.0,51048336.0,52189123.0,53229249.0,54035124.0,55169375.0,56064417.0,57199666.0,57997209.0,59979750.0,60220084.0,60977333.0,61928166.0,62912459.0,63878000.0,64871586.0,65892291.0,66891332.0,67995208.0,68874249.0,69717498.0,70918250.0,71782458.0,72763292.0,73744624.0,74688542.0,75686710.0,76895541.0,77820001.0,78851919.0,79876292.0,80559958.0,81712000.0,82493457.0,83852416.0,84443789.0,85462751.0,86427915.0,87357292.0,88593582.0,89631166.0,90411127.0,91353290.0,92322458.0,93446710.0,94438792.0,95366335.0,96264040.0,97278875.0,98260875.0]} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/500/base/tukey.json ================================================ [7317.776303524665,7352.96596364865,7446.805057312609,7481.994717436593] ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/500/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.00017349703316612834,"upper_bound":0.005086950087639446},"point_estimate":0.0022392670932036562,"standard_error":0.001373070566638963},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.000696657928514298,"upper_bound":0.0010086834946132495},"point_estimate":0.000026160345171000188,"standard_error":0.00042464553777334904}} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/500/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"InlineFlexStr 0.1 (InlineStr)","value_str":"500","throughput":null,"full_id":"Clone/InlineFlexStr 0.1 (InlineStr)/500","directory_name":"Clone/InlineFlexStr 0.1 (InlineStr)/500","title":"Clone/InlineFlexStr 0.1 (InlineStr)/500"} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/500/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7409.188260904711,"upper_bound":7443.808237565852},"point_estimate":7424.812664645807,"standard_error":8.844235593585426},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7391.642946341548,"upper_bound":7402.119757224386},"point_estimate":7395.081331299386,"standard_error":2.7961566204106023},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":10.345299562557432,"upper_bound":19.874668192429713},"point_estimate":15.060435091011664,"standard_error":2.4051326915173306},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7393.642733188671,"upper_bound":7401.295628545062},"point_estimate":7397.063063007007,"standard_error":1.9574297157792104},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":49.94298628319375,"upper_bound":123.89205219097208},"point_estimate":88.81267372945672,"standard_error":19.187809821088095}} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/500/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[133.0,266.0,399.0,532.0,665.0,798.0,931.0,1064.0,1197.0,1330.0,1463.0,1596.0,1729.0,1862.0,1995.0,2128.0,2261.0,2394.0,2527.0,2660.0,2793.0,2926.0,3059.0,3192.0,3325.0,3458.0,3591.0,3724.0,3857.0,3990.0,4123.0,4256.0,4389.0,4522.0,4655.0,4788.0,4921.0,5054.0,5187.0,5320.0,5453.0,5586.0,5719.0,5852.0,5985.0,6118.0,6251.0,6384.0,6517.0,6650.0,6783.0,6916.0,7049.0,7182.0,7315.0,7448.0,7581.0,7714.0,7847.0,7980.0,8113.0,8246.0,8379.0,8512.0,8645.0,8778.0,8911.0,9044.0,9177.0,9310.0,9443.0,9576.0,9709.0,9842.0,9975.0,10108.0,10241.0,10374.0,10507.0,10640.0,10773.0,10906.0,11039.0,11172.0,11305.0,11438.0,11571.0,11704.0,11837.0,11970.0,12103.0,12236.0,12369.0,12502.0,12635.0,12768.0,12901.0,13034.0,13167.0,13300.0],"times":[1015707.0,1963459.0,2946083.0,4039042.0,5305293.0,6195583.0,6903625.0,8061417.0,8865459.0,9874290.0,11162294.0,11869168.0,12974709.0,14200540.0,15354165.0,15960250.0,16921751.0,17831125.0,18700960.0,19656624.0,20682917.0,21691207.0,22644083.0,23599708.0,24606752.0,25565667.0,26545586.0,27513583.0,28469334.0,29605541.0,30455628.0,31518168.0,32515127.0,33462583.0,34471251.0,35367418.0,36339834.0,37359249.0,38334667.0,39305293.0,40248539.0,41265248.0,42264749.0,43186959.0,44188542.0,45346749.0,46587459.0,47160166.0,48156667.0,49143833.0,50216041.0,51048336.0,52189123.0,53229249.0,54035124.0,55169375.0,56064417.0,57199666.0,57997209.0,59979750.0,60220084.0,60977333.0,61928166.0,62912459.0,63878000.0,64871586.0,65892291.0,66891332.0,67995208.0,68874249.0,69717498.0,70918250.0,71782458.0,72763292.0,73744624.0,74688542.0,75686710.0,76895541.0,77820001.0,78851919.0,79876292.0,80559958.0,81712000.0,82493457.0,83852416.0,84443789.0,85462751.0,86427915.0,87357292.0,88593582.0,89631166.0,90411127.0,91353290.0,92322458.0,93446710.0,94438792.0,95366335.0,96264040.0,97278875.0,98260875.0]} ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/500/new/tukey.json ================================================ [7317.776303524665,7352.96596364865,7446.805057312609,7481.994717436593] ================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/500/report/index.html ================================================ Clone/InlineFlexStr 0.1 (InlineStr)/500 - Criterion.rs

Clone/InlineFlexStr 0.1 (InlineStr)/500

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 7.3936 µs 7.3971 µs 7.4013 µs
0.9987977 0.9988273 0.9987819
Mean 7.4092 µs 7.4248 µs 7.4438 µs
Std. Dev. 49.943 ns 88.813 ns 123.89 ns
Median 7.3916 µs 7.3951 µs 7.4021 µs
MAD 10.345 ns 15.060 ns 19.875 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.0173% +0.2239% +0.5087% (p = 0.09 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/InlineFlexStr 0.1 (InlineStr)/report/index.html ================================================ Clone/InlineFlexStr 0.1 (InlineStr) Summary - Criterion.rs

Clone/InlineFlexStr 0.1 (InlineStr)

Violin Plot

Violin Plot

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

Line Chart

Line Chart

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

Clone/InlineFlexStr 0.1 (InlineStr)/0

PDF of Slope Regression

Clone/InlineFlexStr 0.1 (InlineStr)/10

PDF of Slope Regression

Clone/InlineFlexStr 0.1 (InlineStr)/20

PDF of Slope Regression

Clone/InlineFlexStr 0.1 (InlineStr)/100

PDF of Slope Regression

Clone/InlineFlexStr 0.1 (InlineStr)/500

PDF of Slope Regression
================================================ FILE: docs/criterion/Clone/Rc_str_/0/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"Rc","value_str":"0","throughput":null,"full_id":"Clone/Rc/0","directory_name":"Clone/Rc_str_/0","title":"Clone/Rc/0"} ================================================ FILE: docs/criterion/Clone/Rc_str_/0/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40254.72547374264,"upper_bound":40468.3701533398},"point_estimate":40347.203269650134,"standard_error":54.911828317467},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40180.00724637681,"upper_bound":40216.62028301887},"point_estimate":40200.07967466256,"standard_error":10.425928480394749},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":51.15579790405206,"upper_bound":91.43611378269509},"point_estimate":75.92037249268188,"standard_error":11.397476312900494},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40174.64150058812,"upper_bound":40199.1011949012},"point_estimate":40185.767402714155,"standard_error":6.2199066103318605},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":239.7393142952519,"upper_bound":834.6326287083015},"point_estimate":549.6164136090489,"standard_error":165.51516357819}} ================================================ FILE: docs/criterion/Clone/Rc_str_/0/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[24.0,48.0,72.0,96.0,120.0,144.0,168.0,192.0,216.0,240.0,264.0,288.0,312.0,336.0,360.0,384.0,408.0,432.0,456.0,480.0,504.0,528.0,552.0,576.0,600.0,624.0,648.0,672.0,696.0,720.0,744.0,768.0,792.0,816.0,840.0,864.0,888.0,912.0,936.0,960.0,984.0,1008.0,1032.0,1056.0,1080.0,1104.0,1128.0,1152.0,1176.0,1200.0,1224.0,1248.0,1272.0,1296.0,1320.0,1344.0,1368.0,1392.0,1416.0,1440.0,1464.0,1488.0,1512.0,1536.0,1560.0,1584.0,1608.0,1632.0,1656.0,1680.0,1704.0,1728.0,1752.0,1776.0,1800.0,1824.0,1848.0,1872.0,1896.0,1920.0,1944.0,1968.0,1992.0,2016.0,2040.0,2064.0,2088.0,2112.0,2136.0,2160.0,2184.0,2208.0,2232.0,2256.0,2280.0,2304.0,2328.0,2352.0,2376.0,2400.0],"times":[1000376.0,1987873.0,2980584.0,3982250.0,5344208.0,5869583.0,7096249.0,7882543.0,8678085.0,9748919.0,10619251.0,11595374.0,12537543.0,13548000.0,14588667.0,15501958.0,16430750.0,17394917.0,18399249.0,19709209.0,20274751.0,21280335.0,22185459.0,23172873.0,24102501.0,25075207.0,26053874.0,26999084.0,27928834.0,29030043.0,29878250.0,30872167.0,31900582.0,32786875.0,33717000.0,34793292.0,35742833.0,36612249.0,37617832.0,38604667.0,39502583.0,40573957.0,41422544.0,42457000.0,43505711.0,44469582.0,45286750.0,46314584.0,47405876.0,48167501.0,49226044.0,50110417.0,51155541.0,52033082.0,53117959.0,54031582.0,55083208.0,55978124.0,57018459.0,57923876.0,58818125.0,59764208.0,60683918.0,61764125.0,62770167.0,63789168.0,64593711.0,65477583.0,66509000.0,67436585.0,68504251.0,69419042.0,70389041.0,71528919.0,72355956.0,73403958.0,74189166.0,75125457.0,76105210.0,77491541.0,78033248.0,79000751.0,79981750.0,80984876.0,82051624.0,82867043.0,83963374.0,84868584.0,85793668.0,86685417.0,87642249.0,88717456.0,89635710.0,90538919.0,91580914.0,92581166.0,93497833.0,94504043.0,95434709.0,96338625.0]} ================================================ FILE: docs/criterion/Clone/Rc_str_/0/base/tukey.json ================================================ [39842.39112233883,40001.978870600185,40427.54619929714,40587.1339475585] ================================================ FILE: docs/criterion/Clone/Rc_str_/0/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0183819625445751,"upper_bound":0.0018423938099467272},"point_estimate":-0.0061627848130728635,"standard_error":0.0054116612842752786},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0008942024541087612,"upper_bound":0.001421887085136353},"point_estimate":0.00038346268358369073,"standard_error":0.0005733865724321635}} ================================================ FILE: docs/criterion/Clone/Rc_str_/0/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"Rc","value_str":"0","throughput":null,"full_id":"Clone/Rc/0","directory_name":"Clone/Rc_str_/0","title":"Clone/Rc/0"} ================================================ FILE: docs/criterion/Clone/Rc_str_/0/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40254.72547374264,"upper_bound":40468.3701533398},"point_estimate":40347.203269650134,"standard_error":54.911828317467},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40180.00724637681,"upper_bound":40216.62028301887},"point_estimate":40200.07967466256,"standard_error":10.425928480394749},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":51.15579790405206,"upper_bound":91.43611378269509},"point_estimate":75.92037249268188,"standard_error":11.397476312900494},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40174.64150058812,"upper_bound":40199.1011949012},"point_estimate":40185.767402714155,"standard_error":6.2199066103318605},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":239.7393142952519,"upper_bound":834.6326287083015},"point_estimate":549.6164136090489,"standard_error":165.51516357819}} ================================================ FILE: docs/criterion/Clone/Rc_str_/0/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[24.0,48.0,72.0,96.0,120.0,144.0,168.0,192.0,216.0,240.0,264.0,288.0,312.0,336.0,360.0,384.0,408.0,432.0,456.0,480.0,504.0,528.0,552.0,576.0,600.0,624.0,648.0,672.0,696.0,720.0,744.0,768.0,792.0,816.0,840.0,864.0,888.0,912.0,936.0,960.0,984.0,1008.0,1032.0,1056.0,1080.0,1104.0,1128.0,1152.0,1176.0,1200.0,1224.0,1248.0,1272.0,1296.0,1320.0,1344.0,1368.0,1392.0,1416.0,1440.0,1464.0,1488.0,1512.0,1536.0,1560.0,1584.0,1608.0,1632.0,1656.0,1680.0,1704.0,1728.0,1752.0,1776.0,1800.0,1824.0,1848.0,1872.0,1896.0,1920.0,1944.0,1968.0,1992.0,2016.0,2040.0,2064.0,2088.0,2112.0,2136.0,2160.0,2184.0,2208.0,2232.0,2256.0,2280.0,2304.0,2328.0,2352.0,2376.0,2400.0],"times":[1000376.0,1987873.0,2980584.0,3982250.0,5344208.0,5869583.0,7096249.0,7882543.0,8678085.0,9748919.0,10619251.0,11595374.0,12537543.0,13548000.0,14588667.0,15501958.0,16430750.0,17394917.0,18399249.0,19709209.0,20274751.0,21280335.0,22185459.0,23172873.0,24102501.0,25075207.0,26053874.0,26999084.0,27928834.0,29030043.0,29878250.0,30872167.0,31900582.0,32786875.0,33717000.0,34793292.0,35742833.0,36612249.0,37617832.0,38604667.0,39502583.0,40573957.0,41422544.0,42457000.0,43505711.0,44469582.0,45286750.0,46314584.0,47405876.0,48167501.0,49226044.0,50110417.0,51155541.0,52033082.0,53117959.0,54031582.0,55083208.0,55978124.0,57018459.0,57923876.0,58818125.0,59764208.0,60683918.0,61764125.0,62770167.0,63789168.0,64593711.0,65477583.0,66509000.0,67436585.0,68504251.0,69419042.0,70389041.0,71528919.0,72355956.0,73403958.0,74189166.0,75125457.0,76105210.0,77491541.0,78033248.0,79000751.0,79981750.0,80984876.0,82051624.0,82867043.0,83963374.0,84868584.0,85793668.0,86685417.0,87642249.0,88717456.0,89635710.0,90538919.0,91580914.0,92581166.0,93497833.0,94504043.0,95434709.0,96338625.0]} ================================================ FILE: docs/criterion/Clone/Rc_str_/0/new/tukey.json ================================================ [39842.39112233883,40001.978870600185,40427.54619929714,40587.1339475585] ================================================ FILE: docs/criterion/Clone/Rc_str_/0/report/index.html ================================================ Clone/Rc<str>/0 - Criterion.rs

Clone/Rc<str>/0

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 40.175 µs 40.186 µs 40.199 µs
0.9994888 0.9994994 0.9994842
Mean 40.255 µs 40.347 µs 40.468 µs
Std. Dev. 239.74 ns 549.62 ns 834.63 ns
Median 40.180 µs 40.200 µs 40.217 µs
MAD 51.156 ns 75.920 ns 91.436 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −1.8382% −0.6163% +0.1842% (p = 0.30 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/Rc_str_/10/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"Rc","value_str":"10","throughput":null,"full_id":"Clone/Rc/10","directory_name":"Clone/Rc_str_/10","title":"Clone/Rc/10"} ================================================ FILE: docs/criterion/Clone/Rc_str_/10/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40284.44369336364,"upper_bound":40425.6177132552},"point_estimate":40351.10936803097,"standard_error":36.17601931803813},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40178.125,"upper_bound":40223.2553611379},"point_estimate":40199.33686940966,"standard_error":11.532676015197952},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":48.93072226809372,"upper_bound":122.83778996047978},"point_estimate":78.41922287999229,"standard_error":19.218544185048614},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40209.37539116527,"upper_bound":40324.38004100728},"point_estimate":40259.37035590365,"standard_error":29.639225092224596},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":254.45336515219566,"upper_bound":452.5840761763545},"point_estimate":364.3290471697951,"standard_error":50.58867380345277}} ================================================ FILE: docs/criterion/Clone/Rc_str_/10/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[25.0,50.0,75.0,100.0,125.0,150.0,175.0,200.0,225.0,250.0,275.0,300.0,325.0,350.0,375.0,400.0,425.0,450.0,475.0,500.0,525.0,550.0,575.0,600.0,625.0,650.0,675.0,700.0,725.0,750.0,775.0,800.0,825.0,850.0,875.0,900.0,925.0,950.0,975.0,1000.0,1025.0,1050.0,1075.0,1100.0,1125.0,1150.0,1175.0,1200.0,1225.0,1250.0,1275.0,1300.0,1325.0,1350.0,1375.0,1400.0,1425.0,1450.0,1475.0,1500.0,1525.0,1550.0,1575.0,1600.0,1625.0,1650.0,1675.0,1700.0,1725.0,1750.0,1775.0,1800.0,1825.0,1850.0,1875.0,1900.0,1925.0,1950.0,1975.0,2000.0,2025.0,2050.0,2075.0,2100.0,2125.0,2150.0,2175.0,2200.0,2225.0,2250.0,2275.0,2300.0,2325.0,2350.0,2375.0,2400.0,2425.0,2450.0,2475.0,2500.0],"times":[1013917.0,2004000.0,3016125.0,4161707.0,5172957.0,6082458.0,7307874.0,8034666.0,9172665.0,10104167.0,11188919.0,12091832.0,13169918.0,14303334.0,15169709.0,16126749.0,17100290.0,18254584.0,19634666.0,20111335.0,21118212.0,22103749.0,23094542.0,24107961.0,25121209.0,26130083.0,27268709.0,28470000.0,29142873.0,30087957.0,31121960.0,32213375.0,33281416.0,34143749.0,35244541.0,36153667.0,37156292.0,38146458.0,39317209.0,40393459.0,41318667.0,42162499.0,43153125.0,44192543.0,45134500.0,46794124.0,47906082.0,48213750.0,49217793.0,50183084.0,51172749.0,52227584.0,53161833.0,54273874.0,55470501.0,56273374.0,57350457.0,58186085.0,59169000.0,60202876.0,61340459.0,64038040.0,65624708.0,65296292.0,67467585.0,66268372.0,67229707.0,68381001.0,69281166.0,70373499.0,71613706.0,72715417.0,73501293.0,74399290.0,75336793.0,76343456.0,77602333.0,78322918.0,79420833.0,80355916.0,81255002.0,82360251.0,83354626.0,84429251.0,85426585.0,86426874.0,87374292.0,88322125.0,89265834.0,90319623.0,91368666.0,92448625.0,93374374.0,94398540.0,95389417.0,96612582.0,97777875.0,98388748.0,99374664.0,100404708.0]} ================================================ FILE: docs/criterion/Clone/Rc_str_/10/base/tukey.json ================================================ [39630.754849594334,39897.2386673601,40607.86218140213,40874.34599916789] ================================================ FILE: docs/criterion/Clone/Rc_str_/10/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.037606835191485284,"upper_bound":-0.003192373645942994},"point_estimate":-0.01852018153335666,"standard_error":0.008839845203355796},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.001691786787982208,"upper_bound":0.00021504342489930828},"point_estimate":-0.0006695217298197109,"standard_error":0.0004890670850554836}} ================================================ FILE: docs/criterion/Clone/Rc_str_/10/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"Rc","value_str":"10","throughput":null,"full_id":"Clone/Rc/10","directory_name":"Clone/Rc_str_/10","title":"Clone/Rc/10"} ================================================ FILE: docs/criterion/Clone/Rc_str_/10/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40284.44369336364,"upper_bound":40425.6177132552},"point_estimate":40351.10936803097,"standard_error":36.17601931803813},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40178.125,"upper_bound":40223.2553611379},"point_estimate":40199.33686940966,"standard_error":11.532676015197952},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":48.93072226809372,"upper_bound":122.83778996047978},"point_estimate":78.41922287999229,"standard_error":19.218544185048614},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40209.37539116527,"upper_bound":40324.38004100728},"point_estimate":40259.37035590365,"standard_error":29.639225092224596},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":254.45336515219566,"upper_bound":452.5840761763545},"point_estimate":364.3290471697951,"standard_error":50.58867380345277}} ================================================ FILE: docs/criterion/Clone/Rc_str_/10/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[25.0,50.0,75.0,100.0,125.0,150.0,175.0,200.0,225.0,250.0,275.0,300.0,325.0,350.0,375.0,400.0,425.0,450.0,475.0,500.0,525.0,550.0,575.0,600.0,625.0,650.0,675.0,700.0,725.0,750.0,775.0,800.0,825.0,850.0,875.0,900.0,925.0,950.0,975.0,1000.0,1025.0,1050.0,1075.0,1100.0,1125.0,1150.0,1175.0,1200.0,1225.0,1250.0,1275.0,1300.0,1325.0,1350.0,1375.0,1400.0,1425.0,1450.0,1475.0,1500.0,1525.0,1550.0,1575.0,1600.0,1625.0,1650.0,1675.0,1700.0,1725.0,1750.0,1775.0,1800.0,1825.0,1850.0,1875.0,1900.0,1925.0,1950.0,1975.0,2000.0,2025.0,2050.0,2075.0,2100.0,2125.0,2150.0,2175.0,2200.0,2225.0,2250.0,2275.0,2300.0,2325.0,2350.0,2375.0,2400.0,2425.0,2450.0,2475.0,2500.0],"times":[1013917.0,2004000.0,3016125.0,4161707.0,5172957.0,6082458.0,7307874.0,8034666.0,9172665.0,10104167.0,11188919.0,12091832.0,13169918.0,14303334.0,15169709.0,16126749.0,17100290.0,18254584.0,19634666.0,20111335.0,21118212.0,22103749.0,23094542.0,24107961.0,25121209.0,26130083.0,27268709.0,28470000.0,29142873.0,30087957.0,31121960.0,32213375.0,33281416.0,34143749.0,35244541.0,36153667.0,37156292.0,38146458.0,39317209.0,40393459.0,41318667.0,42162499.0,43153125.0,44192543.0,45134500.0,46794124.0,47906082.0,48213750.0,49217793.0,50183084.0,51172749.0,52227584.0,53161833.0,54273874.0,55470501.0,56273374.0,57350457.0,58186085.0,59169000.0,60202876.0,61340459.0,64038040.0,65624708.0,65296292.0,67467585.0,66268372.0,67229707.0,68381001.0,69281166.0,70373499.0,71613706.0,72715417.0,73501293.0,74399290.0,75336793.0,76343456.0,77602333.0,78322918.0,79420833.0,80355916.0,81255002.0,82360251.0,83354626.0,84429251.0,85426585.0,86426874.0,87374292.0,88322125.0,89265834.0,90319623.0,91368666.0,92448625.0,93374374.0,94398540.0,95389417.0,96612582.0,97777875.0,98388748.0,99374664.0,100404708.0]} ================================================ FILE: docs/criterion/Clone/Rc_str_/10/new/tukey.json ================================================ [39630.754849594334,39897.2386673601,40607.86218140213,40874.34599916789] ================================================ FILE: docs/criterion/Clone/Rc_str_/10/report/index.html ================================================ Clone/Rc<str>/10 - Criterion.rs

Clone/Rc<str>/10

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 40.209 µs 40.259 µs 40.324 µs
0.9935795 0.9937921 0.9934327
Mean 40.284 µs 40.351 µs 40.426 µs
Std. Dev. 254.45 ns 364.33 ns 452.58 ns
Median 40.178 µs 40.199 µs 40.223 µs
MAD 48.931 ns 78.419 ns 122.84 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −3.7607% −1.8520% −0.3192% (p = 0.03 < 0.05)
Change within noise threshold.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/Rc_str_/100/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"Rc","value_str":"100","throughput":null,"full_id":"Clone/Rc/100","directory_name":"Clone/Rc_str_/100","title":"Clone/Rc/100"} ================================================ FILE: docs/criterion/Clone/Rc_str_/100/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40354.493347417716,"upper_bound":40829.91893981915},"point_estimate":40558.31267696194,"standard_error":123.07625240117446},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40186.19859649123,"upper_bound":40255.303211289094},"point_estimate":40218.25812865497,"standard_error":17.47602470201949},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":87.0295235831233,"upper_bound":169.1264598000816},"point_estimate":117.2771619774948,"standard_error":22.38454047879634},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40339.021721225916,"upper_bound":41191.61488827928},"point_estimate":40705.80794786464,"standard_error":220.22717393862402},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":502.40842062247975,"upper_bound":1909.7833958055812},"point_estimate":1238.652737050819,"standard_error":404.5296063704253}} ================================================ FILE: docs/criterion/Clone/Rc_str_/100/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[25.0,50.0,75.0,100.0,125.0,150.0,175.0,200.0,225.0,250.0,275.0,300.0,325.0,350.0,375.0,400.0,425.0,450.0,475.0,500.0,525.0,550.0,575.0,600.0,625.0,650.0,675.0,700.0,725.0,750.0,775.0,800.0,825.0,850.0,875.0,900.0,925.0,950.0,975.0,1000.0,1025.0,1050.0,1075.0,1100.0,1125.0,1150.0,1175.0,1200.0,1225.0,1250.0,1275.0,1300.0,1325.0,1350.0,1375.0,1400.0,1425.0,1450.0,1475.0,1500.0,1525.0,1550.0,1575.0,1600.0,1625.0,1650.0,1675.0,1700.0,1725.0,1750.0,1775.0,1800.0,1825.0,1850.0,1875.0,1900.0,1925.0,1950.0,1975.0,2000.0,2025.0,2050.0,2075.0,2100.0,2125.0,2150.0,2175.0,2200.0,2225.0,2250.0,2275.0,2300.0,2325.0,2350.0,2375.0,2400.0,2425.0,2450.0,2475.0,2500.0],"times":[1023918.0,2017625.0,3028875.0,4131126.0,5235833.0,6119541.0,7077583.0,8160294.0,9083792.0,10087707.0,11274875.0,12183792.0,13116666.0,14102125.0,15255584.0,16116084.0,17146333.0,18067792.0,19103791.0,20232460.0,21135375.0,22082415.0,23193834.0,24116293.0,25149958.0,26274123.0,27098916.0,28624377.0,29162251.0,30664251.0,31159582.0,32208334.0,33151418.0,34214875.0,35144291.0,36196208.0,37207584.0,38244041.0,39240417.0,40224374.0,41162999.0,42099709.0,43152249.0,44135917.0,45178586.0,46321626.0,47258293.0,48171501.0,49446291.0,50153624.0,51184500.0,52181541.0,53183834.0,54188418.0,55165250.0,56265750.0,57265333.0,58203960.0,59182751.0,60264168.0,61176293.0,62184708.0,63203459.0,64207999.0,65309042.0,66329791.0,67666999.0,68301876.0,69437669.0,70478376.0,71161041.0,72294625.0,73181044.0,74165124.0,75181124.0,76152293.0,77151794.0,98386042.0,84528499.0,88285039.0,88252000.0,88122209.0,89684376.0,86327290.0,85753374.0,86467375.0,87360708.0,88351501.0,89623250.0,90574333.0,91714751.0,92464043.0,93367208.0,94262209.0,95377500.0,96514832.0,97427583.0,98283042.0,99424127.0,101085167.0]} ================================================ FILE: docs/criterion/Clone/Rc_str_/100/base/tukey.json ================================================ [39515.151505795766,39832.08557613021,40677.243097022045,40994.17716735648] ================================================ FILE: docs/criterion/Clone/Rc_str_/100/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.0011006335313418607,"upper_bound":0.013317635617212291},"point_estimate":0.006580138144208769,"standard_error":0.003122920961018337},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.00014801656919305461,"upper_bound":0.0020349563600130516},"point_estimate":0.0008578197487325578,"standard_error":0.0005284422084365025}} ================================================ FILE: docs/criterion/Clone/Rc_str_/100/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"Rc","value_str":"100","throughput":null,"full_id":"Clone/Rc/100","directory_name":"Clone/Rc_str_/100","title":"Clone/Rc/100"} ================================================ FILE: docs/criterion/Clone/Rc_str_/100/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40354.493347417716,"upper_bound":40829.91893981915},"point_estimate":40558.31267696194,"standard_error":123.07625240117446},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40186.19859649123,"upper_bound":40255.303211289094},"point_estimate":40218.25812865497,"standard_error":17.47602470201949},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":87.0295235831233,"upper_bound":169.1264598000816},"point_estimate":117.2771619774948,"standard_error":22.38454047879634},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40339.021721225916,"upper_bound":41191.61488827928},"point_estimate":40705.80794786464,"standard_error":220.22717393862402},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":502.40842062247975,"upper_bound":1909.7833958055812},"point_estimate":1238.652737050819,"standard_error":404.5296063704253}} ================================================ FILE: docs/criterion/Clone/Rc_str_/100/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[25.0,50.0,75.0,100.0,125.0,150.0,175.0,200.0,225.0,250.0,275.0,300.0,325.0,350.0,375.0,400.0,425.0,450.0,475.0,500.0,525.0,550.0,575.0,600.0,625.0,650.0,675.0,700.0,725.0,750.0,775.0,800.0,825.0,850.0,875.0,900.0,925.0,950.0,975.0,1000.0,1025.0,1050.0,1075.0,1100.0,1125.0,1150.0,1175.0,1200.0,1225.0,1250.0,1275.0,1300.0,1325.0,1350.0,1375.0,1400.0,1425.0,1450.0,1475.0,1500.0,1525.0,1550.0,1575.0,1600.0,1625.0,1650.0,1675.0,1700.0,1725.0,1750.0,1775.0,1800.0,1825.0,1850.0,1875.0,1900.0,1925.0,1950.0,1975.0,2000.0,2025.0,2050.0,2075.0,2100.0,2125.0,2150.0,2175.0,2200.0,2225.0,2250.0,2275.0,2300.0,2325.0,2350.0,2375.0,2400.0,2425.0,2450.0,2475.0,2500.0],"times":[1023918.0,2017625.0,3028875.0,4131126.0,5235833.0,6119541.0,7077583.0,8160294.0,9083792.0,10087707.0,11274875.0,12183792.0,13116666.0,14102125.0,15255584.0,16116084.0,17146333.0,18067792.0,19103791.0,20232460.0,21135375.0,22082415.0,23193834.0,24116293.0,25149958.0,26274123.0,27098916.0,28624377.0,29162251.0,30664251.0,31159582.0,32208334.0,33151418.0,34214875.0,35144291.0,36196208.0,37207584.0,38244041.0,39240417.0,40224374.0,41162999.0,42099709.0,43152249.0,44135917.0,45178586.0,46321626.0,47258293.0,48171501.0,49446291.0,50153624.0,51184500.0,52181541.0,53183834.0,54188418.0,55165250.0,56265750.0,57265333.0,58203960.0,59182751.0,60264168.0,61176293.0,62184708.0,63203459.0,64207999.0,65309042.0,66329791.0,67666999.0,68301876.0,69437669.0,70478376.0,71161041.0,72294625.0,73181044.0,74165124.0,75181124.0,76152293.0,77151794.0,98386042.0,84528499.0,88285039.0,88252000.0,88122209.0,89684376.0,86327290.0,85753374.0,86467375.0,87360708.0,88351501.0,89623250.0,90574333.0,91714751.0,92464043.0,93367208.0,94262209.0,95377500.0,96514832.0,97427583.0,98283042.0,99424127.0,101085167.0]} ================================================ FILE: docs/criterion/Clone/Rc_str_/100/new/tukey.json ================================================ [39515.151505795766,39832.08557613021,40677.243097022045,40994.17716735648] ================================================ FILE: docs/criterion/Clone/Rc_str_/100/report/index.html ================================================ Clone/Rc<str>/100 - Criterion.rs

Clone/Rc<str>/100

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 40.339 µs 40.706 µs 41.192 µs
0.8084331 0.8160064 0.8028129
Mean 40.354 µs 40.558 µs 40.830 µs
Std. Dev. 502.41 ns 1.2387 µs 1.9098 µs
Median 40.186 µs 40.218 µs 40.255 µs
MAD 87.030 ns 117.28 ns 169.13 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time +0.1101% +0.6580% +1.3318% (p = 0.03 < 0.05)
Change within noise threshold.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/Rc_str_/20/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"Rc","value_str":"20","throughput":null,"full_id":"Clone/Rc/20","directory_name":"Clone/Rc_str_/20","title":"Clone/Rc/20"} ================================================ FILE: docs/criterion/Clone/Rc_str_/20/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40279.528945736536,"upper_bound":40395.871261643086},"point_estimate":40334.008349540265,"standard_error":29.74109421243841},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40201.58571428571,"upper_bound":40242.97160539216},"point_estimate":40224.22282728765,"standard_error":13.21161804588045},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":74.7415377811722,"upper_bound":146.6928580372101},"point_estimate":117.31377344209464,"standard_error":20.264735853015704},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40198.69143360895,"upper_bound":40237.45476488641},"point_estimate":40216.52577283877,"standard_error":9.88096611440063},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":195.380158192079,"upper_bound":386.6912329650827},"point_estimate":298.9427509536341,"standard_error":48.86116965660166}} ================================================ FILE: docs/criterion/Clone/Rc_str_/20/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[25.0,50.0,75.0,100.0,125.0,150.0,175.0,200.0,225.0,250.0,275.0,300.0,325.0,350.0,375.0,400.0,425.0,450.0,475.0,500.0,525.0,550.0,575.0,600.0,625.0,650.0,675.0,700.0,725.0,750.0,775.0,800.0,825.0,850.0,875.0,900.0,925.0,950.0,975.0,1000.0,1025.0,1050.0,1075.0,1100.0,1125.0,1150.0,1175.0,1200.0,1225.0,1250.0,1275.0,1300.0,1325.0,1350.0,1375.0,1400.0,1425.0,1450.0,1475.0,1500.0,1525.0,1550.0,1575.0,1600.0,1625.0,1650.0,1675.0,1700.0,1725.0,1750.0,1775.0,1800.0,1825.0,1850.0,1875.0,1900.0,1925.0,1950.0,1975.0,2000.0,2025.0,2050.0,2075.0,2100.0,2125.0,2150.0,2175.0,2200.0,2225.0,2250.0,2275.0,2300.0,2325.0,2350.0,2375.0,2400.0,2425.0,2450.0,2475.0,2500.0],"times":[1016209.0,2007958.0,3006458.0,4181041.0,5168249.0,6076792.0,7099709.0,8107334.0,9282749.0,10083957.0,11143707.0,12172957.0,13078249.0,14082957.0,15259292.0,16152291.0,17100416.0,18145749.0,19195125.0,20354958.0,21493084.0,22782708.0,23737999.0,24125833.0,25213708.0,26294667.0,27443584.0,28388249.0,29101085.0,30211583.0,31105334.0,32189666.0,33174916.0,34197873.0,35140833.0,36167750.0,37147499.0,38154750.0,39138584.0,40200041.0,41462543.0,42211665.0,43165959.0,44488458.0,45327958.0,46240542.0,47220584.0,48233624.0,49172250.0,50207335.0,51312250.0,52464458.0,53289791.0,54301082.0,55513751.0,56583501.0,57374038.0,58650709.0,59493833.0,60558708.0,61490250.0,62535748.0,63267752.0,64385666.0,65566709.0,66396959.0,67366166.0,68582668.0,69293960.0,70282583.0,71264041.0,72302539.0,73228417.0,74442834.0,75600291.0,76342710.0,77430209.0,78363250.0,79308248.0,80279542.0,81385456.0,82316915.0,83705958.0,84284417.0,85302333.0,86302207.0,87489289.0,88368043.0,89450333.0,90321167.0,91356249.0,92281708.0,93467751.0,94395084.0,95344251.0,96348585.0,97317461.0,98592125.0,99529541.0,100470793.0]} ================================================ FILE: docs/criterion/Clone/Rc_str_/20/base/tukey.json ================================================ [39577.2751214575,39871.199902834014,40654.99931983806,40948.92410121458] ================================================ FILE: docs/criterion/Clone/Rc_str_/20/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0005710623085924099,"upper_bound":0.0032423350093530308},"point_estimate":0.0013883214852854486,"standard_error":0.0009731434010874342},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.00012248417559101998,"upper_bound":0.0013677268331606651},"point_estimate":0.0006656441833126081,"standard_error":0.0004009818286672115}} ================================================ FILE: docs/criterion/Clone/Rc_str_/20/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"Rc","value_str":"20","throughput":null,"full_id":"Clone/Rc/20","directory_name":"Clone/Rc_str_/20","title":"Clone/Rc/20"} ================================================ FILE: docs/criterion/Clone/Rc_str_/20/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40279.528945736536,"upper_bound":40395.871261643086},"point_estimate":40334.008349540265,"standard_error":29.74109421243841},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40201.58571428571,"upper_bound":40242.97160539216},"point_estimate":40224.22282728765,"standard_error":13.21161804588045},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":74.7415377811722,"upper_bound":146.6928580372101},"point_estimate":117.31377344209464,"standard_error":20.264735853015704},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40198.69143360895,"upper_bound":40237.45476488641},"point_estimate":40216.52577283877,"standard_error":9.88096611440063},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":195.380158192079,"upper_bound":386.6912329650827},"point_estimate":298.9427509536341,"standard_error":48.86116965660166}} ================================================ FILE: docs/criterion/Clone/Rc_str_/20/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[25.0,50.0,75.0,100.0,125.0,150.0,175.0,200.0,225.0,250.0,275.0,300.0,325.0,350.0,375.0,400.0,425.0,450.0,475.0,500.0,525.0,550.0,575.0,600.0,625.0,650.0,675.0,700.0,725.0,750.0,775.0,800.0,825.0,850.0,875.0,900.0,925.0,950.0,975.0,1000.0,1025.0,1050.0,1075.0,1100.0,1125.0,1150.0,1175.0,1200.0,1225.0,1250.0,1275.0,1300.0,1325.0,1350.0,1375.0,1400.0,1425.0,1450.0,1475.0,1500.0,1525.0,1550.0,1575.0,1600.0,1625.0,1650.0,1675.0,1700.0,1725.0,1750.0,1775.0,1800.0,1825.0,1850.0,1875.0,1900.0,1925.0,1950.0,1975.0,2000.0,2025.0,2050.0,2075.0,2100.0,2125.0,2150.0,2175.0,2200.0,2225.0,2250.0,2275.0,2300.0,2325.0,2350.0,2375.0,2400.0,2425.0,2450.0,2475.0,2500.0],"times":[1016209.0,2007958.0,3006458.0,4181041.0,5168249.0,6076792.0,7099709.0,8107334.0,9282749.0,10083957.0,11143707.0,12172957.0,13078249.0,14082957.0,15259292.0,16152291.0,17100416.0,18145749.0,19195125.0,20354958.0,21493084.0,22782708.0,23737999.0,24125833.0,25213708.0,26294667.0,27443584.0,28388249.0,29101085.0,30211583.0,31105334.0,32189666.0,33174916.0,34197873.0,35140833.0,36167750.0,37147499.0,38154750.0,39138584.0,40200041.0,41462543.0,42211665.0,43165959.0,44488458.0,45327958.0,46240542.0,47220584.0,48233624.0,49172250.0,50207335.0,51312250.0,52464458.0,53289791.0,54301082.0,55513751.0,56583501.0,57374038.0,58650709.0,59493833.0,60558708.0,61490250.0,62535748.0,63267752.0,64385666.0,65566709.0,66396959.0,67366166.0,68582668.0,69293960.0,70282583.0,71264041.0,72302539.0,73228417.0,74442834.0,75600291.0,76342710.0,77430209.0,78363250.0,79308248.0,80279542.0,81385456.0,82316915.0,83705958.0,84284417.0,85302333.0,86302207.0,87489289.0,88368043.0,89450333.0,90321167.0,91356249.0,92281708.0,93467751.0,94395084.0,95344251.0,96348585.0,97317461.0,98592125.0,99529541.0,100470793.0]} ================================================ FILE: docs/criterion/Clone/Rc_str_/20/new/tukey.json ================================================ [39577.2751214575,39871.199902834014,40654.99931983806,40948.92410121458] ================================================ FILE: docs/criterion/Clone/Rc_str_/20/report/index.html ================================================ Clone/Rc<str>/20 - Criterion.rs

Clone/Rc<str>/20

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 40.199 µs 40.217 µs 40.237 µs
0.9989115 0.9989387 0.9989012
Mean 40.280 µs 40.334 µs 40.396 µs
Std. Dev. 195.38 ns 298.94 ns 386.69 ns
Median 40.202 µs 40.224 µs 40.243 µs
MAD 74.742 ns 117.31 ns 146.69 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.0571% +0.1388% +0.3242% (p = 0.16 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/Rc_str_/500/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"Rc","value_str":"500","throughput":null,"full_id":"Clone/Rc/500","directory_name":"Clone/Rc_str_/500","title":"Clone/Rc/500"} ================================================ FILE: docs/criterion/Clone/Rc_str_/500/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40256.17892332161,"upper_bound":40371.82200755127},"point_estimate":40309.74291910164,"standard_error":29.620590537010543},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40183.51482394366,"upper_bound":40219.94275862069},"point_estimate":40194.520081632654,"standard_error":9.683175797014961},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":42.353000829432986,"upper_bound":90.98259322286917},"point_estimate":60.4964473923512,"standard_error":12.417275561667736},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40185.642111165536,"upper_bound":40212.87528863189},"point_estimate":40198.35233621989,"standard_error":6.982383167621202},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":186.8237070282473,"upper_bound":388.9726008661178},"point_estimate":297.045322375589,"standard_error":51.8796429238427}} ================================================ FILE: docs/criterion/Clone/Rc_str_/500/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[25.0,50.0,75.0,100.0,125.0,150.0,175.0,200.0,225.0,250.0,275.0,300.0,325.0,350.0,375.0,400.0,425.0,450.0,475.0,500.0,525.0,550.0,575.0,600.0,625.0,650.0,675.0,700.0,725.0,750.0,775.0,800.0,825.0,850.0,875.0,900.0,925.0,950.0,975.0,1000.0,1025.0,1050.0,1075.0,1100.0,1125.0,1150.0,1175.0,1200.0,1225.0,1250.0,1275.0,1300.0,1325.0,1350.0,1375.0,1400.0,1425.0,1450.0,1475.0,1500.0,1525.0,1550.0,1575.0,1600.0,1625.0,1650.0,1675.0,1700.0,1725.0,1750.0,1775.0,1800.0,1825.0,1850.0,1875.0,1900.0,1925.0,1950.0,1975.0,2000.0,2025.0,2050.0,2075.0,2100.0,2125.0,2150.0,2175.0,2200.0,2225.0,2250.0,2275.0,2300.0,2325.0,2350.0,2375.0,2400.0,2425.0,2450.0,2475.0,2500.0],"times":[1010752.0,2022084.0,3011668.0,4120333.0,5228876.0,6184377.0,7122125.0,8127582.0,9131084.0,10099125.0,11353334.0,12064917.0,13146709.0,14055874.0,15166250.0,16172334.0,17207541.0,18391957.0,19703084.0,20443667.0,21152541.0,22103833.0,23115583.0,24115414.0,25167083.0,26102081.0,27429083.0,28310166.0,29108417.0,30114124.0,31135501.0,32240875.0,33194002.0,34181917.0,35314874.0,36166459.0,37229625.0,38193250.0,39235959.0,40243584.0,41325418.0,42283042.0,43140374.0,44199958.0,45360459.0,46275125.0,47231792.0,48221250.0,49239375.0,50242040.0,51317416.0,52255668.0,53212042.0,54317918.0,55258001.0,56218708.0,57245375.0,58318917.0,59227710.0,60331751.0,61250917.0,62250916.0,63285041.0,64267669.0,65284002.0,66258459.0,67282416.0,68214793.0,69232543.0,70233375.0,71324212.0,72495084.0,73690251.0,74265249.0,75353209.0,76296999.0,77506333.0,78352917.0,79376959.0,80311333.0,81309957.0,82280332.0,83291623.0,84335335.0,85453543.0,86323834.0,87399459.0,88384084.0,89356707.0,90401249.0,91394209.0,92342041.0,93696960.0,94393000.0,95468833.0,96416960.0,97434832.0,98692750.0,99457167.0,100616082.0]} ================================================ FILE: docs/criterion/Clone/Rc_str_/500/base/tukey.json ================================================ [39787.66491605575,39977.11219119844,40482.30492491227,40671.75220005496] ================================================ FILE: docs/criterion/Clone/Rc_str_/500/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0006153824739983909,"upper_bound":0.003142809493609089},"point_estimate":0.0011591583206607137,"standard_error":0.0009658843762979514},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0006508558242417362,"upper_bound":0.0008461257080745738},"point_estimate":0.00003146361766526162,"standard_error":0.00036851677869698395}} ================================================ FILE: docs/criterion/Clone/Rc_str_/500/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"Rc","value_str":"500","throughput":null,"full_id":"Clone/Rc/500","directory_name":"Clone/Rc_str_/500","title":"Clone/Rc/500"} ================================================ FILE: docs/criterion/Clone/Rc_str_/500/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40256.17892332161,"upper_bound":40371.82200755127},"point_estimate":40309.74291910164,"standard_error":29.620590537010543},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40183.51482394366,"upper_bound":40219.94275862069},"point_estimate":40194.520081632654,"standard_error":9.683175797014961},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":42.353000829432986,"upper_bound":90.98259322286917},"point_estimate":60.4964473923512,"standard_error":12.417275561667736},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40185.642111165536,"upper_bound":40212.87528863189},"point_estimate":40198.35233621989,"standard_error":6.982383167621202},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":186.8237070282473,"upper_bound":388.9726008661178},"point_estimate":297.045322375589,"standard_error":51.8796429238427}} ================================================ FILE: docs/criterion/Clone/Rc_str_/500/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[25.0,50.0,75.0,100.0,125.0,150.0,175.0,200.0,225.0,250.0,275.0,300.0,325.0,350.0,375.0,400.0,425.0,450.0,475.0,500.0,525.0,550.0,575.0,600.0,625.0,650.0,675.0,700.0,725.0,750.0,775.0,800.0,825.0,850.0,875.0,900.0,925.0,950.0,975.0,1000.0,1025.0,1050.0,1075.0,1100.0,1125.0,1150.0,1175.0,1200.0,1225.0,1250.0,1275.0,1300.0,1325.0,1350.0,1375.0,1400.0,1425.0,1450.0,1475.0,1500.0,1525.0,1550.0,1575.0,1600.0,1625.0,1650.0,1675.0,1700.0,1725.0,1750.0,1775.0,1800.0,1825.0,1850.0,1875.0,1900.0,1925.0,1950.0,1975.0,2000.0,2025.0,2050.0,2075.0,2100.0,2125.0,2150.0,2175.0,2200.0,2225.0,2250.0,2275.0,2300.0,2325.0,2350.0,2375.0,2400.0,2425.0,2450.0,2475.0,2500.0],"times":[1010752.0,2022084.0,3011668.0,4120333.0,5228876.0,6184377.0,7122125.0,8127582.0,9131084.0,10099125.0,11353334.0,12064917.0,13146709.0,14055874.0,15166250.0,16172334.0,17207541.0,18391957.0,19703084.0,20443667.0,21152541.0,22103833.0,23115583.0,24115414.0,25167083.0,26102081.0,27429083.0,28310166.0,29108417.0,30114124.0,31135501.0,32240875.0,33194002.0,34181917.0,35314874.0,36166459.0,37229625.0,38193250.0,39235959.0,40243584.0,41325418.0,42283042.0,43140374.0,44199958.0,45360459.0,46275125.0,47231792.0,48221250.0,49239375.0,50242040.0,51317416.0,52255668.0,53212042.0,54317918.0,55258001.0,56218708.0,57245375.0,58318917.0,59227710.0,60331751.0,61250917.0,62250916.0,63285041.0,64267669.0,65284002.0,66258459.0,67282416.0,68214793.0,69232543.0,70233375.0,71324212.0,72495084.0,73690251.0,74265249.0,75353209.0,76296999.0,77506333.0,78352917.0,79376959.0,80311333.0,81309957.0,82280332.0,83291623.0,84335335.0,85453543.0,86323834.0,87399459.0,88384084.0,89356707.0,90401249.0,91394209.0,92342041.0,93696960.0,94393000.0,95468833.0,96416960.0,97434832.0,98692750.0,99457167.0,100616082.0]} ================================================ FILE: docs/criterion/Clone/Rc_str_/500/new/tukey.json ================================================ [39787.66491605575,39977.11219119844,40482.30492491227,40671.75220005496] ================================================ FILE: docs/criterion/Clone/Rc_str_/500/report/index.html ================================================ Clone/Rc<str>/500 - Criterion.rs

Clone/Rc<str>/500

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 40.186 µs 40.198 µs 40.213 µs
0.9993929 0.9994066 0.9993887
Mean 40.256 µs 40.310 µs 40.372 µs
Std. Dev. 186.82 ns 297.05 ns 388.97 ns
Median 40.184 µs 40.195 µs 40.220 µs
MAD 42.353 ns 60.496 ns 90.983 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.0615% +0.1159% +0.3143% (p = 0.19 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/Rc_str_/report/index.html ================================================ Clone/Rc<str> Summary - Criterion.rs

Clone/Rc<str>

Violin Plot

Violin Plot

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

Line Chart

Line Chart

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

Clone/Rc<str>/0

PDF of Slope Regression

Clone/Rc<str>/10

PDF of Slope Regression

Clone/Rc<str>/20

PDF of Slope Regression

Clone/Rc<str>/100

PDF of Slope Regression

Clone/Rc<str>/500

PDF of Slope Regression
================================================ FILE: docs/criterion/Clone/String/0/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"String","value_str":"0","throughput":null,"full_id":"Clone/String/0","directory_name":"Clone/String/0","title":"Clone/String/0"} ================================================ FILE: docs/criterion/Clone/String/0/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":31226.361690504626,"upper_bound":31355.94216655644},"point_estimate":31286.886954971043,"standard_error":33.16325417261468},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":31126.42731938353,"upper_bound":31179.6875},"point_estimate":31148.610189900104,"standard_error":13.106344616747142},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":64.96518140171722,"upper_bound":127.95011515030961},"point_estimate":87.1541989531453,"standard_error":16.887861117267846},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":31198.47985165775,"upper_bound":31357.66655619764},"point_estimate":31273.263887985813,"standard_error":40.67805156985313},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":238.41599642970024,"upper_bound":418.9364415105593},"point_estimate":332.58416765223916,"standard_error":46.34735727306902}} ================================================ FILE: docs/criterion/Clone/String/0/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[32.0,64.0,96.0,128.0,160.0,192.0,224.0,256.0,288.0,320.0,352.0,384.0,416.0,448.0,480.0,512.0,544.0,576.0,608.0,640.0,672.0,704.0,736.0,768.0,800.0,832.0,864.0,896.0,928.0,960.0,992.0,1024.0,1056.0,1088.0,1120.0,1152.0,1184.0,1216.0,1248.0,1280.0,1312.0,1344.0,1376.0,1408.0,1440.0,1472.0,1504.0,1536.0,1568.0,1600.0,1632.0,1664.0,1696.0,1728.0,1760.0,1792.0,1824.0,1856.0,1888.0,1920.0,1952.0,1984.0,2016.0,2048.0,2080.0,2112.0,2144.0,2176.0,2208.0,2240.0,2272.0,2304.0,2336.0,2368.0,2400.0,2432.0,2464.0,2496.0,2528.0,2560.0,2592.0,2624.0,2656.0,2688.0,2720.0,2752.0,2784.0,2816.0,2848.0,2880.0,2912.0,2944.0,2976.0,3008.0,3040.0,3072.0,3104.0,3136.0,3168.0,3200.0],"times":[998458.0,1986626.0,2994957.0,4201290.0,5213333.0,6080083.0,7039540.0,8102290.0,9072626.0,10082751.0,10953458.0,12256790.0,13011375.0,13972750.0,15098000.0,15992333.0,16951084.0,17973791.0,18957250.0,19888044.0,20944918.0,21934083.0,22871628.0,23939707.0,24861832.0,25877250.0,26895043.0,27889584.0,28865623.0,29991290.0,30838499.0,31906625.0,32999250.0,33796584.0,35741000.0,35919250.0,36840251.0,37813209.0,38899460.0,39867500.0,40769208.0,41782872.0,42744542.0,43870456.0,45685210.0,45761586.0,46922043.0,47826416.0,48771418.0,49917708.0,50713959.0,52038125.0,52717750.0,53917874.0,54692999.0,55762000.0,56796333.0,57691582.0,58725542.0,59749587.0,60789375.0,61688666.0,62839710.0,63889376.0,64736042.0,65757793.0,66624418.0,67662918.0,68582792.0,69998418.0,70758082.0,72637500.0,75052916.0,75869625.0,75901082.0,75694377.0,77622751.0,79381086.0,80797168.0,80286212.0,82705000.0,81729208.0,82822624.0,84227957.0,86783461.0,85672251.0,86600207.0,87552832.0,91137917.0,90034248.0,90601584.0,91450542.0,92516791.0,93700459.0,94477083.0,95553958.0,96457460.0,97561792.0,98562418.0,99571250.0]} ================================================ FILE: docs/criterion/Clone/String/0/base/tukey.json ================================================ [30621.18593811322,30862.483710569562,31505.944437119804,31747.242209576143] ================================================ FILE: docs/criterion/Clone/String/0/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.023871981765936773,"upper_bound":0.0016279332290306515},"point_estimate":-0.007947279250425376,"standard_error":0.007158633214843623},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0017158951480006222,"upper_bound":0.0009418933305096466},"point_estimate":-0.0003699305552866683,"standard_error":0.0006744832083491703}} ================================================ FILE: docs/criterion/Clone/String/0/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"String","value_str":"0","throughput":null,"full_id":"Clone/String/0","directory_name":"Clone/String/0","title":"Clone/String/0"} ================================================ FILE: docs/criterion/Clone/String/0/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":31226.361690504626,"upper_bound":31355.94216655644},"point_estimate":31286.886954971043,"standard_error":33.16325417261468},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":31126.42731938353,"upper_bound":31179.6875},"point_estimate":31148.610189900104,"standard_error":13.106344616747142},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":64.96518140171722,"upper_bound":127.95011515030961},"point_estimate":87.1541989531453,"standard_error":16.887861117267846},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":31198.47985165775,"upper_bound":31357.66655619764},"point_estimate":31273.263887985813,"standard_error":40.67805156985313},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":238.41599642970024,"upper_bound":418.9364415105593},"point_estimate":332.58416765223916,"standard_error":46.34735727306902}} ================================================ FILE: docs/criterion/Clone/String/0/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[32.0,64.0,96.0,128.0,160.0,192.0,224.0,256.0,288.0,320.0,352.0,384.0,416.0,448.0,480.0,512.0,544.0,576.0,608.0,640.0,672.0,704.0,736.0,768.0,800.0,832.0,864.0,896.0,928.0,960.0,992.0,1024.0,1056.0,1088.0,1120.0,1152.0,1184.0,1216.0,1248.0,1280.0,1312.0,1344.0,1376.0,1408.0,1440.0,1472.0,1504.0,1536.0,1568.0,1600.0,1632.0,1664.0,1696.0,1728.0,1760.0,1792.0,1824.0,1856.0,1888.0,1920.0,1952.0,1984.0,2016.0,2048.0,2080.0,2112.0,2144.0,2176.0,2208.0,2240.0,2272.0,2304.0,2336.0,2368.0,2400.0,2432.0,2464.0,2496.0,2528.0,2560.0,2592.0,2624.0,2656.0,2688.0,2720.0,2752.0,2784.0,2816.0,2848.0,2880.0,2912.0,2944.0,2976.0,3008.0,3040.0,3072.0,3104.0,3136.0,3168.0,3200.0],"times":[998458.0,1986626.0,2994957.0,4201290.0,5213333.0,6080083.0,7039540.0,8102290.0,9072626.0,10082751.0,10953458.0,12256790.0,13011375.0,13972750.0,15098000.0,15992333.0,16951084.0,17973791.0,18957250.0,19888044.0,20944918.0,21934083.0,22871628.0,23939707.0,24861832.0,25877250.0,26895043.0,27889584.0,28865623.0,29991290.0,30838499.0,31906625.0,32999250.0,33796584.0,35741000.0,35919250.0,36840251.0,37813209.0,38899460.0,39867500.0,40769208.0,41782872.0,42744542.0,43870456.0,45685210.0,45761586.0,46922043.0,47826416.0,48771418.0,49917708.0,50713959.0,52038125.0,52717750.0,53917874.0,54692999.0,55762000.0,56796333.0,57691582.0,58725542.0,59749587.0,60789375.0,61688666.0,62839710.0,63889376.0,64736042.0,65757793.0,66624418.0,67662918.0,68582792.0,69998418.0,70758082.0,72637500.0,75052916.0,75869625.0,75901082.0,75694377.0,77622751.0,79381086.0,80797168.0,80286212.0,82705000.0,81729208.0,82822624.0,84227957.0,86783461.0,85672251.0,86600207.0,87552832.0,91137917.0,90034248.0,90601584.0,91450542.0,92516791.0,93700459.0,94477083.0,95553958.0,96457460.0,97561792.0,98562418.0,99571250.0]} ================================================ FILE: docs/criterion/Clone/String/0/new/tukey.json ================================================ [30621.18593811322,30862.483710569562,31505.944437119804,31747.242209576143] ================================================ FILE: docs/criterion/Clone/String/0/report/index.html ================================================ Clone/String/0 - Criterion.rs

Clone/String/0

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 31.198 µs 31.273 µs 31.358 µs
0.9864623 0.9872468 0.9862477
Mean 31.226 µs 31.287 µs 31.356 µs
Std. Dev. 238.42 ns 332.58 ns 418.94 ns
Median 31.126 µs 31.149 µs 31.180 µs
MAD 64.965 ns 87.154 ns 127.95 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −2.3872% −0.7947% +0.1628% (p = 0.33 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/String/10/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"String","value_str":"10","throughput":null,"full_id":"Clone/String/10","directory_name":"Clone/String/10","title":"Clone/String/10"} ================================================ FILE: docs/criterion/Clone/String/10/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":224599.0251581536,"upper_bound":225562.2241984213},"point_estimate":225044.92739067905,"standard_error":245.78850947590908},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":223904.95952380952,"upper_bound":224389.8698245614},"point_estimate":224041.31748768472,"standard_error":128.0563675459019},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":454.20420572308115,"upper_bound":1036.1075786054153},"point_estimate":679.33939974698,"standard_error":143.27658915691995},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":224630.34274401466,"upper_bound":226564.32117693944},"point_estimate":225525.1927755283,"standard_error":499.03652105923425},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1567.3478172181035,"upper_bound":3228.7843176363604},"point_estimate":2471.2470097074665,"standard_error":424.39108953205124}} ================================================ FILE: docs/criterion/Clone/String/10/base/sample.json ================================================ {"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":[1130251.0,2252378.0,3417960.0,4555334.0,5710791.0,6785293.0,8093542.0,8932709.0,10114791.0,11290917.0,12506001.0,13547582.0,14561583.0,15839790.0,16923083.0,17986207.0,19044207.0,20268998.0,21333789.0,22397667.0,23508666.0,24665126.0,25743500.0,26865918.0,27964081.0,29116500.0,30183292.0,31294332.0,32417919.0,33642044.0,34710627.0,35922500.0,36928374.0,38063250.0,39124624.0,40292294.0,41410166.0,42541250.0,43808251.0,44740127.0,45815208.0,47050293.0,48084458.0,49677000.0,50295040.0,51505831.0,52859709.0,53711458.0,54707084.0,55903708.0,57000458.0,58183041.0,59492041.0,60436292.0,61543292.0,62568251.0,63948374.0,64860959.0,66077708.0,67129752.0,68438499.0,69310374.0,70910998.0,71654794.0,72635875.0,73885333.0,76045458.0,76113833.0,77153249.0,78232208.0,79432418.0,81659666.0,82026583.0,83118458.0,85136750.0,87196293.0,86748374.0,87471377.0,88671750.0,89759792.0,90951042.0,91901750.0,92815375.0,94040083.0,95298166.0,96318333.0,97454625.0,102259789.0,101426041.0,105344458.0,107997419.0,108184460.0,105476209.0,105831290.0,106439333.0,107466542.0,108516126.0,109620209.0,111353748.0,111903541.0]} ================================================ FILE: docs/criterion/Clone/String/10/base/tukey.json ================================================ [219614.82327381833,221702.69841138468,227270.36544489497,229358.24058246132] ================================================ FILE: docs/criterion/Clone/String/10/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0007175984051097955,"upper_bound":0.0054053942002231375},"point_estimate":0.0023381839618377143,"standard_error":0.0015380433800179169},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.00017401658100080208,"upper_bound":0.0023062044175736762},"point_estimate":0.0006371719016140531,"standard_error":0.0006299031426479882}} ================================================ FILE: docs/criterion/Clone/String/10/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"String","value_str":"10","throughput":null,"full_id":"Clone/String/10","directory_name":"Clone/String/10","title":"Clone/String/10"} ================================================ FILE: docs/criterion/Clone/String/10/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":224599.0251581536,"upper_bound":225562.2241984213},"point_estimate":225044.92739067905,"standard_error":245.78850947590908},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":223904.95952380952,"upper_bound":224389.8698245614},"point_estimate":224041.31748768472,"standard_error":128.0563675459019},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":454.20420572308115,"upper_bound":1036.1075786054153},"point_estimate":679.33939974698,"standard_error":143.27658915691995},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":224630.34274401466,"upper_bound":226564.32117693944},"point_estimate":225525.1927755283,"standard_error":499.03652105923425},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1567.3478172181035,"upper_bound":3228.7843176363604},"point_estimate":2471.2470097074665,"standard_error":424.39108953205124}} ================================================ FILE: docs/criterion/Clone/String/10/new/sample.json ================================================ {"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":[1130251.0,2252378.0,3417960.0,4555334.0,5710791.0,6785293.0,8093542.0,8932709.0,10114791.0,11290917.0,12506001.0,13547582.0,14561583.0,15839790.0,16923083.0,17986207.0,19044207.0,20268998.0,21333789.0,22397667.0,23508666.0,24665126.0,25743500.0,26865918.0,27964081.0,29116500.0,30183292.0,31294332.0,32417919.0,33642044.0,34710627.0,35922500.0,36928374.0,38063250.0,39124624.0,40292294.0,41410166.0,42541250.0,43808251.0,44740127.0,45815208.0,47050293.0,48084458.0,49677000.0,50295040.0,51505831.0,52859709.0,53711458.0,54707084.0,55903708.0,57000458.0,58183041.0,59492041.0,60436292.0,61543292.0,62568251.0,63948374.0,64860959.0,66077708.0,67129752.0,68438499.0,69310374.0,70910998.0,71654794.0,72635875.0,73885333.0,76045458.0,76113833.0,77153249.0,78232208.0,79432418.0,81659666.0,82026583.0,83118458.0,85136750.0,87196293.0,86748374.0,87471377.0,88671750.0,89759792.0,90951042.0,91901750.0,92815375.0,94040083.0,95298166.0,96318333.0,97454625.0,102259789.0,101426041.0,105344458.0,107997419.0,108184460.0,105476209.0,105831290.0,106439333.0,107466542.0,108516126.0,109620209.0,111353748.0,111903541.0]} ================================================ FILE: docs/criterion/Clone/String/10/new/tukey.json ================================================ [219614.82327381833,221702.69841138468,227270.36544489497,229358.24058246132] ================================================ FILE: docs/criterion/Clone/String/10/report/index.html ================================================ Clone/String/10 - Criterion.rs

Clone/String/10

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 224.63 µs 225.53 µs 226.56 µs
0.9682703 0.9703713 0.9675403
Mean 224.60 µs 225.04 µs 225.56 µs
Std. Dev. 1.5673 µs 2.4712 µs 3.2288 µs
Median 223.90 µs 224.04 µs 224.39 µs
MAD 454.20 ns 679.34 ns 1.0361 µs

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.0718% +0.2338% +0.5405% (p = 0.14 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/String/100/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"String","value_str":"100","throughput":null,"full_id":"Clone/String/100","directory_name":"Clone/String/100","title":"Clone/String/100"} ================================================ FILE: docs/criterion/Clone/String/100/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":222674.57501610287,"upper_bound":223164.84867302395},"point_estimate":222908.8403115666,"standard_error":124.7688545242552},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":222415.905,"upper_bound":222680.97},"point_estimate":222547.394574064,"standard_error":79.52712853639328},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":484.1179108487629,"upper_bound":951.3412341543797},"point_estimate":692.7560477538818,"standard_error":123.37308860800117},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":222562.33469435488,"upper_bound":223059.8877949125},"point_estimate":222800.54126910004,"standard_error":127.29258398784573},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":923.6225960311407,"upper_bound":1596.346483369036},"point_estimate":1254.8005171169289,"standard_error":175.47891569092224}} ================================================ FILE: docs/criterion/Clone/String/100/base/sample.json ================================================ {"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":[1108417.0,2200208.0,3382666.0,4476043.0,5733583.0,6757624.0,7902042.0,8910917.0,10145459.0,11199375.0,12248126.0,13327458.0,14513376.0,15597417.0,16781332.0,17794626.0,18954626.0,20101499.0,21129083.0,22242041.0,23517832.0,24429749.0,25557584.0,26708958.0,27773168.0,28826499.0,29951917.0,31240877.0,32313628.0,33376417.0,34476166.0,35675501.0,36691750.0,37853417.0,38923291.0,39968374.0,41115043.0,42285958.0,43278002.0,44462916.0,45596501.0,46951792.0,48276124.0,49584542.0,50024334.0,51104500.0,52203168.0,53678833.0,55059250.0,56508085.0,57107376.0,57781334.0,59013501.0,59978167.0,61245251.0,62336250.0,63472500.0,64356041.0,65519541.0,66804291.0,67665914.0,68849792.0,70006247.0,70952582.0,72049210.0,73315958.0,74339791.0,75638542.0,76553293.0,77968085.0,79871500.0,79875957.0,81133083.0,82102042.0,83931292.0,84351918.0,85497584.0,86988875.0,87953417.0,89663416.0,89924583.0,91036293.0,92193541.0,93267043.0,94593709.0,95780250.0,96847250.0,98721958.0,98715918.0,99920248.0,101219291.0,102981666.0,103521795.0,105275165.0,106208667.0,108219874.0,107930501.0,109076127.0,110138291.0,111659291.0]} ================================================ FILE: docs/criterion/Clone/String/100/base/tukey.json ================================================ [218568.42010992905,220352.675214539,225110.68882683216,226894.9439314421] ================================================ FILE: docs/criterion/Clone/String/100/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.014168000002449357,"upper_bound":-0.006101683896147637},"point_estimate":-0.009869442271608908,"standard_error":0.002063010560025872},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.009010259833139411,"upper_bound":-0.0027097083734494154},"point_estimate":-0.005312266999133564,"standard_error":0.0017023774787292103}} ================================================ FILE: docs/criterion/Clone/String/100/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"String","value_str":"100","throughput":null,"full_id":"Clone/String/100","directory_name":"Clone/String/100","title":"Clone/String/100"} ================================================ FILE: docs/criterion/Clone/String/100/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":222674.57501610287,"upper_bound":223164.84867302395},"point_estimate":222908.8403115666,"standard_error":124.7688545242552},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":222415.905,"upper_bound":222680.97},"point_estimate":222547.394574064,"standard_error":79.52712853639328},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":484.1179108487629,"upper_bound":951.3412341543797},"point_estimate":692.7560477538818,"standard_error":123.37308860800117},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":222562.33469435488,"upper_bound":223059.8877949125},"point_estimate":222800.54126910004,"standard_error":127.29258398784573},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":923.6225960311407,"upper_bound":1596.346483369036},"point_estimate":1254.8005171169289,"standard_error":175.47891569092224}} ================================================ FILE: docs/criterion/Clone/String/100/new/sample.json ================================================ {"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":[1108417.0,2200208.0,3382666.0,4476043.0,5733583.0,6757624.0,7902042.0,8910917.0,10145459.0,11199375.0,12248126.0,13327458.0,14513376.0,15597417.0,16781332.0,17794626.0,18954626.0,20101499.0,21129083.0,22242041.0,23517832.0,24429749.0,25557584.0,26708958.0,27773168.0,28826499.0,29951917.0,31240877.0,32313628.0,33376417.0,34476166.0,35675501.0,36691750.0,37853417.0,38923291.0,39968374.0,41115043.0,42285958.0,43278002.0,44462916.0,45596501.0,46951792.0,48276124.0,49584542.0,50024334.0,51104500.0,52203168.0,53678833.0,55059250.0,56508085.0,57107376.0,57781334.0,59013501.0,59978167.0,61245251.0,62336250.0,63472500.0,64356041.0,65519541.0,66804291.0,67665914.0,68849792.0,70006247.0,70952582.0,72049210.0,73315958.0,74339791.0,75638542.0,76553293.0,77968085.0,79871500.0,79875957.0,81133083.0,82102042.0,83931292.0,84351918.0,85497584.0,86988875.0,87953417.0,89663416.0,89924583.0,91036293.0,92193541.0,93267043.0,94593709.0,95780250.0,96847250.0,98721958.0,98715918.0,99920248.0,101219291.0,102981666.0,103521795.0,105275165.0,106208667.0,108219874.0,107930501.0,109076127.0,110138291.0,111659291.0]} ================================================ FILE: docs/criterion/Clone/String/100/new/tukey.json ================================================ [218568.42010992905,220352.675214539,225110.68882683216,226894.9439314421] ================================================ FILE: docs/criterion/Clone/String/100/report/index.html ================================================ Clone/String/100 - Criterion.rs

Clone/String/100

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 222.56 µs 222.80 µs 223.06 µs
0.9973349 0.9974904 0.9973060
Mean 222.67 µs 222.91 µs 223.16 µs
Std. Dev. 923.62 ns 1.2548 µs 1.5963 µs
Median 222.42 µs 222.55 µs 222.68 µs
MAD 484.12 ns 692.76 ns 951.34 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −1.4168% −0.9869% −0.6102% (p = 0.00 < 0.05)
Change within noise threshold.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/String/20/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"String","value_str":"20","throughput":null,"full_id":"Clone/String/20","directory_name":"Clone/String/20","title":"Clone/String/20"} ================================================ FILE: docs/criterion/Clone/String/20/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":246165.0605146362,"upper_bound":246754.7194681356},"point_estimate":246445.7238301274,"standard_error":150.842916171099},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":245755.02,"upper_bound":246012.63092783504},"point_estimate":245850.7429378531,"standard_error":69.51146844051239},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":468.1035767735222,"upper_bound":804.5869809884553},"point_estimate":616.8277404748287,"standard_error":84.90253265813415},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":245837.41190197458,"upper_bound":246416.6546249646},"point_estimate":246099.62344850006,"standard_error":148.883670341166},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1164.985384939296,"upper_bound":1824.7369663276895},"point_estimate":1518.5799104804146,"standard_error":168.6719567034634}} ================================================ FILE: docs/criterion/Clone/String/20/base/sample.json ================================================ {"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":[1241875.0,2453583.0,3789166.0,4997210.0,6271084.0,7404041.0,8695289.0,9841499.0,11249791.0,12502710.0,13528668.0,14746125.0,16141044.0,17221958.0,18473167.0,19666875.0,20913958.0,22126710.0,23325753.0,24575502.0,25812124.0,26989874.0,28308750.0,29516334.0,31047040.0,31898665.0,33673502.0,34986082.0,35934458.0,36829375.0,38073082.0,39273874.0,40519750.0,41727209.0,43059749.0,44647459.0,45579460.0,46615585.0,47930835.0,49257083.0,50384624.0,51548251.0,52785082.0,54024083.0,55496169.0,56537124.0,57861794.0,58928166.0,60479251.0,62379043.0,62586252.0,65062666.0,65178415.0,66570333.0,67792584.0,68733958.0,69962625.0,71318333.0,72525500.0,73723998.0,75025957.0,76336209.0,77296708.0,78508915.0,79743415.0,80970540.0,82253709.0,83803708.0,85823253.0,86044708.0,87109708.0,88287540.0,89647083.0,90796959.0,91986917.0,93232043.0,94491749.0,95827750.0,97392959.0,98324709.0,99587125.0,100575042.0,101746372.0,103520040.0,104283915.0,105768333.0,106801415.0,108200251.0,109493877.0,110433457.0,111703876.0,113334249.0,114494918.0,117200956.0,118379291.0,118231791.0,119316126.0,120417499.0,121603375.0,122628501.0]} ================================================ FILE: docs/criterion/Clone/String/20/base/tukey.json ================================================ [242559.20381893648,244028.59781750757,247946.98181369714,249416.37581226823] ================================================ FILE: docs/criterion/Clone/String/20/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.014973432264517552,"upper_bound":-0.0006119278574378073},"point_estimate":-0.006067991468827194,"standard_error":0.003899271732406617},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0021763375825841758,"upper_bound":-0.00010729007264187462},"point_estimate":-0.0011183273787123138,"standard_error":0.0005177392976412073}} ================================================ FILE: docs/criterion/Clone/String/20/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"String","value_str":"20","throughput":null,"full_id":"Clone/String/20","directory_name":"Clone/String/20","title":"Clone/String/20"} ================================================ FILE: docs/criterion/Clone/String/20/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":246165.0605146362,"upper_bound":246754.7194681356},"point_estimate":246445.7238301274,"standard_error":150.842916171099},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":245755.02,"upper_bound":246012.63092783504},"point_estimate":245850.7429378531,"standard_error":69.51146844051239},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":468.1035767735222,"upper_bound":804.5869809884553},"point_estimate":616.8277404748287,"standard_error":84.90253265813415},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":245837.41190197458,"upper_bound":246416.6546249646},"point_estimate":246099.62344850006,"standard_error":148.883670341166},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1164.985384939296,"upper_bound":1824.7369663276895},"point_estimate":1518.5799104804146,"standard_error":168.6719567034634}} ================================================ FILE: docs/criterion/Clone/String/20/new/sample.json ================================================ {"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":[1241875.0,2453583.0,3789166.0,4997210.0,6271084.0,7404041.0,8695289.0,9841499.0,11249791.0,12502710.0,13528668.0,14746125.0,16141044.0,17221958.0,18473167.0,19666875.0,20913958.0,22126710.0,23325753.0,24575502.0,25812124.0,26989874.0,28308750.0,29516334.0,31047040.0,31898665.0,33673502.0,34986082.0,35934458.0,36829375.0,38073082.0,39273874.0,40519750.0,41727209.0,43059749.0,44647459.0,45579460.0,46615585.0,47930835.0,49257083.0,50384624.0,51548251.0,52785082.0,54024083.0,55496169.0,56537124.0,57861794.0,58928166.0,60479251.0,62379043.0,62586252.0,65062666.0,65178415.0,66570333.0,67792584.0,68733958.0,69962625.0,71318333.0,72525500.0,73723998.0,75025957.0,76336209.0,77296708.0,78508915.0,79743415.0,80970540.0,82253709.0,83803708.0,85823253.0,86044708.0,87109708.0,88287540.0,89647083.0,90796959.0,91986917.0,93232043.0,94491749.0,95827750.0,97392959.0,98324709.0,99587125.0,100575042.0,101746372.0,103520040.0,104283915.0,105768333.0,106801415.0,108200251.0,109493877.0,110433457.0,111703876.0,113334249.0,114494918.0,117200956.0,118379291.0,118231791.0,119316126.0,120417499.0,121603375.0,122628501.0]} ================================================ FILE: docs/criterion/Clone/String/20/new/tukey.json ================================================ [242559.20381893648,244028.59781750757,247946.98181369714,249416.37581226823] ================================================ FILE: docs/criterion/Clone/String/20/report/index.html ================================================ Clone/String/20 - Criterion.rs

Clone/String/20

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 245.84 µs 246.10 µs 246.42 µs
0.9970368 0.9971949 0.9969638
Mean 246.17 µs 246.45 µs 246.75 µs
Std. Dev. 1.1650 µs 1.5186 µs 1.8247 µs
Median 245.76 µs 245.85 µs 246.01 µs
MAD 468.10 ns 616.83 ns 804.59 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −1.4973% −0.6068% −0.0612% (p = 0.09 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/String/500/base/benchmark.json ================================================ {"group_id":"Clone","function_id":"String","value_str":"500","throughput":null,"full_id":"Clone/String/500","directory_name":"Clone/String/500","title":"Clone/String/500"} ================================================ FILE: docs/criterion/Clone/String/500/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":492029.19478467095,"upper_bound":493935.8803314969},"point_estimate":492982.53776051715,"standard_error":485.2024297346945},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":492331.9871794872,"upper_bound":493967.6282932417},"point_estimate":493009.89145819616,"standard_error":439.070350969204},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2574.6178092913715,"upper_bound":4133.828078644789},"point_estimate":3554.5233141004783,"standard_error":397.5925692347991},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":492285.1508775134,"upper_bound":493424.7467390829},"point_estimate":492852.98927589774,"standard_error":290.7127701511807},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3686.6243521684496,"upper_bound":6013.955134236364},"point_estimate":4881.314319009194,"standard_error":595.0644536782141}} ================================================ FILE: docs/criterion/Clone/String/500/base/sample.json ================================================ {"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":[980208.0,1936915.0,2906044.0,4110416.0,5001206.0,5764624.0,6794999.0,7648332.0,8623125.0,9589540.0,10989583.0,11944791.0,12838293.0,13845085.0,15049543.0,15956208.0,16927916.0,17845166.0,18919792.0,19841457.0,20826457.0,21922043.0,22655375.0,23538082.0,24799626.0,25690999.0,26487584.0,27491500.0,28947710.0,29707000.0,30477916.0,31461625.0,32684583.0,33706584.0,34591918.0,35756083.0,36390292.0,37224581.0,38273959.0,39809250.0,40318832.0,41709000.0,43430209.0,43474290.0,44314917.0,44727876.0,46274625.0,47644377.0,47951668.0,48907669.0,50015583.0,51490249.0,52368292.0,52949960.0,53976792.0,54952958.0,56548500.0,57628458.0,58123749.0,59302668.0,59690374.0,61134374.0,62232541.0,63082041.0,63501127.0,65094709.0,66396999.0,67380710.0,68536211.0,69087833.0,70185083.0,71044583.0,72116707.0,72929334.0,73709083.0,75334168.0,75766916.0,76803790.0,77504999.0,78078333.0,79684541.0,80738625.0,81586124.0,82906333.0,84486169.0,84413210.0,85599583.0,86674252.0,87398624.0,89087917.0,89199667.0,90487583.0,91870042.0,91820625.0,93744001.0,94625332.0,95841083.0,96628125.0,98179209.0,98538499.0]} ================================================ FILE: docs/criterion/Clone/String/500/base/tukey.json ================================================ [476113.81099529384,483434.59791308036,502956.696360511,510277.48327829747] ================================================ FILE: docs/criterion/Clone/String/500/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0045183289330360385,"upper_bound":0.00010957853215820312},"point_estimate":-0.0020682768773140348,"standard_error":0.0011820415552581522},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0037611968216539893,"upper_bound":0.0009416123956522693},"point_estimate":-0.001574804970585597,"standard_error":0.0011946792798350168}} ================================================ FILE: docs/criterion/Clone/String/500/new/benchmark.json ================================================ {"group_id":"Clone","function_id":"String","value_str":"500","throughput":null,"full_id":"Clone/String/500","directory_name":"Clone/String/500","title":"Clone/String/500"} ================================================ FILE: docs/criterion/Clone/String/500/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":492029.19478467095,"upper_bound":493935.8803314969},"point_estimate":492982.53776051715,"standard_error":485.2024297346945},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":492331.9871794872,"upper_bound":493967.6282932417},"point_estimate":493009.89145819616,"standard_error":439.070350969204},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2574.6178092913715,"upper_bound":4133.828078644789},"point_estimate":3554.5233141004783,"standard_error":397.5925692347991},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":492285.1508775134,"upper_bound":493424.7467390829},"point_estimate":492852.98927589774,"standard_error":290.7127701511807},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3686.6243521684496,"upper_bound":6013.955134236364},"point_estimate":4881.314319009194,"standard_error":595.0644536782141}} ================================================ FILE: docs/criterion/Clone/String/500/new/sample.json ================================================ {"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":[980208.0,1936915.0,2906044.0,4110416.0,5001206.0,5764624.0,6794999.0,7648332.0,8623125.0,9589540.0,10989583.0,11944791.0,12838293.0,13845085.0,15049543.0,15956208.0,16927916.0,17845166.0,18919792.0,19841457.0,20826457.0,21922043.0,22655375.0,23538082.0,24799626.0,25690999.0,26487584.0,27491500.0,28947710.0,29707000.0,30477916.0,31461625.0,32684583.0,33706584.0,34591918.0,35756083.0,36390292.0,37224581.0,38273959.0,39809250.0,40318832.0,41709000.0,43430209.0,43474290.0,44314917.0,44727876.0,46274625.0,47644377.0,47951668.0,48907669.0,50015583.0,51490249.0,52368292.0,52949960.0,53976792.0,54952958.0,56548500.0,57628458.0,58123749.0,59302668.0,59690374.0,61134374.0,62232541.0,63082041.0,63501127.0,65094709.0,66396999.0,67380710.0,68536211.0,69087833.0,70185083.0,71044583.0,72116707.0,72929334.0,73709083.0,75334168.0,75766916.0,76803790.0,77504999.0,78078333.0,79684541.0,80738625.0,81586124.0,82906333.0,84486169.0,84413210.0,85599583.0,86674252.0,87398624.0,89087917.0,89199667.0,90487583.0,91870042.0,91820625.0,93744001.0,94625332.0,95841083.0,96628125.0,98179209.0,98538499.0]} ================================================ FILE: docs/criterion/Clone/String/500/new/tukey.json ================================================ [476113.81099529384,483434.59791308036,502956.696360511,510277.48327829747] ================================================ FILE: docs/criterion/Clone/String/500/report/index.html ================================================ Clone/String/500 - Criterion.rs

Clone/String/500

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 492.29 µs 492.85 µs 493.42 µs
0.9962949 0.9964772 0.9962924
Mean 492.03 µs 492.98 µs 493.94 µs
Std. Dev. 3.6866 µs 4.8813 µs 6.0140 µs
Median 492.33 µs 493.01 µs 493.97 µs
MAD 2.5746 µs 3.5545 µs 4.1338 µs

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.4518% −0.2068% +0.0110% (p = 0.09 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Clone/String/report/index.html ================================================ Clone/String Summary - Criterion.rs

Clone/String

Violin Plot

Violin Plot

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

Line Chart

Line Chart

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

Clone/String/0

PDF of Slope Regression

Clone/String/10

PDF of Slope Regression

Clone/String/20

PDF of Slope Regression

Clone/String/100

PDF of Slope Regression

Clone/String/500

PDF of Slope Regression
================================================ FILE: docs/criterion/Clone/report/index.html ================================================ Clone Summary - Criterion.rs

Clone

Violin Plot

Violin Plot

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

Line Chart

Line Chart

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

Clone/Arc<str>/0

PDF of Slope Regression

Clone/Arc<str>/10

PDF of Slope Regression

Clone/Arc<str>/20

PDF of Slope Regression

Clone/Arc<str>/100

PDF of Slope Regression

Clone/Arc<str>/500

PDF of Slope Regression

Clone/FlexStr 0.10 (LocalStr - Boxed)/0

PDF of Slope Regression

Clone/FlexStr 0.10 (LocalStr - Boxed)/10

PDF of Slope Regression

Clone/FlexStr 0.10 (LocalStr - Boxed)/20

PDF of Slope Regression

Clone/FlexStr 0.10 (LocalStr - Boxed)/100

PDF of Slope Regression

Clone/FlexStr 0.10 (LocalStr - Boxed)/500

PDF of Slope Regression

Clone/FlexStr 0.10 (LocalStr - Optimized)/0

PDF of Slope Regression

Clone/FlexStr 0.10 (LocalStr - Optimized)/10

PDF of Slope Regression

Clone/FlexStr 0.10 (LocalStr - Optimized)/20

PDF of Slope Regression

Clone/FlexStr 0.10 (LocalStr - Optimized)/100

PDF of Slope Regression

Clone/FlexStr 0.10 (LocalStr - Optimized)/500

PDF of Slope Regression

Clone/FlexStr 0.10 (SharedStr - Boxed)/0

PDF of Slope Regression

Clone/FlexStr 0.10 (SharedStr - Boxed)/10

PDF of Slope Regression

Clone/FlexStr 0.10 (SharedStr - Boxed)/20

PDF of Slope Regression

Clone/FlexStr 0.10 (SharedStr - Boxed)/100

PDF of Slope Regression

Clone/FlexStr 0.10 (SharedStr - Boxed)/500

PDF of Slope Regression

Clone/FlexStr 0.10 (SharedStr - Optimized)/0

PDF of Slope Regression

Clone/FlexStr 0.10 (SharedStr - Optimized)/10

PDF of Slope Regression

Clone/FlexStr 0.10 (SharedStr - Optimized)/20

PDF of Slope Regression

Clone/FlexStr 0.10 (SharedStr - Optimized)/100

PDF of Slope Regression

Clone/FlexStr 0.10 (SharedStr - Optimized)/500

PDF of Slope Regression

Clone/FlexStr 0.9 (LocalStr)/0

PDF of Slope Regression

Clone/FlexStr 0.9 (LocalStr)/10

PDF of Slope Regression

Clone/FlexStr 0.9 (LocalStr)/20

PDF of Slope Regression

Clone/FlexStr 0.9 (LocalStr)/100

PDF of Slope Regression

Clone/FlexStr 0.9 (LocalStr)/500

PDF of Slope Regression

Clone/FlexStr 0.9 (SharedStr)/0

PDF of Slope Regression

Clone/FlexStr 0.9 (SharedStr)/10

PDF of Slope Regression

Clone/FlexStr 0.9 (SharedStr)/20

PDF of Slope Regression

Clone/FlexStr 0.9 (SharedStr)/100

PDF of Slope Regression

Clone/FlexStr 0.9 (SharedStr)/500

PDF of Slope Regression

Clone/InlineFlexStr 0.1 (InlineStr)/0

PDF of Slope Regression

Clone/InlineFlexStr 0.1 (InlineStr)/10

PDF of Slope Regression

Clone/InlineFlexStr 0.1 (InlineStr)/20

PDF of Slope Regression

Clone/InlineFlexStr 0.1 (InlineStr)/100

PDF of Slope Regression

Clone/InlineFlexStr 0.1 (InlineStr)/500

PDF of Slope Regression

Clone/Rc<str>/0

PDF of Slope Regression

Clone/Rc<str>/10

PDF of Slope Regression

Clone/Rc<str>/20

PDF of Slope Regression

Clone/Rc<str>/100

PDF of Slope Regression

Clone/Rc<str>/500

PDF of Slope Regression

Clone/String/0

PDF of Slope Regression

Clone/String/10

PDF of Slope Regression

Clone/String/20

PDF of Slope Regression

Clone/String/100

PDF of Slope Regression

Clone/String/500

PDF of Slope Regression
================================================ FILE: docs/criterion/Import as borrowed, own and destroy/0/report/index.html ================================================ Import as borrowed, own and destroy/0 Summary - Criterion.rs

Import as borrowed, own and destroy/0

Violin Plot

Violin Plot

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

Import as borrowed, own and destroy/Cow<'_, str>/0

PDF of Slope Regression

Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/0

PDF of Slope Regression

Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/0

PDF of Slope Regression
================================================ FILE: docs/criterion/Import as borrowed, own and destroy/10/report/index.html ================================================ Import as borrowed, own and destroy/10 Summary - Criterion.rs

Import as borrowed, own and destroy/10

Violin Plot

Violin Plot

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

Import as borrowed, own and destroy/Cow<'_, str>/10

PDF of Slope Regression

Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/10

PDF of Slope Regression

Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/10

PDF of Slope Regression
================================================ FILE: docs/criterion/Import as borrowed, own and destroy/100/report/index.html ================================================ Import as borrowed, own and destroy/100 Summary - Criterion.rs

Import as borrowed, own and destroy/100

Violin Plot

Violin Plot

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

Import as borrowed, own and destroy/Cow<'_, str>/100

PDF of Slope Regression

Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/100

PDF of Slope Regression

Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/100

PDF of Slope Regression
================================================ FILE: docs/criterion/Import as borrowed, own and destroy/20/report/index.html ================================================ Import as borrowed, own and destroy/20 Summary - Criterion.rs

Import as borrowed, own and destroy/20

Violin Plot

Violin Plot

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

Import as borrowed, own and destroy/Cow<'_, str>/20

PDF of Slope Regression

Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/20

PDF of Slope Regression

Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/20

PDF of Slope Regression
================================================ FILE: docs/criterion/Import as borrowed, own and destroy/500/report/index.html ================================================ Import as borrowed, own and destroy/500 Summary - Criterion.rs

Import as borrowed, own and destroy/500

Violin Plot

Violin Plot

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

Import as borrowed, own and destroy/Cow<'_, str>/500

PDF of Slope Regression

Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/500

PDF of Slope Regression

Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/500

PDF of Slope Regression
================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/0/base/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"Cow<'_, str>","value_str":"0","throughput":null,"full_id":"Import as borrowed, own and destroy/Cow<'_, str>/0","directory_name":"Import as borrowed, own and destroy/Cow_'_, str_/0","title":"Import as borrowed, own and destroy/Cow<'_, str>/0"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/0/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.9608889033808117,"upper_bound":4.055740414203935},"point_estimate":4.003340648796448,"standard_error":0.02434823545683492},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.8567387959294415,"upper_bound":4.041026656228535},"point_estimate":3.970242857054903,"standard_error":0.050088958289434514},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.06846601351554109,"upper_bound":0.22997794365279445},"point_estimate":0.2058848749169522,"standard_error":0.04568885117147452},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.972690036583421,"upper_bound":4.045627082717556},"point_estimate":4.011858233516293,"standard_error":0.018608209704169057},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.13892675030833918,"upper_bound":0.35860710173163934},"point_estimate":0.2444974609728573,"standard_error":0.06353571928959084}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/0/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[111131.0,222262.0,333393.0,444524.0,555655.0,666786.0,777917.0,889048.0,1000179.0,1111310.0,1222441.0,1333572.0,1444703.0,1555834.0,1666965.0,1778096.0,1889227.0,2000358.0,2111489.0,2222620.0,2333751.0,2444882.0,2556013.0,2667144.0,2778275.0,2889406.0,3000537.0,3111668.0,3222799.0,3333930.0,3445061.0,3556192.0,3667323.0,3778454.0,3889585.0,4000716.0,4111847.0,4222978.0,4334109.0,4445240.0,4556371.0,4667502.0,4778633.0,4889764.0,5000895.0,5112026.0,5223157.0,5334288.0,5445419.0,5556550.0,5667681.0,5778812.0,5889943.0,6001074.0,6112205.0,6223336.0,6334467.0,6445598.0,6556729.0,6667860.0,6778991.0,6890122.0,7001253.0,7112384.0,7223515.0,7334646.0,7445777.0,7556908.0,7668039.0,7779170.0,7890301.0,8001432.0,8112563.0,8223694.0,8334825.0,8445956.0,8557087.0,8668218.0,8779349.0,8890480.0,9001611.0,9112742.0,9223873.0,9335004.0,9446135.0,9557266.0,9668397.0,9779528.0,9890659.0,10001790.0,10112921.0,10224052.0,10335183.0,10446314.0,10557445.0,10668576.0,10779707.0,10890838.0,11001969.0,11113100.0],"times":[640206.0,850877.0,1293250.0,2158919.0,2138293.0,2864667.0,3119331.0,3744041.0,4167374.0,4445959.0,5025417.0,5498748.0,6122207.0,6442293.0,6671916.0,7309958.0,7704666.0,8083500.0,8380789.0,8868499.0,9292542.0,9650375.0,10299458.0,11168792.0,11033499.0,11590791.0,11863416.0,12686250.0,12930333.0,13489750.0,14222416.0,13694958.0,14109458.0,14541000.0,15005582.0,15396043.0,15754000.0,16404665.0,16939374.0,17111168.0,17536997.0,17959083.0,18357291.0,18913916.0,19223414.0,19715749.0,20036294.0,20469585.0,20892623.0,21327583.0,21725169.0,22662042.0,22566625.0,22947916.0,23397249.0,23745082.0,24319500.0,24700209.0,25286917.0,25456793.0,26045290.0,26336041.0,26903166.0,27249085.0,27502999.0,27944332.0,28381291.0,28929083.0,29320917.0,29582705.0,30287500.0,30362624.0,30920125.0,31419125.0,32055958.0,36188167.0,35565500.0,35971210.0,36672041.0,37130292.0,37319000.0,37703165.0,38379290.0,38470292.0,38943333.0,39524459.0,39854374.0,40309666.0,40830457.0,41242751.0,41671833.0,42152667.0,42702334.0,42978206.0,43298876.0,43844749.0,44231082.0,45025418.0,45188374.0,45588666.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/0/base/tukey.json ================================================ [2.989480686483657,3.414274711749243,4.547058779124139,4.971852804389725] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/0/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.022084374967590574,"upper_bound":0.013390504903912455},"point_estimate":-0.005063116059655037,"standard_error":0.009074915875593356},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.03565371500746972,"upper_bound":0.03335271682389959},"point_estimate":0.002503567210385249,"standard_error":0.017198995727582638}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/0/new/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"Cow<'_, str>","value_str":"0","throughput":null,"full_id":"Import as borrowed, own and destroy/Cow<'_, str>/0","directory_name":"Import as borrowed, own and destroy/Cow_'_, str_/0","title":"Import as borrowed, own and destroy/Cow<'_, str>/0"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/0/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.9608889033808117,"upper_bound":4.055740414203935},"point_estimate":4.003340648796448,"standard_error":0.02434823545683492},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.8567387959294415,"upper_bound":4.041026656228535},"point_estimate":3.970242857054903,"standard_error":0.050088958289434514},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.06846601351554109,"upper_bound":0.22997794365279445},"point_estimate":0.2058848749169522,"standard_error":0.04568885117147452},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.972690036583421,"upper_bound":4.045627082717556},"point_estimate":4.011858233516293,"standard_error":0.018608209704169057},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.13892675030833918,"upper_bound":0.35860710173163934},"point_estimate":0.2444974609728573,"standard_error":0.06353571928959084}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/0/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[111131.0,222262.0,333393.0,444524.0,555655.0,666786.0,777917.0,889048.0,1000179.0,1111310.0,1222441.0,1333572.0,1444703.0,1555834.0,1666965.0,1778096.0,1889227.0,2000358.0,2111489.0,2222620.0,2333751.0,2444882.0,2556013.0,2667144.0,2778275.0,2889406.0,3000537.0,3111668.0,3222799.0,3333930.0,3445061.0,3556192.0,3667323.0,3778454.0,3889585.0,4000716.0,4111847.0,4222978.0,4334109.0,4445240.0,4556371.0,4667502.0,4778633.0,4889764.0,5000895.0,5112026.0,5223157.0,5334288.0,5445419.0,5556550.0,5667681.0,5778812.0,5889943.0,6001074.0,6112205.0,6223336.0,6334467.0,6445598.0,6556729.0,6667860.0,6778991.0,6890122.0,7001253.0,7112384.0,7223515.0,7334646.0,7445777.0,7556908.0,7668039.0,7779170.0,7890301.0,8001432.0,8112563.0,8223694.0,8334825.0,8445956.0,8557087.0,8668218.0,8779349.0,8890480.0,9001611.0,9112742.0,9223873.0,9335004.0,9446135.0,9557266.0,9668397.0,9779528.0,9890659.0,10001790.0,10112921.0,10224052.0,10335183.0,10446314.0,10557445.0,10668576.0,10779707.0,10890838.0,11001969.0,11113100.0],"times":[640206.0,850877.0,1293250.0,2158919.0,2138293.0,2864667.0,3119331.0,3744041.0,4167374.0,4445959.0,5025417.0,5498748.0,6122207.0,6442293.0,6671916.0,7309958.0,7704666.0,8083500.0,8380789.0,8868499.0,9292542.0,9650375.0,10299458.0,11168792.0,11033499.0,11590791.0,11863416.0,12686250.0,12930333.0,13489750.0,14222416.0,13694958.0,14109458.0,14541000.0,15005582.0,15396043.0,15754000.0,16404665.0,16939374.0,17111168.0,17536997.0,17959083.0,18357291.0,18913916.0,19223414.0,19715749.0,20036294.0,20469585.0,20892623.0,21327583.0,21725169.0,22662042.0,22566625.0,22947916.0,23397249.0,23745082.0,24319500.0,24700209.0,25286917.0,25456793.0,26045290.0,26336041.0,26903166.0,27249085.0,27502999.0,27944332.0,28381291.0,28929083.0,29320917.0,29582705.0,30287500.0,30362624.0,30920125.0,31419125.0,32055958.0,36188167.0,35565500.0,35971210.0,36672041.0,37130292.0,37319000.0,37703165.0,38379290.0,38470292.0,38943333.0,39524459.0,39854374.0,40309666.0,40830457.0,41242751.0,41671833.0,42152667.0,42702334.0,42978206.0,43298876.0,43844749.0,44231082.0,45025418.0,45188374.0,45588666.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/0/new/tukey.json ================================================ [2.989480686483657,3.414274711749243,4.547058779124139,4.971852804389725] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/0/report/index.html ================================================ Import as borrowed, own and destroy/Cow<'_, str>/0 - Criterion.rs

Import as borrowed, own and destroy/Cow<'_, str>/0

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 3.9727 ns 4.0119 ns 4.0456 ns
0.8453017 0.8538921 0.8474903
Mean 3.9609 ns 4.0033 ns 4.0557 ns
Std. Dev. 138.93 ps 244.50 ps 358.61 ps
Median 3.8567 ns 3.9702 ns 4.0410 ns
MAD 68.466 ps 205.88 ps 229.98 ps

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −2.2084% −0.5063% +1.3391% (p = 0.57 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/10/base/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"Cow<'_, str>","value_str":"10","throughput":null,"full_id":"Import as borrowed, own and destroy/Cow<'_, str>/10","directory_name":"Import as borrowed, own and destroy/Cow_'_, str_/10","title":"Import as borrowed, own and destroy/Cow<'_, str>/10"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/10/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":50.32315099280947,"upper_bound":51.758707269900846},"point_estimate":51.0180367321016,"standard_error":0.3657739646569019},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":48.34268672149625,"upper_bound":51.42609282052198},"point_estimate":49.76957857768291,"standard_error":0.860617965138204},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1.0469640834587486,"upper_bound":4.865954310788295},"point_estimate":3.0044625990398,"standard_error":1.133604468348822},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":52.01215808478354,"upper_bound":53.20949800447599},"point_estimate":52.65727727040909,"standard_error":0.30560453277389},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.0011606548019936,"upper_bound":4.36681436444187},"point_estimate":3.6731617004354082,"standard_error":0.3540790792392544}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/10/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[11632.0,23264.0,34896.0,46528.0,58160.0,69792.0,81424.0,93056.0,104688.0,116320.0,127952.0,139584.0,151216.0,162848.0,174480.0,186112.0,197744.0,209376.0,221008.0,232640.0,244272.0,255904.0,267536.0,279168.0,290800.0,302432.0,314064.0,325696.0,337328.0,348960.0,360592.0,372224.0,383856.0,395488.0,407120.0,418752.0,430384.0,442016.0,453648.0,465280.0,476912.0,488544.0,500176.0,511808.0,523440.0,535072.0,546704.0,558336.0,569968.0,581600.0,593232.0,604864.0,616496.0,628128.0,639760.0,651392.0,663024.0,674656.0,686288.0,697920.0,709552.0,721184.0,732816.0,744448.0,756080.0,767712.0,779344.0,790976.0,802608.0,814240.0,825872.0,837504.0,849136.0,860768.0,872400.0,884032.0,895664.0,907296.0,918928.0,930560.0,942192.0,953824.0,965456.0,977088.0,988720.0,1000352.0,1011984.0,1023616.0,1035248.0,1046880.0,1058512.0,1070144.0,1081776.0,1093408.0,1105040.0,1116672.0,1128304.0,1139936.0,1151568.0,1163200.0],"times":[563374.0,1486126.0,1661792.0,3048542.0,2766374.0,3799917.0,3928165.0,4449793.0,5012250.0,5644542.0,6119623.0,7203917.0,7210750.0,7791960.0,8343751.0,8959916.0,9845876.0,9997875.0,10557584.0,11602540.0,11772502.0,12295250.0,13310752.0,13304167.0,13863414.0,14367040.0,15014249.0,15755458.0,16127420.0,17141916.0,17175584.0,17739128.0,18362291.0,18995625.0,19430791.0,19988290.0,20544542.0,21542583.0,22585334.0,22343875.0,22911210.0,23382041.0,23818044.0,24686916.0,25415083.0,25662584.0,26092958.0,26966666.0,27333167.0,27712541.0,28439208.0,28992167.0,29512208.0,30393291.0,30573541.0,37201957.0,37170874.0,37910917.0,38855957.0,38887999.0,39883416.0,40517750.0,40196708.0,40273124.0,40321707.0,41523875.0,41187790.0,42237873.0,42110752.0,42485126.0,42727040.0,43232542.0,43676667.0,43981625.0,44241209.0,44863835.0,46060500.0,45597458.0,46725957.0,45325959.0,47928459.0,47002666.0,54101336.0,53749039.0,54239626.0,55340376.0,55655750.0,55773417.0,56880208.0,57617042.0,57931626.0,58118625.0,59054374.0,58717791.0,60017543.0,60518167.0,61733333.0,61895499.0,62048541.0,62322791.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/10/base/tukey.json ================================================ [28.81129806547083,38.33981342328953,63.749187710806055,73.27770306862476] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/10/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.11254120536577561,"upper_bound":-0.004837484677540382},"point_estimate":-0.0534857769788335,"standard_error":0.02780985879483405},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.06510959485415924,"upper_bound":0.030442050673111364},"point_estimate":-0.012537972007209741,"standard_error":0.024780537134253815}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/10/new/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"Cow<'_, str>","value_str":"10","throughput":null,"full_id":"Import as borrowed, own and destroy/Cow<'_, str>/10","directory_name":"Import as borrowed, own and destroy/Cow_'_, str_/10","title":"Import as borrowed, own and destroy/Cow<'_, str>/10"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/10/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":50.32315099280947,"upper_bound":51.758707269900846},"point_estimate":51.0180367321016,"standard_error":0.3657739646569019},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":48.34268672149625,"upper_bound":51.42609282052198},"point_estimate":49.76957857768291,"standard_error":0.860617965138204},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1.0469640834587486,"upper_bound":4.865954310788295},"point_estimate":3.0044625990398,"standard_error":1.133604468348822},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":52.01215808478354,"upper_bound":53.20949800447599},"point_estimate":52.65727727040909,"standard_error":0.30560453277389},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.0011606548019936,"upper_bound":4.36681436444187},"point_estimate":3.6731617004354082,"standard_error":0.3540790792392544}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/10/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[11632.0,23264.0,34896.0,46528.0,58160.0,69792.0,81424.0,93056.0,104688.0,116320.0,127952.0,139584.0,151216.0,162848.0,174480.0,186112.0,197744.0,209376.0,221008.0,232640.0,244272.0,255904.0,267536.0,279168.0,290800.0,302432.0,314064.0,325696.0,337328.0,348960.0,360592.0,372224.0,383856.0,395488.0,407120.0,418752.0,430384.0,442016.0,453648.0,465280.0,476912.0,488544.0,500176.0,511808.0,523440.0,535072.0,546704.0,558336.0,569968.0,581600.0,593232.0,604864.0,616496.0,628128.0,639760.0,651392.0,663024.0,674656.0,686288.0,697920.0,709552.0,721184.0,732816.0,744448.0,756080.0,767712.0,779344.0,790976.0,802608.0,814240.0,825872.0,837504.0,849136.0,860768.0,872400.0,884032.0,895664.0,907296.0,918928.0,930560.0,942192.0,953824.0,965456.0,977088.0,988720.0,1000352.0,1011984.0,1023616.0,1035248.0,1046880.0,1058512.0,1070144.0,1081776.0,1093408.0,1105040.0,1116672.0,1128304.0,1139936.0,1151568.0,1163200.0],"times":[563374.0,1486126.0,1661792.0,3048542.0,2766374.0,3799917.0,3928165.0,4449793.0,5012250.0,5644542.0,6119623.0,7203917.0,7210750.0,7791960.0,8343751.0,8959916.0,9845876.0,9997875.0,10557584.0,11602540.0,11772502.0,12295250.0,13310752.0,13304167.0,13863414.0,14367040.0,15014249.0,15755458.0,16127420.0,17141916.0,17175584.0,17739128.0,18362291.0,18995625.0,19430791.0,19988290.0,20544542.0,21542583.0,22585334.0,22343875.0,22911210.0,23382041.0,23818044.0,24686916.0,25415083.0,25662584.0,26092958.0,26966666.0,27333167.0,27712541.0,28439208.0,28992167.0,29512208.0,30393291.0,30573541.0,37201957.0,37170874.0,37910917.0,38855957.0,38887999.0,39883416.0,40517750.0,40196708.0,40273124.0,40321707.0,41523875.0,41187790.0,42237873.0,42110752.0,42485126.0,42727040.0,43232542.0,43676667.0,43981625.0,44241209.0,44863835.0,46060500.0,45597458.0,46725957.0,45325959.0,47928459.0,47002666.0,54101336.0,53749039.0,54239626.0,55340376.0,55655750.0,55773417.0,56880208.0,57617042.0,57931626.0,58118625.0,59054374.0,58717791.0,60017543.0,60518167.0,61733333.0,61895499.0,62048541.0,62322791.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/10/new/tukey.json ================================================ [28.81129806547083,38.33981342328953,63.749187710806055,73.27770306862476] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/10/report/index.html ================================================ Import as borrowed, own and destroy/Cow<'_, str>/10 - Criterion.rs

Import as borrowed, own and destroy/Cow<'_, str>/10

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 52.012 ns 52.657 ns 53.209 ns
0.7380709 0.7484733 0.7408227
Mean 50.323 ns 51.018 ns 51.759 ns
Std. Dev. 3.0012 ns 3.6732 ns 4.3668 ns
Median 48.343 ns 49.770 ns 51.426 ns
MAD 1.0470 ns 3.0045 ns 4.8660 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −11.254% −5.3486% −0.4837% (p = 0.06 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/100/base/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"Cow<'_, str>","value_str":"100","throughput":null,"full_id":"Import as borrowed, own and destroy/Cow<'_, str>/100","directory_name":"Import as borrowed, own and destroy/Cow_'_, str_/100","title":"Import as borrowed, own and destroy/Cow<'_, str>/100"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/100/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":58.379127767914085,"upper_bound":60.02092634355676},"point_estimate":59.19670982577489,"standard_error":0.42008176435586475},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":58.422500971871145,"upper_bound":60.35292757255374},"point_estimate":59.34796902743176,"standard_error":0.5164649530402777},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.027498900431335,"upper_bound":5.262711133592181},"point_estimate":4.249006583173159,"standard_error":0.5638262283044545},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":59.461610321259684,"upper_bound":61.08893772618308},"point_estimate":60.28454884035322,"standard_error":0.4151480440948287},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.5353233044534678,"upper_bound":4.939810162967223},"point_estimate":4.222963650281504,"standard_error":0.3606187325082189}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/100/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[8239.0,16478.0,24717.0,32956.0,41195.0,49434.0,57673.0,65912.0,74151.0,82390.0,90629.0,98868.0,107107.0,115346.0,123585.0,131824.0,140063.0,148302.0,156541.0,164780.0,173019.0,181258.0,189497.0,197736.0,205975.0,214214.0,222453.0,230692.0,238931.0,247170.0,255409.0,263648.0,271887.0,280126.0,288365.0,296604.0,304843.0,313082.0,321321.0,329560.0,337799.0,346038.0,354277.0,362516.0,370755.0,378994.0,387233.0,395472.0,403711.0,411950.0,420189.0,428428.0,436667.0,444906.0,453145.0,461384.0,469623.0,477862.0,486101.0,494340.0,502579.0,510818.0,519057.0,527296.0,535535.0,543774.0,552013.0,560252.0,568491.0,576730.0,584969.0,593208.0,601447.0,609686.0,617925.0,626164.0,634403.0,642642.0,650881.0,659120.0,667359.0,675598.0,683837.0,692076.0,700315.0,708554.0,716793.0,725032.0,733271.0,741510.0,749749.0,757988.0,766227.0,774466.0,782705.0,790944.0,799183.0,807422.0,815661.0,823900.0],"times":[456249.0,1241210.0,1257960.0,1712373.0,2506875.0,3041375.0,2926585.0,3432499.0,3791500.0,4244581.0,4631834.0,6491417.0,6353832.0,6617501.0,6818876.0,7129333.0,8396750.0,8889125.0,9213042.0,10044040.0,10489500.0,10517959.0,11801750.0,11971207.0,12313751.0,11892417.0,12016791.0,13271751.0,13547875.0,14251625.0,16275041.0,16167126.0,16607502.0,17503792.0,17242625.0,17198876.0,17317873.0,17515749.0,16958959.0,18705001.0,19520790.0,22421499.0,22484042.0,22549251.0,23422876.0,23084958.0,23230499.0,22320459.0,22463335.0,22429373.0,23117247.0,23452418.0,26460168.0,29013041.0,28689126.0,29701957.0,28500583.0,27960459.0,27531999.0,26847333.0,27468710.0,27850166.0,28085793.0,29859206.0,35457666.0,35093082.0,35056750.0,33982707.0,33212666.0,32510416.0,32328916.0,32612001.0,34921376.0,36796335.0,36244627.0,41530249.0,40724998.0,40196707.0,39024126.0,39111877.0,40553500.0,39444083.0,40053168.0,40874874.0,42477043.0,41536544.0,48433914.0,46875334.0,45628290.0,46368918.0,45961872.0,47368917.0,45900208.0,44350540.0,46410500.0,47241126.0,47436625.0,51805667.0,52562247.0,51040210.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/100/base/tukey.json ================================================ [39.65241459293227,48.03750723859677,70.39775429370209,78.7828469393666] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/100/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.021252198290333115,"upper_bound":0.018198849296017727},"point_estimate":-0.0007581038883957003,"standard_error":0.01005309327367742},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.016319203488343956,"upper_bound":0.028520367502385513},"point_estimate":0.007742202570239387,"standard_error":0.011711692831197495}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/100/new/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"Cow<'_, str>","value_str":"100","throughput":null,"full_id":"Import as borrowed, own and destroy/Cow<'_, str>/100","directory_name":"Import as borrowed, own and destroy/Cow_'_, str_/100","title":"Import as borrowed, own and destroy/Cow<'_, str>/100"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/100/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":58.379127767914085,"upper_bound":60.02092634355676},"point_estimate":59.19670982577489,"standard_error":0.42008176435586475},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":58.422500971871145,"upper_bound":60.35292757255374},"point_estimate":59.34796902743176,"standard_error":0.5164649530402777},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.027498900431335,"upper_bound":5.262711133592181},"point_estimate":4.249006583173159,"standard_error":0.5638262283044545},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":59.461610321259684,"upper_bound":61.08893772618308},"point_estimate":60.28454884035322,"standard_error":0.4151480440948287},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.5353233044534678,"upper_bound":4.939810162967223},"point_estimate":4.222963650281504,"standard_error":0.3606187325082189}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/100/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[8239.0,16478.0,24717.0,32956.0,41195.0,49434.0,57673.0,65912.0,74151.0,82390.0,90629.0,98868.0,107107.0,115346.0,123585.0,131824.0,140063.0,148302.0,156541.0,164780.0,173019.0,181258.0,189497.0,197736.0,205975.0,214214.0,222453.0,230692.0,238931.0,247170.0,255409.0,263648.0,271887.0,280126.0,288365.0,296604.0,304843.0,313082.0,321321.0,329560.0,337799.0,346038.0,354277.0,362516.0,370755.0,378994.0,387233.0,395472.0,403711.0,411950.0,420189.0,428428.0,436667.0,444906.0,453145.0,461384.0,469623.0,477862.0,486101.0,494340.0,502579.0,510818.0,519057.0,527296.0,535535.0,543774.0,552013.0,560252.0,568491.0,576730.0,584969.0,593208.0,601447.0,609686.0,617925.0,626164.0,634403.0,642642.0,650881.0,659120.0,667359.0,675598.0,683837.0,692076.0,700315.0,708554.0,716793.0,725032.0,733271.0,741510.0,749749.0,757988.0,766227.0,774466.0,782705.0,790944.0,799183.0,807422.0,815661.0,823900.0],"times":[456249.0,1241210.0,1257960.0,1712373.0,2506875.0,3041375.0,2926585.0,3432499.0,3791500.0,4244581.0,4631834.0,6491417.0,6353832.0,6617501.0,6818876.0,7129333.0,8396750.0,8889125.0,9213042.0,10044040.0,10489500.0,10517959.0,11801750.0,11971207.0,12313751.0,11892417.0,12016791.0,13271751.0,13547875.0,14251625.0,16275041.0,16167126.0,16607502.0,17503792.0,17242625.0,17198876.0,17317873.0,17515749.0,16958959.0,18705001.0,19520790.0,22421499.0,22484042.0,22549251.0,23422876.0,23084958.0,23230499.0,22320459.0,22463335.0,22429373.0,23117247.0,23452418.0,26460168.0,29013041.0,28689126.0,29701957.0,28500583.0,27960459.0,27531999.0,26847333.0,27468710.0,27850166.0,28085793.0,29859206.0,35457666.0,35093082.0,35056750.0,33982707.0,33212666.0,32510416.0,32328916.0,32612001.0,34921376.0,36796335.0,36244627.0,41530249.0,40724998.0,40196707.0,39024126.0,39111877.0,40553500.0,39444083.0,40053168.0,40874874.0,42477043.0,41536544.0,48433914.0,46875334.0,45628290.0,46368918.0,45961872.0,47368917.0,45900208.0,44350540.0,46410500.0,47241126.0,47436625.0,51805667.0,52562247.0,51040210.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/100/new/tukey.json ================================================ [39.65241459293227,48.03750723859677,70.39775429370209,78.7828469393666] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/100/report/index.html ================================================ Import as borrowed, own and destroy/Cow<'_, str>/100 - Criterion.rs

Import as borrowed, own and destroy/Cow<'_, str>/100

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 59.462 ns 60.285 ns 61.089 ns
0.7177725 0.7297167 0.7182965
Mean 58.379 ns 59.197 ns 60.021 ns
Std. Dev. 3.5353 ns 4.2230 ns 4.9398 ns
Median 58.423 ns 59.348 ns 60.353 ns
MAD 3.0275 ns 4.2490 ns 5.2627 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −2.1252% −0.0758% +1.8199% (p = 0.94 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/20/base/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"Cow<'_, str>","value_str":"20","throughput":null,"full_id":"Import as borrowed, own and destroy/Cow<'_, str>/20","directory_name":"Import as borrowed, own and destroy/Cow_'_, str_/20","title":"Import as borrowed, own and destroy/Cow<'_, str>/20"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/20/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":55.21317380829794,"upper_bound":56.534590464546596},"point_estimate":55.87052751218874,"standard_error":0.33796583033730426},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":55.345814209656695,"upper_bound":56.85187081896038},"point_estimate":56.33416065907208,"standard_error":0.39751034665410256},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.314657880513485,"upper_bound":4.877939227429333},"point_estimate":3.2258908215278823,"standard_error":0.6954930824035179},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":56.59658373051964,"upper_bound":57.78163307295939},"point_estimate":57.2024620518657,"standard_error":0.3026126002553018},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.955368309431354,"upper_bound":3.83689669410951},"point_estimate":3.3937952655322565,"standard_error":0.22487501249219938}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/20/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[10894.0,21788.0,32682.0,43576.0,54470.0,65364.0,76258.0,87152.0,98046.0,108940.0,119834.0,130728.0,141622.0,152516.0,163410.0,174304.0,185198.0,196092.0,206986.0,217880.0,228774.0,239668.0,250562.0,261456.0,272350.0,283244.0,294138.0,305032.0,315926.0,326820.0,337714.0,348608.0,359502.0,370396.0,381290.0,392184.0,403078.0,413972.0,424866.0,435760.0,446654.0,457548.0,468442.0,479336.0,490230.0,501124.0,512018.0,522912.0,533806.0,544700.0,555594.0,566488.0,577382.0,588276.0,599170.0,610064.0,620958.0,631852.0,642746.0,653640.0,664534.0,675428.0,686322.0,697216.0,708110.0,719004.0,729898.0,740792.0,751686.0,762580.0,773474.0,784368.0,795262.0,806156.0,817050.0,827944.0,838838.0,849732.0,860626.0,871520.0,882414.0,893308.0,904202.0,915096.0,925990.0,936884.0,947778.0,958672.0,969566.0,980460.0,991354.0,1002248.0,1013142.0,1024036.0,1034930.0,1045824.0,1056718.0,1067612.0,1078506.0,1089400.0],"times":[563875.0,1462958.0,1659539.0,2677582.0,2907290.0,3794125.0,4276000.0,4511541.0,5020835.0,6029373.0,6515623.0,6726331.0,7232833.0,7776331.0,8344417.0,8952126.0,10225585.0,10010042.0,10490125.0,11056124.0,11642706.0,12261249.0,12722916.0,13301459.0,13877416.0,14813251.0,14976376.0,15729916.0,16096875.0,19957333.0,20439584.0,20995875.0,20835999.0,21025877.0,21703418.0,21897586.0,22232252.0,22599625.0,22850209.0,23184250.0,23616208.0,25140335.0,24722792.0,24531291.0,28509334.0,29090374.0,29751375.0,30268793.0,30828669.0,31381209.0,32199000.0,32487210.0,32576918.0,33768292.0,34000792.0,34654250.0,35302624.0,35798959.0,36554792.0,38866209.0,39867044.0,40579667.0,39850792.0,40380041.0,41436999.0,41463708.0,41039669.0,40997666.0,40942292.0,41432207.0,41336874.0,40861167.0,41487834.0,44784666.0,45439081.0,46852628.0,46620083.0,47827585.0,48239583.0,48158835.0,49175752.0,53103084.0,54758581.0,55707417.0,55942083.0,56170294.0,56380290.0,56307043.0,59768543.0,59849873.0,58779583.0,59673000.0,59271082.0,59389792.0,59810790.0,59137373.0,59580749.0,58473166.0,60860751.0,62594500.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/20/base/tukey.json ================================================ [37.25605099945194,45.052707327738936,65.84379086983759,73.64044719812458] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/20/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.01809438984694779,"upper_bound":0.015530964343304397},"point_estimate":-0.0009820060370570038,"standard_error":0.008555716179541832},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.019737366720248617,"upper_bound":0.017400452450896386},"point_estimate":0.000017448768562911,"standard_error":0.009307874077646886}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/20/new/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"Cow<'_, str>","value_str":"20","throughput":null,"full_id":"Import as borrowed, own and destroy/Cow<'_, str>/20","directory_name":"Import as borrowed, own and destroy/Cow_'_, str_/20","title":"Import as borrowed, own and destroy/Cow<'_, str>/20"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/20/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":55.21317380829794,"upper_bound":56.534590464546596},"point_estimate":55.87052751218874,"standard_error":0.33796583033730426},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":55.345814209656695,"upper_bound":56.85187081896038},"point_estimate":56.33416065907208,"standard_error":0.39751034665410256},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.314657880513485,"upper_bound":4.877939227429333},"point_estimate":3.2258908215278823,"standard_error":0.6954930824035179},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":56.59658373051964,"upper_bound":57.78163307295939},"point_estimate":57.2024620518657,"standard_error":0.3026126002553018},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.955368309431354,"upper_bound":3.83689669410951},"point_estimate":3.3937952655322565,"standard_error":0.22487501249219938}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/20/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[10894.0,21788.0,32682.0,43576.0,54470.0,65364.0,76258.0,87152.0,98046.0,108940.0,119834.0,130728.0,141622.0,152516.0,163410.0,174304.0,185198.0,196092.0,206986.0,217880.0,228774.0,239668.0,250562.0,261456.0,272350.0,283244.0,294138.0,305032.0,315926.0,326820.0,337714.0,348608.0,359502.0,370396.0,381290.0,392184.0,403078.0,413972.0,424866.0,435760.0,446654.0,457548.0,468442.0,479336.0,490230.0,501124.0,512018.0,522912.0,533806.0,544700.0,555594.0,566488.0,577382.0,588276.0,599170.0,610064.0,620958.0,631852.0,642746.0,653640.0,664534.0,675428.0,686322.0,697216.0,708110.0,719004.0,729898.0,740792.0,751686.0,762580.0,773474.0,784368.0,795262.0,806156.0,817050.0,827944.0,838838.0,849732.0,860626.0,871520.0,882414.0,893308.0,904202.0,915096.0,925990.0,936884.0,947778.0,958672.0,969566.0,980460.0,991354.0,1002248.0,1013142.0,1024036.0,1034930.0,1045824.0,1056718.0,1067612.0,1078506.0,1089400.0],"times":[563875.0,1462958.0,1659539.0,2677582.0,2907290.0,3794125.0,4276000.0,4511541.0,5020835.0,6029373.0,6515623.0,6726331.0,7232833.0,7776331.0,8344417.0,8952126.0,10225585.0,10010042.0,10490125.0,11056124.0,11642706.0,12261249.0,12722916.0,13301459.0,13877416.0,14813251.0,14976376.0,15729916.0,16096875.0,19957333.0,20439584.0,20995875.0,20835999.0,21025877.0,21703418.0,21897586.0,22232252.0,22599625.0,22850209.0,23184250.0,23616208.0,25140335.0,24722792.0,24531291.0,28509334.0,29090374.0,29751375.0,30268793.0,30828669.0,31381209.0,32199000.0,32487210.0,32576918.0,33768292.0,34000792.0,34654250.0,35302624.0,35798959.0,36554792.0,38866209.0,39867044.0,40579667.0,39850792.0,40380041.0,41436999.0,41463708.0,41039669.0,40997666.0,40942292.0,41432207.0,41336874.0,40861167.0,41487834.0,44784666.0,45439081.0,46852628.0,46620083.0,47827585.0,48239583.0,48158835.0,49175752.0,53103084.0,54758581.0,55707417.0,55942083.0,56170294.0,56380290.0,56307043.0,59768543.0,59849873.0,58779583.0,59673000.0,59271082.0,59389792.0,59810790.0,59137373.0,59580749.0,58473166.0,60860751.0,62594500.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/20/new/tukey.json ================================================ [37.25605099945194,45.052707327738936,65.84379086983759,73.64044719812458] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/20/report/index.html ================================================ Import as borrowed, own and destroy/Cow<'_, str>/20 - Criterion.rs

Import as borrowed, own and destroy/Cow<'_, str>/20

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 56.597 ns 57.202 ns 57.782 ns
0.7937288 0.8032749 0.7945429
Mean 55.213 ns 55.871 ns 56.535 ns
Std. Dev. 2.9554 ns 3.3938 ns 3.8369 ns
Median 55.346 ns 56.334 ns 56.852 ns
MAD 2.3147 ns 3.2259 ns 4.8779 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −1.8094% −0.0982% +1.5531% (p = 0.91 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/500/base/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"Cow<'_, str>","value_str":"500","throughput":null,"full_id":"Import as borrowed, own and destroy/Cow<'_, str>/500","directory_name":"Import as borrowed, own and destroy/Cow_'_, str_/500","title":"Import as borrowed, own and destroy/Cow<'_, str>/500"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/500/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":97.90302072140136,"upper_bound":100.51956187548244},"point_estimate":99.2270257085067,"standard_error":0.6672987496253787},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":97.73780438687204,"upper_bound":100.51434850051706},"point_estimate":99.4444973818552,"standard_error":0.7283706785854308},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.18723766747942,"upper_bound":6.645844513632839},"point_estimate":5.336755686865007,"standard_error":0.639176383470732},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":98.07688504614691,"upper_bound":100.20532545710502},"point_estimate":99.10235278113004,"standard_error":0.5439111675645801},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":5.208617178927317,"upper_bound":8.080337935200731},"point_estimate":6.705007984631004,"standard_error":0.736041293966924}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/500/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[4835.0,9670.0,14505.0,19340.0,24175.0,29010.0,33845.0,38680.0,43515.0,48350.0,53185.0,58020.0,62855.0,67690.0,72525.0,77360.0,82195.0,87030.0,91865.0,96700.0,101535.0,106370.0,111205.0,116040.0,120875.0,125710.0,130545.0,135380.0,140215.0,145050.0,149885.0,154720.0,159555.0,164390.0,169225.0,174060.0,178895.0,183730.0,188565.0,193400.0,198235.0,203070.0,207905.0,212740.0,217575.0,222410.0,227245.0,232080.0,236915.0,241750.0,246585.0,251420.0,256255.0,261090.0,265925.0,270760.0,275595.0,280430.0,285265.0,290100.0,294935.0,299770.0,304605.0,309440.0,314275.0,319110.0,323945.0,328780.0,333615.0,338450.0,343285.0,348120.0,352955.0,357790.0,362625.0,367460.0,372295.0,377130.0,381965.0,386800.0,391635.0,396470.0,401305.0,406140.0,410975.0,415810.0,420645.0,425480.0,430315.0,435150.0,439985.0,444820.0,449655.0,454490.0,459325.0,464160.0,468995.0,473830.0,478665.0,483500.0],"times":[383206.0,730209.0,1308706.0,1470334.0,2322709.0,2718082.0,3195998.0,3232210.0,4177457.0,4634041.0,4908876.0,5418834.0,5887582.0,6682669.0,7348792.0,8040040.0,8273000.0,9381541.0,9589126.0,10620708.0,11138626.0,11832374.0,12853168.0,13714166.0,12162916.0,12250459.0,12613378.0,13438125.0,14087335.0,14262249.0,14964876.0,15593667.0,16032502.0,16967668.0,17683627.0,17300833.0,19818376.0,19854251.0,19267459.0,19445750.0,19864457.0,20204083.0,20202833.0,21921335.0,23247541.0,23547874.0,24424625.0,23843626.0,23774210.0,22805918.0,23358041.0,25189251.0,26091043.0,26744417.0,26656332.0,27111039.0,26728250.0,26138500.0,26699624.0,28682751.0,29920460.0,30594210.0,31002250.0,30006710.0,31062289.0,30379957.0,31473459.0,33697334.0,35467543.0,33435458.0,32794251.0,33188000.0,33355455.0,38597373.0,39140417.0,34942373.0,35113541.0,36701707.0,39002582.0,40834708.0,39483873.0,41005499.0,38574584.0,41852417.0,42036959.0,40270500.0,39571832.0,42029959.0,45083041.0,42935709.0,42317415.0,42216209.0,42807082.0,42340960.0,44893417.0,43790792.0,44138542.0,45097374.0,48963417.0,48583000.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/500/base/tukey.json ================================================ [73.86209549721933,84.58191931327389,113.16811615608606,123.88793997214063] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/500/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.00481639493718635,"upper_bound":0.02858606168959015},"point_estimate":0.012210476248189162,"standard_error":0.008456273710799182},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.011559210251373297,"upper_bound":0.021186609606643758},"point_estimate":0.007041005006878764,"standard_error":0.008311328601963574}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/500/new/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"Cow<'_, str>","value_str":"500","throughput":null,"full_id":"Import as borrowed, own and destroy/Cow<'_, str>/500","directory_name":"Import as borrowed, own and destroy/Cow_'_, str_/500","title":"Import as borrowed, own and destroy/Cow<'_, str>/500"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/500/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":97.90302072140136,"upper_bound":100.51956187548244},"point_estimate":99.2270257085067,"standard_error":0.6672987496253787},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":97.73780438687204,"upper_bound":100.51434850051706},"point_estimate":99.4444973818552,"standard_error":0.7283706785854308},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.18723766747942,"upper_bound":6.645844513632839},"point_estimate":5.336755686865007,"standard_error":0.639176383470732},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":98.07688504614691,"upper_bound":100.20532545710502},"point_estimate":99.10235278113004,"standard_error":0.5439111675645801},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":5.208617178927317,"upper_bound":8.080337935200731},"point_estimate":6.705007984631004,"standard_error":0.736041293966924}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/500/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[4835.0,9670.0,14505.0,19340.0,24175.0,29010.0,33845.0,38680.0,43515.0,48350.0,53185.0,58020.0,62855.0,67690.0,72525.0,77360.0,82195.0,87030.0,91865.0,96700.0,101535.0,106370.0,111205.0,116040.0,120875.0,125710.0,130545.0,135380.0,140215.0,145050.0,149885.0,154720.0,159555.0,164390.0,169225.0,174060.0,178895.0,183730.0,188565.0,193400.0,198235.0,203070.0,207905.0,212740.0,217575.0,222410.0,227245.0,232080.0,236915.0,241750.0,246585.0,251420.0,256255.0,261090.0,265925.0,270760.0,275595.0,280430.0,285265.0,290100.0,294935.0,299770.0,304605.0,309440.0,314275.0,319110.0,323945.0,328780.0,333615.0,338450.0,343285.0,348120.0,352955.0,357790.0,362625.0,367460.0,372295.0,377130.0,381965.0,386800.0,391635.0,396470.0,401305.0,406140.0,410975.0,415810.0,420645.0,425480.0,430315.0,435150.0,439985.0,444820.0,449655.0,454490.0,459325.0,464160.0,468995.0,473830.0,478665.0,483500.0],"times":[383206.0,730209.0,1308706.0,1470334.0,2322709.0,2718082.0,3195998.0,3232210.0,4177457.0,4634041.0,4908876.0,5418834.0,5887582.0,6682669.0,7348792.0,8040040.0,8273000.0,9381541.0,9589126.0,10620708.0,11138626.0,11832374.0,12853168.0,13714166.0,12162916.0,12250459.0,12613378.0,13438125.0,14087335.0,14262249.0,14964876.0,15593667.0,16032502.0,16967668.0,17683627.0,17300833.0,19818376.0,19854251.0,19267459.0,19445750.0,19864457.0,20204083.0,20202833.0,21921335.0,23247541.0,23547874.0,24424625.0,23843626.0,23774210.0,22805918.0,23358041.0,25189251.0,26091043.0,26744417.0,26656332.0,27111039.0,26728250.0,26138500.0,26699624.0,28682751.0,29920460.0,30594210.0,31002250.0,30006710.0,31062289.0,30379957.0,31473459.0,33697334.0,35467543.0,33435458.0,32794251.0,33188000.0,33355455.0,38597373.0,39140417.0,34942373.0,35113541.0,36701707.0,39002582.0,40834708.0,39483873.0,41005499.0,38574584.0,41852417.0,42036959.0,40270500.0,39571832.0,42029959.0,45083041.0,42935709.0,42317415.0,42216209.0,42807082.0,42340960.0,44893417.0,43790792.0,44138542.0,45097374.0,48963417.0,48583000.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/500/new/tukey.json ================================================ [73.86209549721933,84.58191931327389,113.16811615608606,123.88793997214063] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/500/report/index.html ================================================ Import as borrowed, own and destroy/Cow<'_, str>/500 - Criterion.rs

Import as borrowed, own and destroy/Cow<'_, str>/500

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 98.077 ns 99.102 ns 100.21 ns
0.7912877 0.8002311 0.7899029
Mean 97.903 ns 99.227 ns 100.52 ns
Std. Dev. 5.2086 ns 6.7050 ns 8.0803 ns
Median 97.738 ns 99.444 ns 100.51 ns
MAD 4.1872 ns 5.3368 ns 6.6458 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.4816% +1.2210% +2.8586% (p = 0.15 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as borrowed, own and destroy/Cow_'_, str_/report/index.html ================================================ Import as borrowed, own and destroy/Cow<'_, str> Summary - Criterion.rs

Import as borrowed, own and destroy/Cow<'_, str>

Violin Plot

Violin Plot

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

Line Chart

Line Chart

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

Import as borrowed, own and destroy/Cow<'_, str>/0

PDF of Slope Regression

Import as borrowed, own and destroy/Cow<'_, str>/10

PDF of Slope Regression

Import as borrowed, own and destroy/Cow<'_, str>/20

PDF of Slope Regression

Import as borrowed, own and destroy/Cow<'_, str>/100

PDF of Slope Regression

Import as borrowed, own and destroy/Cow<'_, str>/500

PDF of Slope Regression
================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/0/base/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"FlexStr 0.10 (LocalStr)","value_str":"0","throughput":null,"full_id":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/0","directory_name":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/0","title":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/0"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/0/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":8.979334700146817,"upper_bound":9.233589390882118},"point_estimate":9.093588750824175,"standard_error":0.06536799202239152},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":8.865646169940334,"upper_bound":9.009412590962615},"point_estimate":8.927920087694346,"standard_error":0.03170658344975978},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.1792190205772536,"upper_bound":0.35034557706287045},"point_estimate":0.22565815671170064,"standard_error":0.04477801321100676},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":8.859647698172571,"upper_bound":8.985849211839712},"point_estimate":8.915721417067246,"standard_error":0.032084577827271504},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.3577515215057851,"upper_bound":0.9582850398996491},"point_estimate":0.6571783662516163,"standard_error":0.16653196330898123}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/0/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[75756.0,151512.0,227268.0,303024.0,378780.0,454536.0,530292.0,606048.0,681804.0,757560.0,833316.0,909072.0,984828.0,1060584.0,1136340.0,1212096.0,1287852.0,1363608.0,1439364.0,1515120.0,1590876.0,1666632.0,1742388.0,1818144.0,1893900.0,1969656.0,2045412.0,2121168.0,2196924.0,2272680.0,2348436.0,2424192.0,2499948.0,2575704.0,2651460.0,2727216.0,2802972.0,2878728.0,2954484.0,3030240.0,3105996.0,3181752.0,3257508.0,3333264.0,3409020.0,3484776.0,3560532.0,3636288.0,3712044.0,3787800.0,3863556.0,3939312.0,4015068.0,4090824.0,4166580.0,4242336.0,4318092.0,4393848.0,4469604.0,4545360.0,4621116.0,4696872.0,4772628.0,4848384.0,4924140.0,4999896.0,5075652.0,5151408.0,5227164.0,5302920.0,5378676.0,5454432.0,5530188.0,5605944.0,5681700.0,5757456.0,5833212.0,5908968.0,5984724.0,6060480.0,6136236.0,6211992.0,6287748.0,6363504.0,6439260.0,6515016.0,6590772.0,6666528.0,6742284.0,6818040.0,6893796.0,6969552.0,7045308.0,7121064.0,7196820.0,7272576.0,7348332.0,7424088.0,7499844.0,7575600.0],"times":[1039831.0,1268959.0,1911040.0,2588543.0,3629877.0,4298293.0,4508249.0,5470210.0,5981999.0,7417627.0,7208210.0,7971377.0,8790666.0,9125041.0,10606376.0,10659916.0,11309083.0,11738042.0,12789374.0,13108918.0,14584415.0,15480209.0,15964540.0,16405623.0,16971876.0,17503040.0,18099291.0,18867626.0,19636083.0,22028207.0,22794583.0,27706458.0,25022917.0,25413791.0,25230750.0,27013124.0,26494834.0,27646457.0,31296625.0,28423873.0,30216499.0,30181667.0,30478835.0,32461293.0,31270960.0,30608499.0,30894125.0,31695000.0,31880335.0,34107832.0,34878166.0,35042043.0,36250291.0,36860207.0,37574417.0,38410501.0,39014164.0,39685874.0,40476625.0,41133166.0,41769416.0,43393499.0,48542168.0,44161377.0,44672208.0,44639583.0,45407544.0,46129918.0,46666750.0,47590166.0,48045043.0,48841916.0,49366626.0,49701876.0,50358999.0,50660000.0,51958334.0,52112750.0,52942917.0,53743877.0,54356916.0,54987042.0,56648916.0,56275001.0,56392334.0,57344583.0,58341877.0,57868167.0,59027125.0,60171583.0,60266292.0,61221793.0,61841251.0,62804917.0,62888669.0,63277876.0,63612710.0,63606292.0,64490333.0,65318125.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/0/base/tukey.json ================================================ [7.640664639708323,8.211810607039876,9.734866519924015,10.306012487255567] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/0/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.00562153378985655,"upper_bound":0.0425383209854737},"point_estimate":0.02363857730284713,"standard_error":0.009210485788718728},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.0014466115380040723,"upper_bound":0.02269714318657856},"point_estimate":0.01095316930407031,"standard_error":0.005435796308502907}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/0/new/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"FlexStr 0.10 (LocalStr)","value_str":"0","throughput":null,"full_id":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/0","directory_name":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/0","title":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/0"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/0/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":8.979334700146817,"upper_bound":9.233589390882118},"point_estimate":9.093588750824175,"standard_error":0.06536799202239152},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":8.865646169940334,"upper_bound":9.009412590962615},"point_estimate":8.927920087694346,"standard_error":0.03170658344975978},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.1792190205772536,"upper_bound":0.35034557706287045},"point_estimate":0.22565815671170064,"standard_error":0.04477801321100676},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":8.859647698172571,"upper_bound":8.985849211839712},"point_estimate":8.915721417067246,"standard_error":0.032084577827271504},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.3577515215057851,"upper_bound":0.9582850398996491},"point_estimate":0.6571783662516163,"standard_error":0.16653196330898123}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/0/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[75756.0,151512.0,227268.0,303024.0,378780.0,454536.0,530292.0,606048.0,681804.0,757560.0,833316.0,909072.0,984828.0,1060584.0,1136340.0,1212096.0,1287852.0,1363608.0,1439364.0,1515120.0,1590876.0,1666632.0,1742388.0,1818144.0,1893900.0,1969656.0,2045412.0,2121168.0,2196924.0,2272680.0,2348436.0,2424192.0,2499948.0,2575704.0,2651460.0,2727216.0,2802972.0,2878728.0,2954484.0,3030240.0,3105996.0,3181752.0,3257508.0,3333264.0,3409020.0,3484776.0,3560532.0,3636288.0,3712044.0,3787800.0,3863556.0,3939312.0,4015068.0,4090824.0,4166580.0,4242336.0,4318092.0,4393848.0,4469604.0,4545360.0,4621116.0,4696872.0,4772628.0,4848384.0,4924140.0,4999896.0,5075652.0,5151408.0,5227164.0,5302920.0,5378676.0,5454432.0,5530188.0,5605944.0,5681700.0,5757456.0,5833212.0,5908968.0,5984724.0,6060480.0,6136236.0,6211992.0,6287748.0,6363504.0,6439260.0,6515016.0,6590772.0,6666528.0,6742284.0,6818040.0,6893796.0,6969552.0,7045308.0,7121064.0,7196820.0,7272576.0,7348332.0,7424088.0,7499844.0,7575600.0],"times":[1039831.0,1268959.0,1911040.0,2588543.0,3629877.0,4298293.0,4508249.0,5470210.0,5981999.0,7417627.0,7208210.0,7971377.0,8790666.0,9125041.0,10606376.0,10659916.0,11309083.0,11738042.0,12789374.0,13108918.0,14584415.0,15480209.0,15964540.0,16405623.0,16971876.0,17503040.0,18099291.0,18867626.0,19636083.0,22028207.0,22794583.0,27706458.0,25022917.0,25413791.0,25230750.0,27013124.0,26494834.0,27646457.0,31296625.0,28423873.0,30216499.0,30181667.0,30478835.0,32461293.0,31270960.0,30608499.0,30894125.0,31695000.0,31880335.0,34107832.0,34878166.0,35042043.0,36250291.0,36860207.0,37574417.0,38410501.0,39014164.0,39685874.0,40476625.0,41133166.0,41769416.0,43393499.0,48542168.0,44161377.0,44672208.0,44639583.0,45407544.0,46129918.0,46666750.0,47590166.0,48045043.0,48841916.0,49366626.0,49701876.0,50358999.0,50660000.0,51958334.0,52112750.0,52942917.0,53743877.0,54356916.0,54987042.0,56648916.0,56275001.0,56392334.0,57344583.0,58341877.0,57868167.0,59027125.0,60171583.0,60266292.0,61221793.0,61841251.0,62804917.0,62888669.0,63277876.0,63612710.0,63606292.0,64490333.0,65318125.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/0/new/tukey.json ================================================ [7.640664639708323,8.211810607039876,9.734866519924015,10.306012487255567] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/0/report/index.html ================================================ Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/0 - Criterion.rs

Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/0

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 8.8596 ns 8.9157 ns 8.9858 ns
0.8198100 0.8241212 0.8173979
Mean 8.9793 ns 9.0936 ns 9.2336 ns
Std. Dev. 357.75 ps 657.18 ps 958.29 ps
Median 8.8656 ns 8.9279 ns 9.0094 ns
MAD 179.22 ps 225.66 ps 350.35 ps

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time +0.5622% +2.3639% +4.2538% (p = 0.01 < 0.05)
Change within noise threshold.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/10/base/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"FlexStr 0.10 (LocalStr)","value_str":"10","throughput":null,"full_id":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/10","directory_name":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/10","title":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/10"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/10/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":36.96532161122457,"upper_bound":38.44623909034577},"point_estimate":37.693408832735685,"standard_error":0.37746492273982185},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":35.45367381981849,"upper_bound":39.702822300281994},"point_estimate":37.37861529565417,"standard_error":1.2894991541608052},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.0247862835297123,"upper_bound":5.498327211736226},"point_estimate":4.770148198349551,"standard_error":0.6312379360653394},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":39.11670621587491,"upper_bound":40.3207643739608},"point_estimate":39.74821246383323,"standard_error":0.30741017862485825},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.3073753737159124,"upper_bound":4.344770450701192},"point_estimate":3.796983054568984,"standard_error":0.2696360740330035}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/10/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[14329.0,28658.0,42987.0,57316.0,71645.0,85974.0,100303.0,114632.0,128961.0,143290.0,157619.0,171948.0,186277.0,200606.0,214935.0,229264.0,243593.0,257922.0,272251.0,286580.0,300909.0,315238.0,329567.0,343896.0,358225.0,372554.0,386883.0,401212.0,415541.0,429870.0,444199.0,458528.0,472857.0,487186.0,501515.0,515844.0,530173.0,544502.0,558831.0,573160.0,587489.0,601818.0,616147.0,630476.0,644805.0,659134.0,673463.0,687792.0,702121.0,716450.0,730779.0,745108.0,759437.0,773766.0,788095.0,802424.0,816753.0,831082.0,845411.0,859740.0,874069.0,888398.0,902727.0,917056.0,931385.0,945714.0,960043.0,974372.0,988701.0,1003030.0,1017359.0,1031688.0,1046017.0,1060346.0,1074675.0,1089004.0,1103333.0,1117662.0,1131991.0,1146320.0,1160649.0,1174978.0,1189307.0,1203636.0,1217965.0,1232294.0,1246623.0,1260952.0,1275281.0,1289610.0,1303939.0,1318268.0,1332597.0,1346926.0,1361255.0,1375584.0,1389913.0,1404242.0,1418571.0,1432900.0],"times":[739333.0,930294.0,1439292.0,2381209.0,2553334.0,3020040.0,3793250.0,3903916.0,4413706.0,4997375.0,5472456.0,6182167.0,6270458.0,7169791.0,7258208.0,7666252.0,8385624.0,8618290.0,9297330.0,9793167.0,10247919.0,10650459.0,11044081.0,11267793.0,11952582.0,12851001.0,13438918.0,13718794.0,14267169.0,14648752.0,14671041.0,15399125.0,16317333.0,16568501.0,18163415.0,18346041.0,18047542.0,18330834.0,18074375.0,19051917.0,19875710.0,20165624.0,20815500.0,20807040.0,21381335.0,29240124.0,28650167.0,29604293.0,30110085.0,29904792.0,29316919.0,30719250.0,32658083.0,30455042.0,31327918.0,30897417.0,31433209.0,31950707.0,31103792.0,31758210.0,31874252.0,31525957.0,34229541.0,32528333.0,32856125.0,33191583.0,33930082.0,40200626.0,41079540.0,40686125.0,41642208.0,42629876.0,43854375.0,43213083.0,43779583.0,43837583.0,44017541.0,45140540.0,46399083.0,46066375.0,46081041.0,47166752.0,46967791.0,48249167.0,48644831.0,49607666.0,49854251.0,49400208.0,50708584.0,58553834.0,56177916.0,58142751.0,56763334.0,57338999.0,56514166.0,56813543.0,56053292.0,56978124.0,56997711.0,55953292.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/10/base/tukey.json ================================================ [14.82768036970787,24.479678755388726,50.21834111720434,59.870339502885194] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/10/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.03481831569268849,"upper_bound":0.02147334886211855},"point_estimate":-0.00677152375082668,"standard_error":0.014461411496641352},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.08863317024331407,"upper_bound":0.06693295151217193},"point_estimate":-0.02561912219029061,"standard_error":0.04203762102205791}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/10/new/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"FlexStr 0.10 (LocalStr)","value_str":"10","throughput":null,"full_id":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/10","directory_name":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/10","title":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/10"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/10/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":36.96532161122457,"upper_bound":38.44623909034577},"point_estimate":37.693408832735685,"standard_error":0.37746492273982185},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":35.45367381981849,"upper_bound":39.702822300281994},"point_estimate":37.37861529565417,"standard_error":1.2894991541608052},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.0247862835297123,"upper_bound":5.498327211736226},"point_estimate":4.770148198349551,"standard_error":0.6312379360653394},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":39.11670621587491,"upper_bound":40.3207643739608},"point_estimate":39.74821246383323,"standard_error":0.30741017862485825},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.3073753737159124,"upper_bound":4.344770450701192},"point_estimate":3.796983054568984,"standard_error":0.2696360740330035}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/10/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[14329.0,28658.0,42987.0,57316.0,71645.0,85974.0,100303.0,114632.0,128961.0,143290.0,157619.0,171948.0,186277.0,200606.0,214935.0,229264.0,243593.0,257922.0,272251.0,286580.0,300909.0,315238.0,329567.0,343896.0,358225.0,372554.0,386883.0,401212.0,415541.0,429870.0,444199.0,458528.0,472857.0,487186.0,501515.0,515844.0,530173.0,544502.0,558831.0,573160.0,587489.0,601818.0,616147.0,630476.0,644805.0,659134.0,673463.0,687792.0,702121.0,716450.0,730779.0,745108.0,759437.0,773766.0,788095.0,802424.0,816753.0,831082.0,845411.0,859740.0,874069.0,888398.0,902727.0,917056.0,931385.0,945714.0,960043.0,974372.0,988701.0,1003030.0,1017359.0,1031688.0,1046017.0,1060346.0,1074675.0,1089004.0,1103333.0,1117662.0,1131991.0,1146320.0,1160649.0,1174978.0,1189307.0,1203636.0,1217965.0,1232294.0,1246623.0,1260952.0,1275281.0,1289610.0,1303939.0,1318268.0,1332597.0,1346926.0,1361255.0,1375584.0,1389913.0,1404242.0,1418571.0,1432900.0],"times":[739333.0,930294.0,1439292.0,2381209.0,2553334.0,3020040.0,3793250.0,3903916.0,4413706.0,4997375.0,5472456.0,6182167.0,6270458.0,7169791.0,7258208.0,7666252.0,8385624.0,8618290.0,9297330.0,9793167.0,10247919.0,10650459.0,11044081.0,11267793.0,11952582.0,12851001.0,13438918.0,13718794.0,14267169.0,14648752.0,14671041.0,15399125.0,16317333.0,16568501.0,18163415.0,18346041.0,18047542.0,18330834.0,18074375.0,19051917.0,19875710.0,20165624.0,20815500.0,20807040.0,21381335.0,29240124.0,28650167.0,29604293.0,30110085.0,29904792.0,29316919.0,30719250.0,32658083.0,30455042.0,31327918.0,30897417.0,31433209.0,31950707.0,31103792.0,31758210.0,31874252.0,31525957.0,34229541.0,32528333.0,32856125.0,33191583.0,33930082.0,40200626.0,41079540.0,40686125.0,41642208.0,42629876.0,43854375.0,43213083.0,43779583.0,43837583.0,44017541.0,45140540.0,46399083.0,46066375.0,46081041.0,47166752.0,46967791.0,48249167.0,48644831.0,49607666.0,49854251.0,49400208.0,50708584.0,58553834.0,56177916.0,58142751.0,56763334.0,57338999.0,56514166.0,56813543.0,56053292.0,56978124.0,56997711.0,55953292.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/10/new/tukey.json ================================================ [14.82768036970787,24.479678755388726,50.21834111720434,59.870339502885194] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/10/report/index.html ================================================ Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/10 - Criterion.rs

Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/10

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 39.117 ns 39.748 ns 40.321 ns
0.5752261 0.5873716 0.5773510
Mean 36.965 ns 37.693 ns 38.446 ns
Std. Dev. 3.3074 ns 3.7970 ns 4.3448 ns
Median 35.454 ns 37.379 ns 39.703 ns
MAD 3.0248 ns 4.7701 ns 5.4983 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −3.4818% −0.6772% +2.1473% (p = 0.64 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/100/base/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"FlexStr 0.10 (LocalStr)","value_str":"100","throughput":null,"full_id":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/100","directory_name":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/100","title":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/100"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/100/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":63.09561139243806,"upper_bound":69.1657528604034},"point_estimate":65.6750645134077,"standard_error":1.5791187816154098},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":61.8818127747206,"upper_bound":65.0587870899962},"point_estimate":62.92521950052867,"standard_error":0.7644842518704085},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.8886558729826004,"upper_bound":5.944478372431085},"point_estimate":4.8022623138117275,"standard_error":0.512434382828348},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":64.51765946076037,"upper_bound":78.55213770139527},"point_estimate":70.4982058543917,"standard_error":3.6816657227795377},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.424413612979983,"upper_bound":24.235667804260803},"point_estimate":15.870185141305173,"standard_error":5.356864086424078}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/100/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[8339.0,16678.0,25017.0,33356.0,41695.0,50034.0,58373.0,66712.0,75051.0,83390.0,91729.0,100068.0,108407.0,116746.0,125085.0,133424.0,141763.0,150102.0,158441.0,166780.0,175119.0,183458.0,191797.0,200136.0,208475.0,216814.0,225153.0,233492.0,241831.0,250170.0,258509.0,266848.0,275187.0,283526.0,291865.0,300204.0,308543.0,316882.0,325221.0,333560.0,341899.0,350238.0,358577.0,366916.0,375255.0,383594.0,391933.0,400272.0,408611.0,416950.0,425289.0,433628.0,441967.0,450306.0,458645.0,466984.0,475323.0,483662.0,492001.0,500340.0,508679.0,517018.0,525357.0,533696.0,542035.0,550374.0,558713.0,567052.0,575391.0,583730.0,592069.0,600408.0,608747.0,617086.0,625425.0,633764.0,642103.0,650442.0,658781.0,667120.0,675459.0,683798.0,692137.0,700476.0,708815.0,717154.0,725493.0,733832.0,742171.0,750510.0,758849.0,767188.0,775527.0,783866.0,792205.0,800544.0,808883.0,817222.0,825561.0,833900.0],"times":[467916.0,1344831.0,1371211.0,2328166.0,2732707.0,2736290.0,3240794.0,4085124.0,4177957.0,4618752.0,5456040.0,6622750.0,6766917.0,7272750.0,7400374.0,7536708.0,9248707.0,9459751.0,10042084.0,10968083.0,10935498.0,11357333.0,13113958.0,13039167.0,13005792.0,12820001.0,13391374.0,14139417.0,14661292.0,15185038.0,17164583.0,17417585.0,17960501.0,18677539.0,18689249.0,18413795.0,18820290.0,18932794.0,19828625.0,19905124.0,20473958.0,23951584.0,23997456.0,24088415.0,24818335.0,24920584.0,24021498.0,23803749.0,23569417.0,24822876.0,25707916.0,25886500.0,31231583.0,30679667.0,30502708.0,30927750.0,29970417.0,30360917.0,29179833.0,29022044.0,29598666.0,30136335.0,30644209.0,37109667.0,37671041.0,37277250.0,36775208.0,35933709.0,35101083.0,34919583.0,34185125.0,37060374.0,37156084.0,37082792.0,44068792.0,43322374.0,43735167.0,42265875.0,41390082.0,41753167.0,41904334.0,41305417.0,44135041.0,44829334.0,43384291.0,50037874.0,49504459.0,49371834.0,50327123.0,52393665.0,62155666.0,127795459.0,135763209.0,55641501.0,50927874.0,49840960.0,59554164.0,55792041.0,54064084.0,56143375.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/100/base/tukey.json ================================================ [40.3313260685338,50.186068084343724,76.46538012650353,86.32012214231345] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/100/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.004196768976358198,"upper_bound":0.09610178198494383},"point_estimate":0.041894080490997965,"standard_error":0.026237619214905247},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.026455105091964245,"upper_bound":0.03541140155459299},"point_estimate":-0.00205124972107662,"standard_error":0.015517666147296666}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/100/new/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"FlexStr 0.10 (LocalStr)","value_str":"100","throughput":null,"full_id":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/100","directory_name":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/100","title":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/100"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/100/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":63.09561139243806,"upper_bound":69.1657528604034},"point_estimate":65.6750645134077,"standard_error":1.5791187816154098},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":61.8818127747206,"upper_bound":65.0587870899962},"point_estimate":62.92521950052867,"standard_error":0.7644842518704085},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.8886558729826004,"upper_bound":5.944478372431085},"point_estimate":4.8022623138117275,"standard_error":0.512434382828348},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":64.51765946076037,"upper_bound":78.55213770139527},"point_estimate":70.4982058543917,"standard_error":3.6816657227795377},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.424413612979983,"upper_bound":24.235667804260803},"point_estimate":15.870185141305173,"standard_error":5.356864086424078}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/100/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[8339.0,16678.0,25017.0,33356.0,41695.0,50034.0,58373.0,66712.0,75051.0,83390.0,91729.0,100068.0,108407.0,116746.0,125085.0,133424.0,141763.0,150102.0,158441.0,166780.0,175119.0,183458.0,191797.0,200136.0,208475.0,216814.0,225153.0,233492.0,241831.0,250170.0,258509.0,266848.0,275187.0,283526.0,291865.0,300204.0,308543.0,316882.0,325221.0,333560.0,341899.0,350238.0,358577.0,366916.0,375255.0,383594.0,391933.0,400272.0,408611.0,416950.0,425289.0,433628.0,441967.0,450306.0,458645.0,466984.0,475323.0,483662.0,492001.0,500340.0,508679.0,517018.0,525357.0,533696.0,542035.0,550374.0,558713.0,567052.0,575391.0,583730.0,592069.0,600408.0,608747.0,617086.0,625425.0,633764.0,642103.0,650442.0,658781.0,667120.0,675459.0,683798.0,692137.0,700476.0,708815.0,717154.0,725493.0,733832.0,742171.0,750510.0,758849.0,767188.0,775527.0,783866.0,792205.0,800544.0,808883.0,817222.0,825561.0,833900.0],"times":[467916.0,1344831.0,1371211.0,2328166.0,2732707.0,2736290.0,3240794.0,4085124.0,4177957.0,4618752.0,5456040.0,6622750.0,6766917.0,7272750.0,7400374.0,7536708.0,9248707.0,9459751.0,10042084.0,10968083.0,10935498.0,11357333.0,13113958.0,13039167.0,13005792.0,12820001.0,13391374.0,14139417.0,14661292.0,15185038.0,17164583.0,17417585.0,17960501.0,18677539.0,18689249.0,18413795.0,18820290.0,18932794.0,19828625.0,19905124.0,20473958.0,23951584.0,23997456.0,24088415.0,24818335.0,24920584.0,24021498.0,23803749.0,23569417.0,24822876.0,25707916.0,25886500.0,31231583.0,30679667.0,30502708.0,30927750.0,29970417.0,30360917.0,29179833.0,29022044.0,29598666.0,30136335.0,30644209.0,37109667.0,37671041.0,37277250.0,36775208.0,35933709.0,35101083.0,34919583.0,34185125.0,37060374.0,37156084.0,37082792.0,44068792.0,43322374.0,43735167.0,42265875.0,41390082.0,41753167.0,41904334.0,41305417.0,44135041.0,44829334.0,43384291.0,50037874.0,49504459.0,49371834.0,50327123.0,52393665.0,62155666.0,127795459.0,135763209.0,55641501.0,50927874.0,49840960.0,59554164.0,55792041.0,54064084.0,56143375.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/100/new/tukey.json ================================================ [40.3313260685338,50.186068084343724,76.46538012650353,86.32012214231345] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/100/report/index.html ================================================ Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/100 - Criterion.rs

Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/100

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 64.518 ns 70.498 ns 78.552 ns
0.0506620 0.0537241 0.0484169
Mean 63.096 ns 65.675 ns 69.166 ns
Std. Dev. 4.4244 ns 15.870 ns 24.236 ns
Median 61.882 ns 62.925 ns 65.059 ns
MAD 3.8887 ns 4.8023 ns 5.9445 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.4197% +4.1894% +9.6102% (p = 0.10 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/20/base/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"FlexStr 0.10 (LocalStr)","value_str":"20","throughput":null,"full_id":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/20","directory_name":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/20","title":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/20"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/20/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":37.795331996381336,"upper_bound":39.18099784967492},"point_estimate":38.49395682818282,"standard_error":0.3544120090205367},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":38.42500521602052,"upper_bound":39.81468867292351},"point_estimate":39.152679160792005,"standard_error":0.37374612909121524},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.7854260841561933,"upper_bound":5.262949147288018},"point_estimate":4.082798194501101,"standard_error":0.6516667732660264},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":39.38900551981099,"upper_bound":40.748741111902866},"point_estimate":40.09521248681141,"standard_error":0.34668175315348326},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.1859149954359065,"upper_bound":3.891975142776926},"point_estimate":3.5654471401307646,"standard_error":0.17952214527003427}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/20/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[13622.0,27244.0,40866.0,54488.0,68110.0,81732.0,95354.0,108976.0,122598.0,136220.0,149842.0,163464.0,177086.0,190708.0,204330.0,217952.0,231574.0,245196.0,258818.0,272440.0,286062.0,299684.0,313306.0,326928.0,340550.0,354172.0,367794.0,381416.0,395038.0,408660.0,422282.0,435904.0,449526.0,463148.0,476770.0,490392.0,504014.0,517636.0,531258.0,544880.0,558502.0,572124.0,585746.0,599368.0,612990.0,626612.0,640234.0,653856.0,667478.0,681100.0,694722.0,708344.0,721966.0,735588.0,749210.0,762832.0,776454.0,790076.0,803698.0,817320.0,830942.0,844564.0,858186.0,871808.0,885430.0,899052.0,912674.0,926296.0,939918.0,953540.0,967162.0,980784.0,994406.0,1008028.0,1021650.0,1035272.0,1048894.0,1062516.0,1076138.0,1089760.0,1103382.0,1117004.0,1130626.0,1144248.0,1157870.0,1171492.0,1185114.0,1198736.0,1212358.0,1225980.0,1239602.0,1253224.0,1266846.0,1280468.0,1294090.0,1307712.0,1321334.0,1334956.0,1348578.0,1362200.0],"times":[467625.0,1265667.0,1320001.0,2351791.0,2294000.0,2721542.0,3163959.0,4068251.0,4038460.0,4877042.0,5314375.0,5371250.0,5793125.0,6362543.0,6746461.0,7232250.0,7518586.0,8025374.0,8892958.0,9360794.0,9486001.0,10062249.0,10410042.0,14266543.0,14116248.0,14271458.0,14753834.0,14953998.0,15139000.0,15132664.0,15590750.0,15300585.0,15906876.0,15515127.0,15913751.0,19739333.0,20332375.0,19890166.0,21078335.0,21903958.0,22426123.0,21964165.0,22688543.0,23352293.0,23752918.0,24129209.0,25046041.0,28849917.0,28538917.0,28530000.0,28058625.0,28092418.0,27789666.0,27143418.0,27046082.0,27080414.0,27674501.0,27113207.0,31493085.0,31786790.0,32947668.0,33965833.0,34489753.0,34361083.0,38166377.0,38574417.0,38669334.0,38598999.0,39366915.0,39205666.0,42699498.0,41985000.0,41680999.0,40919084.0,40586001.0,41362335.0,39599043.0,39737833.0,39179876.0,39032540.0,38396001.0,38257666.0,44185083.0,46580000.0,45622250.0,47118668.0,46647501.0,47953041.0,53896583.0,52639124.0,52253583.0,53893208.0,54346167.0,54211168.0,57230210.0,56834000.0,54589752.0,54292085.0,53366709.0,52908584.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/20/base/tukey.json ================================================ [19.355620825364632,27.40099299833921,48.85531879293808,56.90069096591266] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/20/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.024646971418838363,"upper_bound":0.027873710936417873},"point_estimate":0.0018553307930682106,"standard_error":0.01337991156441059},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.02389320052855859,"upper_bound":0.029375067612670978},"point_estimate":-0.0002154810614773961,"standard_error":0.014283210909449864}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/20/new/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"FlexStr 0.10 (LocalStr)","value_str":"20","throughput":null,"full_id":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/20","directory_name":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/20","title":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/20"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/20/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":37.795331996381336,"upper_bound":39.18099784967492},"point_estimate":38.49395682818282,"standard_error":0.3544120090205367},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":38.42500521602052,"upper_bound":39.81468867292351},"point_estimate":39.152679160792005,"standard_error":0.37374612909121524},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.7854260841561933,"upper_bound":5.262949147288018},"point_estimate":4.082798194501101,"standard_error":0.6516667732660264},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":39.38900551981099,"upper_bound":40.748741111902866},"point_estimate":40.09521248681141,"standard_error":0.34668175315348326},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.1859149954359065,"upper_bound":3.891975142776926},"point_estimate":3.5654471401307646,"standard_error":0.17952214527003427}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/20/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[13622.0,27244.0,40866.0,54488.0,68110.0,81732.0,95354.0,108976.0,122598.0,136220.0,149842.0,163464.0,177086.0,190708.0,204330.0,217952.0,231574.0,245196.0,258818.0,272440.0,286062.0,299684.0,313306.0,326928.0,340550.0,354172.0,367794.0,381416.0,395038.0,408660.0,422282.0,435904.0,449526.0,463148.0,476770.0,490392.0,504014.0,517636.0,531258.0,544880.0,558502.0,572124.0,585746.0,599368.0,612990.0,626612.0,640234.0,653856.0,667478.0,681100.0,694722.0,708344.0,721966.0,735588.0,749210.0,762832.0,776454.0,790076.0,803698.0,817320.0,830942.0,844564.0,858186.0,871808.0,885430.0,899052.0,912674.0,926296.0,939918.0,953540.0,967162.0,980784.0,994406.0,1008028.0,1021650.0,1035272.0,1048894.0,1062516.0,1076138.0,1089760.0,1103382.0,1117004.0,1130626.0,1144248.0,1157870.0,1171492.0,1185114.0,1198736.0,1212358.0,1225980.0,1239602.0,1253224.0,1266846.0,1280468.0,1294090.0,1307712.0,1321334.0,1334956.0,1348578.0,1362200.0],"times":[467625.0,1265667.0,1320001.0,2351791.0,2294000.0,2721542.0,3163959.0,4068251.0,4038460.0,4877042.0,5314375.0,5371250.0,5793125.0,6362543.0,6746461.0,7232250.0,7518586.0,8025374.0,8892958.0,9360794.0,9486001.0,10062249.0,10410042.0,14266543.0,14116248.0,14271458.0,14753834.0,14953998.0,15139000.0,15132664.0,15590750.0,15300585.0,15906876.0,15515127.0,15913751.0,19739333.0,20332375.0,19890166.0,21078335.0,21903958.0,22426123.0,21964165.0,22688543.0,23352293.0,23752918.0,24129209.0,25046041.0,28849917.0,28538917.0,28530000.0,28058625.0,28092418.0,27789666.0,27143418.0,27046082.0,27080414.0,27674501.0,27113207.0,31493085.0,31786790.0,32947668.0,33965833.0,34489753.0,34361083.0,38166377.0,38574417.0,38669334.0,38598999.0,39366915.0,39205666.0,42699498.0,41985000.0,41680999.0,40919084.0,40586001.0,41362335.0,39599043.0,39737833.0,39179876.0,39032540.0,38396001.0,38257666.0,44185083.0,46580000.0,45622250.0,47118668.0,46647501.0,47953041.0,53896583.0,52639124.0,52253583.0,53893208.0,54346167.0,54211168.0,57230210.0,56834000.0,54589752.0,54292085.0,53366709.0,52908584.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/20/new/tukey.json ================================================ [19.355620825364632,27.40099299833921,48.85531879293808,56.90069096591266] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/20/report/index.html ================================================ Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/20 - Criterion.rs

Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/20

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 39.389 ns 40.095 ns 40.749 ns
0.5698729 0.5857342 0.5720979
Mean 37.795 ns 38.494 ns 39.181 ns
Std. Dev. 3.1859 ns 3.5654 ns 3.8920 ns
Median 38.425 ns 39.153 ns 39.815 ns
MAD 2.7854 ns 4.0828 ns 5.2629 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −2.4647% +0.1855% +2.7874% (p = 0.89 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/500/base/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"FlexStr 0.10 (LocalStr)","value_str":"500","throughput":null,"full_id":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/500","directory_name":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/500","title":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/500"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/500/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":101.41125251183178,"upper_bound":103.43569504046535},"point_estimate":102.47813369457954,"standard_error":0.5173568169322026},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":102.08968866196793,"upper_bound":104.1947918611163},"point_estimate":103.02826595972908,"standard_error":0.5355305959141878},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.8917616287383305,"upper_bound":4.7363410946295},"point_estimate":3.5840359374538533,"standard_error":0.4895572983038598},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":103.43760835134167,"upper_bound":104.95985315107106},"point_estimate":104.18668036846285,"standard_error":0.3881691601168593},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.537153255224193,"upper_bound":6.640085901029809},"point_estimate":5.197795848722108,"standard_error":0.7845612213022684}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/500/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[4870.0,9740.0,14610.0,19480.0,24350.0,29220.0,34090.0,38960.0,43830.0,48700.0,53570.0,58440.0,63310.0,68180.0,73050.0,77920.0,82790.0,87660.0,92530.0,97400.0,102270.0,107140.0,112010.0,116880.0,121750.0,126620.0,131490.0,136360.0,141230.0,146100.0,150970.0,155840.0,160710.0,165580.0,170450.0,175320.0,180190.0,185060.0,189930.0,194800.0,199670.0,204540.0,209410.0,214280.0,219150.0,224020.0,228890.0,233760.0,238630.0,243500.0,248370.0,253240.0,258110.0,262980.0,267850.0,272720.0,277590.0,282460.0,287330.0,292200.0,297070.0,301940.0,306810.0,311680.0,316550.0,321420.0,326290.0,331160.0,336030.0,340900.0,345770.0,350640.0,355510.0,360380.0,365250.0,370120.0,374990.0,379860.0,384730.0,389600.0,394470.0,399340.0,404210.0,409080.0,413950.0,418820.0,423690.0,428560.0,433430.0,438300.0,443170.0,448040.0,452910.0,457780.0,462650.0,467520.0,472390.0,477260.0,482130.0,487000.0],"times":[399333.0,774335.0,1408709.0,1574669.0,2344208.0,2768332.0,3553083.0,3604208.0,4192290.0,4819292.0,5312501.0,5655083.0,6130707.0,6633126.0,7310085.0,8280666.0,8437499.0,9064252.0,9223668.0,9893124.0,10435542.0,11429082.0,11806709.0,12408666.0,12809585.0,13929709.0,13364793.0,14551333.0,14374124.0,15038292.0,16280416.0,15942834.0,15800208.0,16708252.0,18082375.0,18711042.0,18395541.0,18395375.0,18813128.0,19382877.0,21354833.0,21596376.0,22035378.0,21744874.0,22364708.0,23838209.0,24547540.0,25146043.0,25963707.0,25756666.0,26129208.0,26122168.0,26678377.0,26470000.0,27050499.0,27633374.0,29641459.0,28737543.0,29439374.0,29916667.0,32215040.0,31213665.0,31920667.0,32595081.0,34568250.0,33490290.0,33648667.0,34234792.0,35649625.0,35253917.0,36425125.0,36856249.0,37527126.0,36281458.0,36777955.0,37448542.0,37853084.0,38584834.0,38580498.0,39919249.0,41238042.0,40960250.0,39999834.0,41828209.0,41922084.0,42833582.0,43824832.0,45732333.0,44341708.0,47166207.0,46747210.0,47594792.0,48242414.0,49016543.0,48269418.0,47678001.0,50324083.0,50196459.0,54004581.0,52034458.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/500/base/tukey.json ================================================ [86.17766379966207,93.55635389649603,113.23286082138662,120.6115509182206] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/500/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.043012825512955585,"upper_bound":-0.011336125264364361},"point_estimate":-0.02684250511934272,"standard_error":0.008055076718631272},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.03390718137304349,"upper_bound":-0.010523938793494003},"point_estimate":-0.023813488231509194,"standard_error":0.006266460725942023}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/500/new/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"FlexStr 0.10 (LocalStr)","value_str":"500","throughput":null,"full_id":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/500","directory_name":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/500","title":"Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/500"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/500/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":101.41125251183178,"upper_bound":103.43569504046535},"point_estimate":102.47813369457954,"standard_error":0.5173568169322026},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":102.08968866196793,"upper_bound":104.1947918611163},"point_estimate":103.02826595972908,"standard_error":0.5355305959141878},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.8917616287383305,"upper_bound":4.7363410946295},"point_estimate":3.5840359374538533,"standard_error":0.4895572983038598},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":103.43760835134167,"upper_bound":104.95985315107106},"point_estimate":104.18668036846285,"standard_error":0.3881691601168593},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.537153255224193,"upper_bound":6.640085901029809},"point_estimate":5.197795848722108,"standard_error":0.7845612213022684}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/500/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[4870.0,9740.0,14610.0,19480.0,24350.0,29220.0,34090.0,38960.0,43830.0,48700.0,53570.0,58440.0,63310.0,68180.0,73050.0,77920.0,82790.0,87660.0,92530.0,97400.0,102270.0,107140.0,112010.0,116880.0,121750.0,126620.0,131490.0,136360.0,141230.0,146100.0,150970.0,155840.0,160710.0,165580.0,170450.0,175320.0,180190.0,185060.0,189930.0,194800.0,199670.0,204540.0,209410.0,214280.0,219150.0,224020.0,228890.0,233760.0,238630.0,243500.0,248370.0,253240.0,258110.0,262980.0,267850.0,272720.0,277590.0,282460.0,287330.0,292200.0,297070.0,301940.0,306810.0,311680.0,316550.0,321420.0,326290.0,331160.0,336030.0,340900.0,345770.0,350640.0,355510.0,360380.0,365250.0,370120.0,374990.0,379860.0,384730.0,389600.0,394470.0,399340.0,404210.0,409080.0,413950.0,418820.0,423690.0,428560.0,433430.0,438300.0,443170.0,448040.0,452910.0,457780.0,462650.0,467520.0,472390.0,477260.0,482130.0,487000.0],"times":[399333.0,774335.0,1408709.0,1574669.0,2344208.0,2768332.0,3553083.0,3604208.0,4192290.0,4819292.0,5312501.0,5655083.0,6130707.0,6633126.0,7310085.0,8280666.0,8437499.0,9064252.0,9223668.0,9893124.0,10435542.0,11429082.0,11806709.0,12408666.0,12809585.0,13929709.0,13364793.0,14551333.0,14374124.0,15038292.0,16280416.0,15942834.0,15800208.0,16708252.0,18082375.0,18711042.0,18395541.0,18395375.0,18813128.0,19382877.0,21354833.0,21596376.0,22035378.0,21744874.0,22364708.0,23838209.0,24547540.0,25146043.0,25963707.0,25756666.0,26129208.0,26122168.0,26678377.0,26470000.0,27050499.0,27633374.0,29641459.0,28737543.0,29439374.0,29916667.0,32215040.0,31213665.0,31920667.0,32595081.0,34568250.0,33490290.0,33648667.0,34234792.0,35649625.0,35253917.0,36425125.0,36856249.0,37527126.0,36281458.0,36777955.0,37448542.0,37853084.0,38584834.0,38580498.0,39919249.0,41238042.0,40960250.0,39999834.0,41828209.0,41922084.0,42833582.0,43824832.0,45732333.0,44341708.0,47166207.0,46747210.0,47594792.0,48242414.0,49016543.0,48269418.0,47678001.0,50324083.0,50196459.0,54004581.0,52034458.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/500/new/tukey.json ================================================ [86.17766379966207,93.55635389649603,113.23286082138662,120.6115509182206] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/500/report/index.html ================================================ Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/500 - Criterion.rs

Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/500

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 103.44 ns 104.19 ns 104.96 ns
0.9103754 0.9157277 0.9100276
Mean 101.41 ns 102.48 ns 103.44 ns
Std. Dev. 3.5372 ns 5.1978 ns 6.6401 ns
Median 102.09 ns 103.03 ns 104.19 ns
MAD 2.8918 ns 3.5840 ns 4.7363 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −4.3013% −2.6843% −1.1336% (p = 0.00 < 0.05)
Performance has improved.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/report/index.html ================================================ Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr) Summary - Criterion.rs

Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)

Violin Plot

Violin Plot

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

Line Chart

Line Chart

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

Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/0

PDF of Slope Regression

Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/10

PDF of Slope Regression

Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/20

PDF of Slope Regression

Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/100

PDF of Slope Regression

Import as borrowed, own and destroy/FlexStr 0.10 (LocalStr)/500

PDF of Slope Regression
================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/0/base/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"FlexStr 0.10 (SharedStr)","value_str":"0","throughput":null,"full_id":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/0","directory_name":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/0","title":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/0"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/0/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9.659428425668018,"upper_bound":9.86774218348159},"point_estimate":9.742384252164781,"standard_error":0.05458524941852085},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9.64407897930771,"upper_bound":9.73637758603121},"point_estimate":9.696138680212002,"standard_error":0.024337153509998967},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.09797791129892536,"upper_bound":0.1862310849654595},"point_estimate":0.1368267365618609,"standard_error":0.02279367026383861},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9.61458898821303,"upper_bound":9.685198515804275},"point_estimate":9.648604318895451,"standard_error":0.01807709047155808},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.15871389078130899,"upper_bound":0.8897514531602044},"point_estimate":0.5460705139630668,"standard_error":0.22728250644988585}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/0/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[70170.0,140340.0,210510.0,280680.0,350850.0,421020.0,491190.0,561360.0,631530.0,701700.0,771870.0,842040.0,912210.0,982380.0,1052550.0,1122720.0,1192890.0,1263060.0,1333230.0,1403400.0,1473570.0,1543740.0,1613910.0,1684080.0,1754250.0,1824420.0,1894590.0,1964760.0,2034930.0,2105100.0,2175270.0,2245440.0,2315610.0,2385780.0,2455950.0,2526120.0,2596290.0,2666460.0,2736630.0,2806800.0,2876970.0,2947140.0,3017310.0,3087480.0,3157650.0,3227820.0,3297990.0,3368160.0,3438330.0,3508500.0,3578670.0,3648840.0,3719010.0,3789180.0,3859350.0,3929520.0,3999690.0,4069860.0,4140030.0,4210200.0,4280370.0,4350540.0,4420710.0,4490880.0,4561050.0,4631220.0,4701390.0,4771560.0,4841730.0,4911900.0,4982070.0,5052240.0,5122410.0,5192580.0,5262750.0,5332920.0,5403090.0,5473260.0,5543430.0,5613600.0,5683770.0,5753940.0,5824110.0,5894280.0,5964450.0,6034620.0,6104790.0,6174960.0,6245130.0,6315300.0,6385470.0,6455640.0,6525810.0,6595980.0,6666150.0,6736320.0,6806490.0,6876660.0,6946830.0,7017000.0],"times":[1024918.0,1311625.0,1960916.0,2918250.0,3271335.0,4735123.0,4616626.0,5258041.0,6040125.0,6885958.0,7685126.0,8414210.0,9063416.0,9313835.0,10993625.0,10726000.0,11345917.0,12515209.0,12891750.0,13378376.0,14027918.0,14867833.0,15594833.0,16127292.0,16662667.0,17584375.0,18133000.0,18959585.0,19694582.0,20451501.0,20987960.0,21733502.0,22676041.0,22941291.0,23807834.0,24025959.0,24893124.0,25395624.0,26634458.0,27309250.0,27727875.0,28439373.0,29297959.0,29952749.0,30600875.0,31568333.0,32354416.0,33602083.0,33949166.0,33702750.0,34446418.0,35393376.0,36815958.0,36632625.0,37567750.0,38310167.0,38964876.0,39658167.0,40271043.0,41069791.0,41818375.0,42452250.0,43217209.0,44007875.0,44602416.0,45272835.0,45915708.0,46633083.0,47268165.0,47974334.0,48671998.0,49389457.0,49920543.0,51069709.0,51473458.0,52108209.0,52783667.0,53492959.0,54001208.0,54960540.0,55427416.0,55990331.0,55909582.0,57164711.0,56865498.0,57344915.0,57889917.0,58649750.0,59497668.0,59902665.0,60287209.0,61385710.0,61837083.0,63302082.0,64036459.0,63670458.0,64001042.0,65844917.0,66355875.0,66913917.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/0/base/tukey.json ================================================ [8.898014097763701,9.225596694806683,10.0991502869213,10.426732883964283] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/0/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0530658948708273,"upper_bound":-0.002599609723650051},"point_estimate":-0.025986609528683924,"standard_error":0.01289387677260734},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.011825238562651497,"upper_bound":-0.0007707762091008208},"point_estimate":-0.006062192388290533,"standard_error":0.002856913973866556}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/0/new/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"FlexStr 0.10 (SharedStr)","value_str":"0","throughput":null,"full_id":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/0","directory_name":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/0","title":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/0"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/0/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9.659428425668018,"upper_bound":9.86774218348159},"point_estimate":9.742384252164781,"standard_error":0.05458524941852085},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9.64407897930771,"upper_bound":9.73637758603121},"point_estimate":9.696138680212002,"standard_error":0.024337153509998967},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.09797791129892536,"upper_bound":0.1862310849654595},"point_estimate":0.1368267365618609,"standard_error":0.02279367026383861},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9.61458898821303,"upper_bound":9.685198515804275},"point_estimate":9.648604318895451,"standard_error":0.01807709047155808},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.15871389078130899,"upper_bound":0.8897514531602044},"point_estimate":0.5460705139630668,"standard_error":0.22728250644988585}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/0/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[70170.0,140340.0,210510.0,280680.0,350850.0,421020.0,491190.0,561360.0,631530.0,701700.0,771870.0,842040.0,912210.0,982380.0,1052550.0,1122720.0,1192890.0,1263060.0,1333230.0,1403400.0,1473570.0,1543740.0,1613910.0,1684080.0,1754250.0,1824420.0,1894590.0,1964760.0,2034930.0,2105100.0,2175270.0,2245440.0,2315610.0,2385780.0,2455950.0,2526120.0,2596290.0,2666460.0,2736630.0,2806800.0,2876970.0,2947140.0,3017310.0,3087480.0,3157650.0,3227820.0,3297990.0,3368160.0,3438330.0,3508500.0,3578670.0,3648840.0,3719010.0,3789180.0,3859350.0,3929520.0,3999690.0,4069860.0,4140030.0,4210200.0,4280370.0,4350540.0,4420710.0,4490880.0,4561050.0,4631220.0,4701390.0,4771560.0,4841730.0,4911900.0,4982070.0,5052240.0,5122410.0,5192580.0,5262750.0,5332920.0,5403090.0,5473260.0,5543430.0,5613600.0,5683770.0,5753940.0,5824110.0,5894280.0,5964450.0,6034620.0,6104790.0,6174960.0,6245130.0,6315300.0,6385470.0,6455640.0,6525810.0,6595980.0,6666150.0,6736320.0,6806490.0,6876660.0,6946830.0,7017000.0],"times":[1024918.0,1311625.0,1960916.0,2918250.0,3271335.0,4735123.0,4616626.0,5258041.0,6040125.0,6885958.0,7685126.0,8414210.0,9063416.0,9313835.0,10993625.0,10726000.0,11345917.0,12515209.0,12891750.0,13378376.0,14027918.0,14867833.0,15594833.0,16127292.0,16662667.0,17584375.0,18133000.0,18959585.0,19694582.0,20451501.0,20987960.0,21733502.0,22676041.0,22941291.0,23807834.0,24025959.0,24893124.0,25395624.0,26634458.0,27309250.0,27727875.0,28439373.0,29297959.0,29952749.0,30600875.0,31568333.0,32354416.0,33602083.0,33949166.0,33702750.0,34446418.0,35393376.0,36815958.0,36632625.0,37567750.0,38310167.0,38964876.0,39658167.0,40271043.0,41069791.0,41818375.0,42452250.0,43217209.0,44007875.0,44602416.0,45272835.0,45915708.0,46633083.0,47268165.0,47974334.0,48671998.0,49389457.0,49920543.0,51069709.0,51473458.0,52108209.0,52783667.0,53492959.0,54001208.0,54960540.0,55427416.0,55990331.0,55909582.0,57164711.0,56865498.0,57344915.0,57889917.0,58649750.0,59497668.0,59902665.0,60287209.0,61385710.0,61837083.0,63302082.0,64036459.0,63670458.0,64001042.0,65844917.0,66355875.0,66913917.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/0/new/tukey.json ================================================ [8.898014097763701,9.225596694806683,10.0991502869213,10.426732883964283] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/0/report/index.html ================================================ Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/0 - Criterion.rs

Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/0

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 9.6146 ns 9.6486 ns 9.6852 ns
0.9709256 0.9726333 0.9706574
Mean 9.6594 ns 9.7424 ns 9.8677 ns
Std. Dev. 158.71 ps 546.07 ps 889.75 ps
Median 9.6441 ns 9.6961 ns 9.7364 ns
MAD 97.978 ps 136.83 ps 186.23 ps

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −5.3066% −2.5987% −0.2600% (p = 0.03 < 0.05)
Change within noise threshold.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/10/base/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"FlexStr 0.10 (SharedStr)","value_str":"10","throughput":null,"full_id":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/10","directory_name":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/10","title":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/10"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/10/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":37.250406249327796,"upper_bound":38.74280180744994},"point_estimate":37.97097286986987,"standard_error":0.38062970957633246},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":36.32037953109908,"upper_bound":39.44997309294207},"point_estimate":37.99267863847946,"standard_error":0.8933969342302217},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.997746934038688,"upper_bound":5.0790699071364775},"point_estimate":4.540411737865676,"standard_error":0.5108619196415463},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":38.88738539121213,"upper_bound":39.97772868973616},"point_estimate":39.44307909184501,"standard_error":0.2781635548145071},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.0369562058949664,"upper_bound":4.840835912721742},"point_estimate":3.8296230714241557,"standard_error":0.5108862950333486}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/10/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[15253.0,30506.0,45759.0,61012.0,76265.0,91518.0,106771.0,122024.0,137277.0,152530.0,167783.0,183036.0,198289.0,213542.0,228795.0,244048.0,259301.0,274554.0,289807.0,305060.0,320313.0,335566.0,350819.0,366072.0,381325.0,396578.0,411831.0,427084.0,442337.0,457590.0,472843.0,488096.0,503349.0,518602.0,533855.0,549108.0,564361.0,579614.0,594867.0,610120.0,625373.0,640626.0,655879.0,671132.0,686385.0,701638.0,716891.0,732144.0,747397.0,762650.0,777903.0,793156.0,808409.0,823662.0,838915.0,854168.0,869421.0,884674.0,899927.0,915180.0,930433.0,945686.0,960939.0,976192.0,991445.0,1006698.0,1021951.0,1037204.0,1052457.0,1067710.0,1082963.0,1098216.0,1113469.0,1128722.0,1143975.0,1159228.0,1174481.0,1189734.0,1204987.0,1220240.0,1235493.0,1250746.0,1265999.0,1281252.0,1296505.0,1311758.0,1327011.0,1342264.0,1357517.0,1372770.0,1388023.0,1403276.0,1418529.0,1433782.0,1449035.0,1464288.0,1479541.0,1494794.0,1510047.0,1525300.0],"times":[885960.0,1035583.0,1560417.0,2582834.0,2652624.0,3768083.0,3676124.0,4978334.0,4668042.0,5147541.0,5737625.0,6280707.0,6566789.0,7816333.0,7790789.0,8303416.0,8892249.0,9497417.0,10253791.0,10518125.0,10979543.0,11465623.0,11728917.0,12842958.0,12968124.0,13808165.0,14134124.0,14444877.0,14692542.0,15647334.0,15758291.0,17111959.0,17179292.0,17888624.0,18374708.0,18940542.0,18533751.0,19136417.0,21452499.0,21673750.0,21255958.0,21888458.0,28168419.0,29719958.0,29554752.0,29923291.0,30206749.0,29999918.0,30172290.0,30866123.0,30718125.0,30702711.0,31654624.0,30934458.0,31886251.0,31291459.0,31801749.0,32315081.0,32213959.0,33924210.0,32764334.0,33696917.0,35832375.0,40248041.0,40993708.0,41448749.0,41694252.0,42223293.0,42279668.0,42597876.0,43667542.0,44532000.0,44073794.0,44484708.0,46227708.0,45876876.0,47401624.0,48016459.0,47516460.0,48329373.0,48859791.0,50395377.0,49588542.0,50445207.0,57785833.0,56416582.0,57577501.0,57898169.0,56986334.0,56740459.0,57096125.0,57495709.0,56703541.0,57629875.0,56896290.0,56049958.0,56244419.0,56325623.0,57346209.0,56456252.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/10/base/tukey.json ================================================ [16.432851663841312,25.430034396043872,49.42252168191737,58.41970441411993] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/10/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.027905529753529466,"upper_bound":0.024840446949341403},"point_estimate":-0.0010233990571711926,"standard_error":0.013486094423047129},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0630299958307673,"upper_bound":0.05717514904050147},"point_estimate":-0.00291183184066357,"standard_error":0.03178099205679987}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/10/new/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"FlexStr 0.10 (SharedStr)","value_str":"10","throughput":null,"full_id":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/10","directory_name":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/10","title":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/10"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/10/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":37.250406249327796,"upper_bound":38.74280180744994},"point_estimate":37.97097286986987,"standard_error":0.38062970957633246},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":36.32037953109908,"upper_bound":39.44997309294207},"point_estimate":37.99267863847946,"standard_error":0.8933969342302217},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.997746934038688,"upper_bound":5.0790699071364775},"point_estimate":4.540411737865676,"standard_error":0.5108619196415463},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":38.88738539121213,"upper_bound":39.97772868973616},"point_estimate":39.44307909184501,"standard_error":0.2781635548145071},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.0369562058949664,"upper_bound":4.840835912721742},"point_estimate":3.8296230714241557,"standard_error":0.5108862950333486}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/10/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[15253.0,30506.0,45759.0,61012.0,76265.0,91518.0,106771.0,122024.0,137277.0,152530.0,167783.0,183036.0,198289.0,213542.0,228795.0,244048.0,259301.0,274554.0,289807.0,305060.0,320313.0,335566.0,350819.0,366072.0,381325.0,396578.0,411831.0,427084.0,442337.0,457590.0,472843.0,488096.0,503349.0,518602.0,533855.0,549108.0,564361.0,579614.0,594867.0,610120.0,625373.0,640626.0,655879.0,671132.0,686385.0,701638.0,716891.0,732144.0,747397.0,762650.0,777903.0,793156.0,808409.0,823662.0,838915.0,854168.0,869421.0,884674.0,899927.0,915180.0,930433.0,945686.0,960939.0,976192.0,991445.0,1006698.0,1021951.0,1037204.0,1052457.0,1067710.0,1082963.0,1098216.0,1113469.0,1128722.0,1143975.0,1159228.0,1174481.0,1189734.0,1204987.0,1220240.0,1235493.0,1250746.0,1265999.0,1281252.0,1296505.0,1311758.0,1327011.0,1342264.0,1357517.0,1372770.0,1388023.0,1403276.0,1418529.0,1433782.0,1449035.0,1464288.0,1479541.0,1494794.0,1510047.0,1525300.0],"times":[885960.0,1035583.0,1560417.0,2582834.0,2652624.0,3768083.0,3676124.0,4978334.0,4668042.0,5147541.0,5737625.0,6280707.0,6566789.0,7816333.0,7790789.0,8303416.0,8892249.0,9497417.0,10253791.0,10518125.0,10979543.0,11465623.0,11728917.0,12842958.0,12968124.0,13808165.0,14134124.0,14444877.0,14692542.0,15647334.0,15758291.0,17111959.0,17179292.0,17888624.0,18374708.0,18940542.0,18533751.0,19136417.0,21452499.0,21673750.0,21255958.0,21888458.0,28168419.0,29719958.0,29554752.0,29923291.0,30206749.0,29999918.0,30172290.0,30866123.0,30718125.0,30702711.0,31654624.0,30934458.0,31886251.0,31291459.0,31801749.0,32315081.0,32213959.0,33924210.0,32764334.0,33696917.0,35832375.0,40248041.0,40993708.0,41448749.0,41694252.0,42223293.0,42279668.0,42597876.0,43667542.0,44532000.0,44073794.0,44484708.0,46227708.0,45876876.0,47401624.0,48016459.0,47516460.0,48329373.0,48859791.0,50395377.0,49588542.0,50445207.0,57785833.0,56416582.0,57577501.0,57898169.0,56986334.0,56740459.0,57096125.0,57495709.0,56703541.0,57629875.0,56896290.0,56049958.0,56244419.0,56325623.0,57346209.0,56456252.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/10/new/tukey.json ================================================ [16.432851663841312,25.430034396043872,49.42252168191737,58.41970441411993] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/10/report/index.html ================================================ Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/10 - Criterion.rs

Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/10

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 38.887 ns 39.443 ns 39.978 ns
0.5873403 0.5995270 0.5882288
Mean 37.250 ns 37.971 ns 38.743 ns
Std. Dev. 3.0370 ns 3.8296 ns 4.8408 ns
Median 36.320 ns 37.993 ns 39.450 ns
MAD 2.9977 ns 4.5404 ns 5.0791 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −2.7906% −0.1023% +2.4840% (p = 0.94 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/100/base/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"FlexStr 0.10 (SharedStr)","value_str":"100","throughput":null,"full_id":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/100","directory_name":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/100","title":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/100"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/100/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":61.58104805055121,"upper_bound":63.22595789420465},"point_estimate":62.39194774608348,"standard_error":0.41997813883863633},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":61.15493950206419,"upper_bound":63.10598887202833},"point_estimate":62.02729167316088,"standard_error":0.45924836415716325},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.6815905624487923,"upper_bound":5.590731695726715},"point_estimate":4.741245908334975,"standard_error":0.498638123147318},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":62.144028894753326,"upper_bound":63.90921252826234},"point_estimate":63.03342531359788,"standard_error":0.44940809910953927},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.6261298290395403,"upper_bound":4.8406225658668705},"point_estimate":4.226052349393067,"standard_error":0.31243418121103983}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/100/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[7908.0,15816.0,23724.0,31632.0,39540.0,47448.0,55356.0,63264.0,71172.0,79080.0,86988.0,94896.0,102804.0,110712.0,118620.0,126528.0,134436.0,142344.0,150252.0,158160.0,166068.0,173976.0,181884.0,189792.0,197700.0,205608.0,213516.0,221424.0,229332.0,237240.0,245148.0,253056.0,260964.0,268872.0,276780.0,284688.0,292596.0,300504.0,308412.0,316320.0,324228.0,332136.0,340044.0,347952.0,355860.0,363768.0,371676.0,379584.0,387492.0,395400.0,403308.0,411216.0,419124.0,427032.0,434940.0,442848.0,450756.0,458664.0,466572.0,474480.0,482388.0,490296.0,498204.0,506112.0,514020.0,521928.0,529836.0,537744.0,545652.0,553560.0,561468.0,569376.0,577284.0,585192.0,593100.0,601008.0,608916.0,616824.0,624732.0,632640.0,640548.0,648456.0,656364.0,664272.0,672180.0,680088.0,687996.0,695904.0,703812.0,711720.0,719628.0,727536.0,735444.0,743352.0,751260.0,759168.0,767076.0,774984.0,782892.0,790800.0],"times":[454125.0,1222793.0,1302292.0,2161295.0,2228667.0,3149625.0,3042332.0,3842791.0,3933668.0,4714959.0,4723749.0,6310085.0,6506708.0,6785709.0,6935667.0,7222085.0,7521543.0,9137875.0,9871333.0,9888211.0,10338415.0,10754126.0,11163792.0,12407207.0,12439208.0,12687583.0,13706750.0,13042334.0,13854417.0,14574749.0,14743293.0,16973127.0,17185041.0,17286543.0,18568876.0,18665250.0,18154167.0,18277499.0,18029249.0,17676167.0,19130124.0,19756085.0,19829291.0,24517459.0,23865582.0,24010667.0,24846334.0,24077166.0,23720541.0,24530333.0,23290376.0,23201207.0,24863001.0,24966001.0,25361457.0,30478125.0,30424041.0,29935584.0,30827874.0,29832167.0,29392500.0,29034833.0,28517208.0,29024250.0,29539250.0,30485624.0,36282874.0,36801500.0,37282087.0,36439750.0,35790292.0,35055124.0,34357376.0,34450874.0,33036293.0,36541626.0,37001627.0,39773916.0,43695499.0,42965499.0,42532625.0,42264542.0,41387374.0,40233957.0,41396709.0,40543251.0,41415543.0,43233459.0,43648251.0,48905541.0,49075499.0,48119748.0,49276625.0,48279419.0,48663000.0,49182417.0,47608792.0,46610332.0,48568792.0,48864791.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/100/base/tukey.json ================================================ [39.99037679764976,49.64306771897218,75.38357684249866,85.03626776382107] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/100/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.024499483171914638,"upper_bound":0.016473290595864755},"point_estimate":-0.0037378860139687387,"standard_error":0.010468802818836139},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.025996705799392616,"upper_bound":0.01954501800241289},"point_estimate":-0.003872919276450948,"standard_error":0.01174672868838376}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/100/new/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"FlexStr 0.10 (SharedStr)","value_str":"100","throughput":null,"full_id":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/100","directory_name":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/100","title":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/100"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/100/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":61.58104805055121,"upper_bound":63.22595789420465},"point_estimate":62.39194774608348,"standard_error":0.41997813883863633},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":61.15493950206419,"upper_bound":63.10598887202833},"point_estimate":62.02729167316088,"standard_error":0.45924836415716325},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.6815905624487923,"upper_bound":5.590731695726715},"point_estimate":4.741245908334975,"standard_error":0.498638123147318},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":62.144028894753326,"upper_bound":63.90921252826234},"point_estimate":63.03342531359788,"standard_error":0.44940809910953927},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.6261298290395403,"upper_bound":4.8406225658668705},"point_estimate":4.226052349393067,"standard_error":0.31243418121103983}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/100/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[7908.0,15816.0,23724.0,31632.0,39540.0,47448.0,55356.0,63264.0,71172.0,79080.0,86988.0,94896.0,102804.0,110712.0,118620.0,126528.0,134436.0,142344.0,150252.0,158160.0,166068.0,173976.0,181884.0,189792.0,197700.0,205608.0,213516.0,221424.0,229332.0,237240.0,245148.0,253056.0,260964.0,268872.0,276780.0,284688.0,292596.0,300504.0,308412.0,316320.0,324228.0,332136.0,340044.0,347952.0,355860.0,363768.0,371676.0,379584.0,387492.0,395400.0,403308.0,411216.0,419124.0,427032.0,434940.0,442848.0,450756.0,458664.0,466572.0,474480.0,482388.0,490296.0,498204.0,506112.0,514020.0,521928.0,529836.0,537744.0,545652.0,553560.0,561468.0,569376.0,577284.0,585192.0,593100.0,601008.0,608916.0,616824.0,624732.0,632640.0,640548.0,648456.0,656364.0,664272.0,672180.0,680088.0,687996.0,695904.0,703812.0,711720.0,719628.0,727536.0,735444.0,743352.0,751260.0,759168.0,767076.0,774984.0,782892.0,790800.0],"times":[454125.0,1222793.0,1302292.0,2161295.0,2228667.0,3149625.0,3042332.0,3842791.0,3933668.0,4714959.0,4723749.0,6310085.0,6506708.0,6785709.0,6935667.0,7222085.0,7521543.0,9137875.0,9871333.0,9888211.0,10338415.0,10754126.0,11163792.0,12407207.0,12439208.0,12687583.0,13706750.0,13042334.0,13854417.0,14574749.0,14743293.0,16973127.0,17185041.0,17286543.0,18568876.0,18665250.0,18154167.0,18277499.0,18029249.0,17676167.0,19130124.0,19756085.0,19829291.0,24517459.0,23865582.0,24010667.0,24846334.0,24077166.0,23720541.0,24530333.0,23290376.0,23201207.0,24863001.0,24966001.0,25361457.0,30478125.0,30424041.0,29935584.0,30827874.0,29832167.0,29392500.0,29034833.0,28517208.0,29024250.0,29539250.0,30485624.0,36282874.0,36801500.0,37282087.0,36439750.0,35790292.0,35055124.0,34357376.0,34450874.0,33036293.0,36541626.0,37001627.0,39773916.0,43695499.0,42965499.0,42532625.0,42264542.0,41387374.0,40233957.0,41396709.0,40543251.0,41415543.0,43233459.0,43648251.0,48905541.0,49075499.0,48119748.0,49276625.0,48279419.0,48663000.0,49182417.0,47608792.0,46610332.0,48568792.0,48864791.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/100/new/tukey.json ================================================ [39.99037679764976,49.64306771897218,75.38357684249866,85.03626776382107] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/100/report/index.html ================================================ Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/100 - Criterion.rs

Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/100

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 62.144 ns 63.033 ns 63.909 ns
0.6611154 0.6743074 0.6615085
Mean 61.581 ns 62.392 ns 63.226 ns
Std. Dev. 3.6261 ns 4.2261 ns 4.8406 ns
Median 61.155 ns 62.027 ns 63.106 ns
MAD 3.6816 ns 4.7412 ns 5.5907 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −2.4499% −0.3738% +1.6473% (p = 0.72 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/20/base/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"FlexStr 0.10 (SharedStr)","value_str":"20","throughput":null,"full_id":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/20","directory_name":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/20","title":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/20"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/20/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":39.07139938479099,"upper_bound":40.79905984195087},"point_estimate":39.91948104422559,"standard_error":0.43971046347748705},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":39.792352468007316,"upper_bound":41.324861709028724},"point_estimate":40.65419052230468,"standard_error":0.3575350096430883},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.6318009079986,"upper_bound":5.497417396230711},"point_estimate":3.9408591468547782,"standard_error":0.7586552090383926},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40.79726648394168,"upper_bound":42.305077490781706},"point_estimate":41.58030627610225,"standard_error":0.38435795412018814},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.5471530576721073,"upper_bound":5.45886415465909},"point_estimate":4.405059660979711,"standard_error":0.5151439107022624}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/20/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[13675.0,27350.0,41025.0,54700.0,68375.0,82050.0,95725.0,109400.0,123075.0,136750.0,150425.0,164100.0,177775.0,191450.0,205125.0,218800.0,232475.0,246150.0,259825.0,273500.0,287175.0,300850.0,314525.0,328200.0,341875.0,355550.0,369225.0,382900.0,396575.0,410250.0,423925.0,437600.0,451275.0,464950.0,478625.0,492300.0,505975.0,519650.0,533325.0,547000.0,560675.0,574350.0,588025.0,601700.0,615375.0,629050.0,642725.0,656400.0,670075.0,683750.0,697425.0,711100.0,724775.0,738450.0,752125.0,765800.0,779475.0,793150.0,806825.0,820500.0,834175.0,847850.0,861525.0,875200.0,888875.0,902550.0,916225.0,929900.0,943575.0,957250.0,970925.0,984600.0,998275.0,1011950.0,1025625.0,1039300.0,1052975.0,1066650.0,1080325.0,1094000.0,1107675.0,1121350.0,1135025.0,1148700.0,1162375.0,1176050.0,1189725.0,1203400.0,1217075.0,1230750.0,1244425.0,1258100.0,1271775.0,1285450.0,1299125.0,1312800.0,1326475.0,1340150.0,1353825.0,1367500.0],"times":[837333.0,902082.0,1358085.0,2262042.0,2382835.0,3214624.0,3709625.0,3756960.0,4076293.0,4593291.0,5007208.0,5542999.0,6309794.0,6442916.0,6826751.0,7260294.0,8274251.0,8648043.0,9067331.0,9050750.0,9480958.0,10082834.0,10527334.0,14807875.0,15049458.0,15166915.0,15525000.0,15314206.0,15743542.0,15555666.0,16362498.0,15780501.0,15842625.0,16022415.0,16428459.0,20194628.0,20966042.0,21574083.0,22156834.0,22130208.0,23038169.0,23150583.0,23807041.0,24379041.0,24828249.0,25977623.0,26137958.0,29423417.0,29240081.0,29280289.0,28923378.0,29318835.0,28504793.0,28483878.0,28975998.0,30955959.0,28472126.0,28992542.0,33066167.0,34442041.0,34155752.0,35012917.0,35848916.0,36400290.0,39887499.0,41370499.0,38959668.0,40455375.0,41613418.0,41173122.0,43132583.0,43531999.0,43613708.0,42753377.0,42684001.0,41818002.0,40970541.0,42018626.0,39989251.0,39762248.0,38716584.0,39324875.0,44708959.0,46815416.0,47290582.0,49706167.0,48351585.0,52813208.0,55996250.0,57109543.0,56335998.0,57489956.0,55712582.0,55518709.0,58525207.0,56757168.0,57619669.0,56046666.0,56506750.0,54416042.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/20/base/tukey.json ================================================ [17.431132218425518,26.852905745867236,51.97763515237848,61.399408679820205] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/20/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.05596129360898528,"upper_bound":0.01876693439980723},"point_estimate":-0.017337726285738264,"standard_error":0.019031294438906107},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.027105993959548047,"upper_bound":0.0251079481935772},"point_estimate":-0.0017561171151802002,"standard_error":0.01316248604741439}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/20/new/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"FlexStr 0.10 (SharedStr)","value_str":"20","throughput":null,"full_id":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/20","directory_name":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/20","title":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/20"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/20/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":39.07139938479099,"upper_bound":40.79905984195087},"point_estimate":39.91948104422559,"standard_error":0.43971046347748705},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":39.792352468007316,"upper_bound":41.324861709028724},"point_estimate":40.65419052230468,"standard_error":0.3575350096430883},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.6318009079986,"upper_bound":5.497417396230711},"point_estimate":3.9408591468547782,"standard_error":0.7586552090383926},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40.79726648394168,"upper_bound":42.305077490781706},"point_estimate":41.58030627610225,"standard_error":0.38435795412018814},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.5471530576721073,"upper_bound":5.45886415465909},"point_estimate":4.405059660979711,"standard_error":0.5151439107022624}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/20/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[13675.0,27350.0,41025.0,54700.0,68375.0,82050.0,95725.0,109400.0,123075.0,136750.0,150425.0,164100.0,177775.0,191450.0,205125.0,218800.0,232475.0,246150.0,259825.0,273500.0,287175.0,300850.0,314525.0,328200.0,341875.0,355550.0,369225.0,382900.0,396575.0,410250.0,423925.0,437600.0,451275.0,464950.0,478625.0,492300.0,505975.0,519650.0,533325.0,547000.0,560675.0,574350.0,588025.0,601700.0,615375.0,629050.0,642725.0,656400.0,670075.0,683750.0,697425.0,711100.0,724775.0,738450.0,752125.0,765800.0,779475.0,793150.0,806825.0,820500.0,834175.0,847850.0,861525.0,875200.0,888875.0,902550.0,916225.0,929900.0,943575.0,957250.0,970925.0,984600.0,998275.0,1011950.0,1025625.0,1039300.0,1052975.0,1066650.0,1080325.0,1094000.0,1107675.0,1121350.0,1135025.0,1148700.0,1162375.0,1176050.0,1189725.0,1203400.0,1217075.0,1230750.0,1244425.0,1258100.0,1271775.0,1285450.0,1299125.0,1312800.0,1326475.0,1340150.0,1353825.0,1367500.0],"times":[837333.0,902082.0,1358085.0,2262042.0,2382835.0,3214624.0,3709625.0,3756960.0,4076293.0,4593291.0,5007208.0,5542999.0,6309794.0,6442916.0,6826751.0,7260294.0,8274251.0,8648043.0,9067331.0,9050750.0,9480958.0,10082834.0,10527334.0,14807875.0,15049458.0,15166915.0,15525000.0,15314206.0,15743542.0,15555666.0,16362498.0,15780501.0,15842625.0,16022415.0,16428459.0,20194628.0,20966042.0,21574083.0,22156834.0,22130208.0,23038169.0,23150583.0,23807041.0,24379041.0,24828249.0,25977623.0,26137958.0,29423417.0,29240081.0,29280289.0,28923378.0,29318835.0,28504793.0,28483878.0,28975998.0,30955959.0,28472126.0,28992542.0,33066167.0,34442041.0,34155752.0,35012917.0,35848916.0,36400290.0,39887499.0,41370499.0,38959668.0,40455375.0,41613418.0,41173122.0,43132583.0,43531999.0,43613708.0,42753377.0,42684001.0,41818002.0,40970541.0,42018626.0,39989251.0,39762248.0,38716584.0,39324875.0,44708959.0,46815416.0,47290582.0,49706167.0,48351585.0,52813208.0,55996250.0,57109543.0,56335998.0,57489956.0,55712582.0,55518709.0,58525207.0,56757168.0,57619669.0,56046666.0,56506750.0,54416042.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/20/new/tukey.json ================================================ [17.431132218425518,26.852905745867236,51.97763515237848,61.399408679820205] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/20/report/index.html ================================================ Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/20 - Criterion.rs

Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/20

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 40.797 ns 41.580 ns 42.305 ns
0.5311909 0.5478005 0.5335087
Mean 39.071 ns 39.919 ns 40.799 ns
Std. Dev. 3.5472 ns 4.4051 ns 5.4589 ns
Median 39.792 ns 40.654 ns 41.325 ns
MAD 2.6318 ns 3.9409 ns 5.4974 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −5.5961% −1.7338% +1.8767% (p = 0.38 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/500/base/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"FlexStr 0.10 (SharedStr)","value_str":"500","throughput":null,"full_id":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/500","directory_name":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/500","title":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/500"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/500/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":100.34076999009623,"upper_bound":102.62135839784904},"point_estimate":101.54104776709625,"standard_error":0.5824977598106748},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":100.87207700745394,"upper_bound":103.57875481357003},"point_estimate":102.00655469726594,"standard_error":0.7194076489955507},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.0845483708128882,"upper_bound":5.159185642138225},"point_estimate":4.132181553183208,"standard_error":0.5256649864594751},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":103.57241697079786,"upper_bound":105.14144810551957},"point_estimate":104.3902770399939,"standard_error":0.39966897192214146},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.08934121888074,"upper_bound":7.438229016364029},"point_estimate":5.863161125504557,"standard_error":0.8522928397875672}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/500/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[4457.0,8914.0,13371.0,17828.0,22285.0,26742.0,31199.0,35656.0,40113.0,44570.0,49027.0,53484.0,57941.0,62398.0,66855.0,71312.0,75769.0,80226.0,84683.0,89140.0,93597.0,98054.0,102511.0,106968.0,111425.0,115882.0,120339.0,124796.0,129253.0,133710.0,138167.0,142624.0,147081.0,151538.0,155995.0,160452.0,164909.0,169366.0,173823.0,178280.0,182737.0,187194.0,191651.0,196108.0,200565.0,205022.0,209479.0,213936.0,218393.0,222850.0,227307.0,231764.0,236221.0,240678.0,245135.0,249592.0,254049.0,258506.0,262963.0,267420.0,271877.0,276334.0,280791.0,285248.0,289705.0,294162.0,298619.0,303076.0,307533.0,311990.0,316447.0,320904.0,325361.0,329818.0,334275.0,338732.0,343189.0,347646.0,352103.0,356560.0,361017.0,365474.0,369931.0,374388.0,378845.0,383302.0,387759.0,392216.0,396673.0,401130.0,405587.0,410044.0,414501.0,418958.0,423415.0,427872.0,432329.0,436786.0,441243.0,445700.0],"times":[357208.0,683667.0,1016126.0,1611915.0,2019167.0,2770623.0,3186917.0,3246208.0,3888083.0,4147541.0,4757712.0,5362832.0,5585876.0,6235209.0,6366458.0,6805584.0,7565502.0,7599082.0,8573959.0,8776708.0,9160041.0,9792331.0,10381916.0,11030460.0,11854833.0,12433751.0,12505750.0,13085167.0,13517627.0,13865794.0,14551542.0,14400833.0,14867251.0,15402624.0,16259792.0,15831627.0,16433916.0,17001045.0,17348708.0,17981707.0,17987294.0,18427208.0,19330792.0,20885165.0,20061414.0,21630501.0,21317666.0,21637582.0,22620875.0,22294249.0,23316417.0,23230334.0,24926999.0,24263664.0,25180041.0,25524250.0,26388126.0,26245543.0,26048332.0,26739834.0,27794251.0,27354042.0,28602792.0,30346958.0,31350292.0,31775918.0,32880292.0,32433791.0,32735374.0,33066874.0,33143042.0,32370253.0,32731294.0,34046540.0,35320875.0,35971750.0,34365917.0,34712583.0,35282042.0,35934708.0,36369501.0,37760917.0,38176958.0,39457625.0,39499916.0,40614000.0,41448751.0,40742876.0,42410750.0,42010125.0,42527125.0,43178456.0,44847249.0,44580542.0,45721166.0,46659793.0,45970541.0,47868623.0,47855790.0,47030915.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/500/base/tukey.json ================================================ [83.38574988373117,91.64862345070473,113.68295296263425,121.94582652960781] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/500/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0351917004211445,"upper_bound":-0.004337524698445727},"point_estimate":-0.01968680352104102,"standard_error":0.007912026403471441},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.03548429555325816,"upper_bound":-0.0044421606932788515},"point_estimate":-0.02034493229326817,"standard_error":0.007964510446884692}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/500/new/benchmark.json ================================================ {"group_id":"Import as borrowed, own and destroy","function_id":"FlexStr 0.10 (SharedStr)","value_str":"500","throughput":null,"full_id":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/500","directory_name":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/500","title":"Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/500"} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/500/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":100.34076999009623,"upper_bound":102.62135839784904},"point_estimate":101.54104776709625,"standard_error":0.5824977598106748},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":100.87207700745394,"upper_bound":103.57875481357003},"point_estimate":102.00655469726594,"standard_error":0.7194076489955507},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.0845483708128882,"upper_bound":5.159185642138225},"point_estimate":4.132181553183208,"standard_error":0.5256649864594751},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":103.57241697079786,"upper_bound":105.14144810551957},"point_estimate":104.3902770399939,"standard_error":0.39966897192214146},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.08934121888074,"upper_bound":7.438229016364029},"point_estimate":5.863161125504557,"standard_error":0.8522928397875672}} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/500/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[4457.0,8914.0,13371.0,17828.0,22285.0,26742.0,31199.0,35656.0,40113.0,44570.0,49027.0,53484.0,57941.0,62398.0,66855.0,71312.0,75769.0,80226.0,84683.0,89140.0,93597.0,98054.0,102511.0,106968.0,111425.0,115882.0,120339.0,124796.0,129253.0,133710.0,138167.0,142624.0,147081.0,151538.0,155995.0,160452.0,164909.0,169366.0,173823.0,178280.0,182737.0,187194.0,191651.0,196108.0,200565.0,205022.0,209479.0,213936.0,218393.0,222850.0,227307.0,231764.0,236221.0,240678.0,245135.0,249592.0,254049.0,258506.0,262963.0,267420.0,271877.0,276334.0,280791.0,285248.0,289705.0,294162.0,298619.0,303076.0,307533.0,311990.0,316447.0,320904.0,325361.0,329818.0,334275.0,338732.0,343189.0,347646.0,352103.0,356560.0,361017.0,365474.0,369931.0,374388.0,378845.0,383302.0,387759.0,392216.0,396673.0,401130.0,405587.0,410044.0,414501.0,418958.0,423415.0,427872.0,432329.0,436786.0,441243.0,445700.0],"times":[357208.0,683667.0,1016126.0,1611915.0,2019167.0,2770623.0,3186917.0,3246208.0,3888083.0,4147541.0,4757712.0,5362832.0,5585876.0,6235209.0,6366458.0,6805584.0,7565502.0,7599082.0,8573959.0,8776708.0,9160041.0,9792331.0,10381916.0,11030460.0,11854833.0,12433751.0,12505750.0,13085167.0,13517627.0,13865794.0,14551542.0,14400833.0,14867251.0,15402624.0,16259792.0,15831627.0,16433916.0,17001045.0,17348708.0,17981707.0,17987294.0,18427208.0,19330792.0,20885165.0,20061414.0,21630501.0,21317666.0,21637582.0,22620875.0,22294249.0,23316417.0,23230334.0,24926999.0,24263664.0,25180041.0,25524250.0,26388126.0,26245543.0,26048332.0,26739834.0,27794251.0,27354042.0,28602792.0,30346958.0,31350292.0,31775918.0,32880292.0,32433791.0,32735374.0,33066874.0,33143042.0,32370253.0,32731294.0,34046540.0,35320875.0,35971750.0,34365917.0,34712583.0,35282042.0,35934708.0,36369501.0,37760917.0,38176958.0,39457625.0,39499916.0,40614000.0,41448751.0,40742876.0,42410750.0,42010125.0,42527125.0,43178456.0,44847249.0,44580542.0,45721166.0,46659793.0,45970541.0,47868623.0,47855790.0,47030915.0]} ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/500/new/tukey.json ================================================ [83.38574988373117,91.64862345070473,113.68295296263425,121.94582652960781] ================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/500/report/index.html ================================================ Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/500 - Criterion.rs

Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/500

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 103.57 ns 104.39 ns 105.14 ns
0.8896281 0.8960092 0.8906203
Mean 100.34 ns 101.54 ns 102.62 ns
Std. Dev. 4.0893 ns 5.8632 ns 7.4382 ns
Median 100.87 ns 102.01 ns 103.58 ns
MAD 3.0845 ns 4.1322 ns 5.1592 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −3.5192% −1.9687% −0.4338% (p = 0.01 < 0.05)
Change within noise threshold.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/report/index.html ================================================ Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr) Summary - Criterion.rs

Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)

Violin Plot

Violin Plot

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

Line Chart

Line Chart

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

Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/0

PDF of Slope Regression

Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/10

PDF of Slope Regression

Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/20

PDF of Slope Regression

Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/100

PDF of Slope Regression

Import as borrowed, own and destroy/FlexStr 0.10 (SharedStr)/500

PDF of Slope Regression
================================================ FILE: docs/criterion/Import as borrowed, own and destroy/report/index.html ================================================ Import as borrowed, own and destroy Summary - Criterion.rs ================================================ FILE: docs/criterion/Import as owned and destroy/0/report/index.html ================================================ Import as owned and destroy/0 Summary - Criterion.rs ================================================ FILE: docs/criterion/Import as owned and destroy/10/report/index.html ================================================ Import as owned and destroy/10 Summary - Criterion.rs ================================================ FILE: docs/criterion/Import as owned and destroy/100/report/index.html ================================================ Import as owned and destroy/100 Summary - Criterion.rs ================================================ FILE: docs/criterion/Import as owned and destroy/20/report/index.html ================================================ Import as owned and destroy/20 Summary - Criterion.rs ================================================ FILE: docs/criterion/Import as owned and destroy/500/report/index.html ================================================ Import as owned and destroy/500 Summary - Criterion.rs ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/0/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Arc","value_str":"0","throughput":null,"full_id":"Import as owned and destroy/Arc/0","directory_name":"Import as owned and destroy/Arc_str_/0","title":"Import as owned and destroy/Arc/0"} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/0/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":23.397010840061018,"upper_bound":23.801539153088722},"point_estimate":23.5608399279269,"standard_error":0.10601007221345884},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":23.3228033417453,"upper_bound":23.40893607446129},"point_estimate":23.36534685384268,"standard_error":0.02373252233350628},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.15747972780429847,"upper_bound":0.29112922649655404},"point_estimate":0.22391094124423327,"standard_error":0.03479288659747457},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":23.327733989500402,"upper_bound":23.436149170324022},"point_estimate":23.380195603978116,"standard_error":0.02766552894619532},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.30876669476906893,"upper_bound":1.7197809585638912},"point_estimate":1.0649869750650733,"standard_error":0.42395686422916556}} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/0/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[35426.0,70852.0,106278.0,141704.0,177130.0,212556.0,247982.0,283408.0,318834.0,354260.0,389686.0,425112.0,460538.0,495964.0,531390.0,566816.0,602242.0,637668.0,673094.0,708520.0,743946.0,779372.0,814798.0,850224.0,885650.0,921076.0,956502.0,991928.0,1027354.0,1062780.0,1098206.0,1133632.0,1169058.0,1204484.0,1239910.0,1275336.0,1310762.0,1346188.0,1381614.0,1417040.0,1452466.0,1487892.0,1523318.0,1558744.0,1594170.0,1629596.0,1665022.0,1700448.0,1735874.0,1771300.0,1806726.0,1842152.0,1877578.0,1913004.0,1948430.0,1983856.0,2019282.0,2054708.0,2090134.0,2125560.0,2160986.0,2196412.0,2231838.0,2267264.0,2302690.0,2338116.0,2373542.0,2408968.0,2444394.0,2479820.0,2515246.0,2550672.0,2586098.0,2621524.0,2656950.0,2692376.0,2727802.0,2763228.0,2798654.0,2834080.0,2869506.0,2904932.0,2940358.0,2975784.0,3011210.0,3046636.0,3082062.0,3117488.0,3152914.0,3188340.0,3223766.0,3259192.0,3294618.0,3330044.0,3365470.0,3400896.0,3436322.0,3471748.0,3507174.0,3542600.0],"times":[1164001.0,1636085.0,2448791.0,3802960.0,4488875.0,4927458.0,5730960.0,6650207.0,7338625.0,8770042.0,9429126.0,10093625.0,10725668.0,11897625.0,12696335.0,13220791.0,13964042.0,14781417.0,15663752.0,16727834.0,17595167.0,18237750.0,18845044.0,19708211.0,20656706.0,21383208.0,22396084.0,23143457.0,24054666.0,24587334.0,25550501.0,26186083.0,27208209.0,28111459.0,28929164.0,29572917.0,32784499.0,32505082.0,32286168.0,33436168.0,33950998.0,34355917.0,35192792.0,36145915.0,36896751.0,38144916.0,39053750.0,39702125.0,41385708.0,40988128.0,41935709.0,43482165.0,43826665.0,44821038.0,45802459.0,46757040.0,47488499.0,47679085.0,48951000.0,49372750.0,50227708.0,51494291.0,52790541.0,53738498.0,54592083.0,54713833.0,55777000.0,55927418.0,57540666.0,59472709.0,58932583.0,59412126.0,60898458.0,61041748.0,61896460.0,63011501.0,63329377.0,65285790.0,65401209.0,66133710.0,66835375.0,67725417.0,68131791.0,69179291.0,71083750.0,71419249.0,72176375.0,72453667.0,73638749.0,74544500.0,75365124.0,76440165.0,77048750.0,78021791.0,77862249.0,79452585.0,81646582.0,80329667.0,80799749.0,81533166.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/0/base/tukey.json ================================================ [22.294963210675107,22.75551455288456,23.9836514654431,24.44420280765255] ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/0/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.01206829572246423,"upper_bound":0.015083504882094314},"point_estimate":0.0016386074513232707,"standard_error":0.006811451849769726},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.00005169862663423341,"upper_bound":0.005954637751608205},"point_estimate":0.0029975281630003625,"standard_error":0.0015027639545292229}} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/0/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Arc","value_str":"0","throughput":null,"full_id":"Import as owned and destroy/Arc/0","directory_name":"Import as owned and destroy/Arc_str_/0","title":"Import as owned and destroy/Arc/0"} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/0/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":23.397010840061018,"upper_bound":23.801539153088722},"point_estimate":23.5608399279269,"standard_error":0.10601007221345884},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":23.3228033417453,"upper_bound":23.40893607446129},"point_estimate":23.36534685384268,"standard_error":0.02373252233350628},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.15747972780429847,"upper_bound":0.29112922649655404},"point_estimate":0.22391094124423327,"standard_error":0.03479288659747457},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":23.327733989500402,"upper_bound":23.436149170324022},"point_estimate":23.380195603978116,"standard_error":0.02766552894619532},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.30876669476906893,"upper_bound":1.7197809585638912},"point_estimate":1.0649869750650733,"standard_error":0.42395686422916556}} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/0/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[35426.0,70852.0,106278.0,141704.0,177130.0,212556.0,247982.0,283408.0,318834.0,354260.0,389686.0,425112.0,460538.0,495964.0,531390.0,566816.0,602242.0,637668.0,673094.0,708520.0,743946.0,779372.0,814798.0,850224.0,885650.0,921076.0,956502.0,991928.0,1027354.0,1062780.0,1098206.0,1133632.0,1169058.0,1204484.0,1239910.0,1275336.0,1310762.0,1346188.0,1381614.0,1417040.0,1452466.0,1487892.0,1523318.0,1558744.0,1594170.0,1629596.0,1665022.0,1700448.0,1735874.0,1771300.0,1806726.0,1842152.0,1877578.0,1913004.0,1948430.0,1983856.0,2019282.0,2054708.0,2090134.0,2125560.0,2160986.0,2196412.0,2231838.0,2267264.0,2302690.0,2338116.0,2373542.0,2408968.0,2444394.0,2479820.0,2515246.0,2550672.0,2586098.0,2621524.0,2656950.0,2692376.0,2727802.0,2763228.0,2798654.0,2834080.0,2869506.0,2904932.0,2940358.0,2975784.0,3011210.0,3046636.0,3082062.0,3117488.0,3152914.0,3188340.0,3223766.0,3259192.0,3294618.0,3330044.0,3365470.0,3400896.0,3436322.0,3471748.0,3507174.0,3542600.0],"times":[1164001.0,1636085.0,2448791.0,3802960.0,4488875.0,4927458.0,5730960.0,6650207.0,7338625.0,8770042.0,9429126.0,10093625.0,10725668.0,11897625.0,12696335.0,13220791.0,13964042.0,14781417.0,15663752.0,16727834.0,17595167.0,18237750.0,18845044.0,19708211.0,20656706.0,21383208.0,22396084.0,23143457.0,24054666.0,24587334.0,25550501.0,26186083.0,27208209.0,28111459.0,28929164.0,29572917.0,32784499.0,32505082.0,32286168.0,33436168.0,33950998.0,34355917.0,35192792.0,36145915.0,36896751.0,38144916.0,39053750.0,39702125.0,41385708.0,40988128.0,41935709.0,43482165.0,43826665.0,44821038.0,45802459.0,46757040.0,47488499.0,47679085.0,48951000.0,49372750.0,50227708.0,51494291.0,52790541.0,53738498.0,54592083.0,54713833.0,55777000.0,55927418.0,57540666.0,59472709.0,58932583.0,59412126.0,60898458.0,61041748.0,61896460.0,63011501.0,63329377.0,65285790.0,65401209.0,66133710.0,66835375.0,67725417.0,68131791.0,69179291.0,71083750.0,71419249.0,72176375.0,72453667.0,73638749.0,74544500.0,75365124.0,76440165.0,77048750.0,78021791.0,77862249.0,79452585.0,81646582.0,80329667.0,80799749.0,81533166.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/0/new/tukey.json ================================================ [22.294963210675107,22.75551455288456,23.9836514654431,24.44420280765255] ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/0/report/index.html ================================================ Import as owned and destroy/Arc<str>/0 - Criterion.rs

Import as owned and destroy/Arc<str>/0

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 23.328 ns 23.380 ns 23.436 ns
0.9852770 0.9859986 0.9851779
Mean 23.397 ns 23.561 ns 23.802 ns
Std. Dev. 308.77 ps 1.0650 ns 1.7198 ns
Median 23.323 ns 23.365 ns 23.409 ns
MAD 157.48 ps 223.91 ps 291.13 ps

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −1.2068% +0.1639% +1.5084% (p = 0.82 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/10/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Arc","value_str":"10","throughput":null,"full_id":"Import as owned and destroy/Arc/10","directory_name":"Import as owned and destroy/Arc_str_/10","title":"Import as owned and destroy/Arc/10"} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/10/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":52.22060620492381,"upper_bound":53.72913320499839},"point_estimate":52.94457511301484,"standard_error":0.385532002875295},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":50.35864895597567,"upper_bound":52.15295130091536},"point_estimate":50.99963642193066,"standard_error":0.5083004265895688},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1.149586047401809,"upper_bound":3.726769538011217},"point_estimate":2.0421384500838204,"standard_error":0.694137226358955},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":53.72984915547746,"upper_bound":55.156733874906},"point_estimate":54.487170131964234,"standard_error":0.36434147356588004},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.090804293375686,"upper_bound":4.696282737801023},"point_estimate":3.863612133725707,"standard_error":0.4182344063220074}} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/10/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[11166.0,22332.0,33498.0,44664.0,55830.0,66996.0,78162.0,89328.0,100494.0,111660.0,122826.0,133992.0,145158.0,156324.0,167490.0,178656.0,189822.0,200988.0,212154.0,223320.0,234486.0,245652.0,256818.0,267984.0,279150.0,290316.0,301482.0,312648.0,323814.0,334980.0,346146.0,357312.0,368478.0,379644.0,390810.0,401976.0,413142.0,424308.0,435474.0,446640.0,457806.0,468972.0,480138.0,491304.0,502470.0,513636.0,524802.0,535968.0,547134.0,558300.0,569466.0,580632.0,591798.0,602964.0,614130.0,625296.0,636462.0,647628.0,658794.0,669960.0,681126.0,692292.0,703458.0,714624.0,725790.0,736956.0,748122.0,759288.0,770454.0,781620.0,792786.0,803952.0,815118.0,826284.0,837450.0,848616.0,859782.0,870948.0,882114.0,893280.0,904446.0,915612.0,926778.0,937944.0,949110.0,960276.0,971442.0,982608.0,993774.0,1004940.0,1016106.0,1027272.0,1038438.0,1049604.0,1060770.0,1071936.0,1083102.0,1094268.0,1105434.0,1116600.0],"times":[574875.0,1569418.0,1669999.0,2237749.0,3574126.0,3348708.0,4433832.0,4453708.0,4946667.0,5606791.0,6067585.0,6924625.0,7603043.0,7757250.0,8642168.0,9389917.0,9544207.0,10128333.0,10639374.0,11182666.0,11724583.0,12216914.0,12717542.0,13499832.0,13827540.0,14661753.0,14947750.0,15726874.0,16049374.0,17043000.0,17366750.0,17791416.0,18543498.0,19073836.0,19408874.0,20458916.0,20432085.0,20998374.0,21615751.0,22309375.0,22899792.0,23553708.0,24054124.0,24397167.0,25060165.0,25834416.0,26393499.0,26587790.0,27601834.0,28369375.0,28754500.0,29065961.0,29448833.0,30457667.0,30650167.0,31410415.0,31413792.0,39790540.0,39246168.0,39817502.0,39633709.0,41003793.0,40126000.0,41319084.0,42073250.0,41410792.0,42204832.0,42269666.0,42720834.0,43436331.0,43893875.0,46250000.0,43897084.0,44661334.0,44890126.0,45840044.0,45803292.0,46291457.0,45998165.0,46332500.0,46966250.0,47067416.0,47832625.0,48028542.0,48459752.0,48917587.0,56227167.0,56762416.0,56401584.0,57272582.0,58797875.0,57653166.0,59493042.0,59015957.0,60304999.0,61120750.0,60981459.0,61869708.0,62449293.0,62768416.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/10/base/tukey.json ================================================ [31.54688520860752,40.7982262956406,65.46846919439548,74.71981028142855] ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/10/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.05385751070060856,"upper_bound":0.011096012690110313},"point_estimate":-0.017407430220112374,"standard_error":0.01675263510722102},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.042027733686001545,"upper_bound":0.01377139875711575},"point_estimate":-0.0162993300256441,"standard_error":0.014199185778030208}} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/10/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Arc","value_str":"10","throughput":null,"full_id":"Import as owned and destroy/Arc/10","directory_name":"Import as owned and destroy/Arc_str_/10","title":"Import as owned and destroy/Arc/10"} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/10/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":52.22060620492381,"upper_bound":53.72913320499839},"point_estimate":52.94457511301484,"standard_error":0.385532002875295},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":50.35864895597567,"upper_bound":52.15295130091536},"point_estimate":50.99963642193066,"standard_error":0.5083004265895688},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1.149586047401809,"upper_bound":3.726769538011217},"point_estimate":2.0421384500838204,"standard_error":0.694137226358955},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":53.72984915547746,"upper_bound":55.156733874906},"point_estimate":54.487170131964234,"standard_error":0.36434147356588004},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.090804293375686,"upper_bound":4.696282737801023},"point_estimate":3.863612133725707,"standard_error":0.4182344063220074}} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/10/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[11166.0,22332.0,33498.0,44664.0,55830.0,66996.0,78162.0,89328.0,100494.0,111660.0,122826.0,133992.0,145158.0,156324.0,167490.0,178656.0,189822.0,200988.0,212154.0,223320.0,234486.0,245652.0,256818.0,267984.0,279150.0,290316.0,301482.0,312648.0,323814.0,334980.0,346146.0,357312.0,368478.0,379644.0,390810.0,401976.0,413142.0,424308.0,435474.0,446640.0,457806.0,468972.0,480138.0,491304.0,502470.0,513636.0,524802.0,535968.0,547134.0,558300.0,569466.0,580632.0,591798.0,602964.0,614130.0,625296.0,636462.0,647628.0,658794.0,669960.0,681126.0,692292.0,703458.0,714624.0,725790.0,736956.0,748122.0,759288.0,770454.0,781620.0,792786.0,803952.0,815118.0,826284.0,837450.0,848616.0,859782.0,870948.0,882114.0,893280.0,904446.0,915612.0,926778.0,937944.0,949110.0,960276.0,971442.0,982608.0,993774.0,1004940.0,1016106.0,1027272.0,1038438.0,1049604.0,1060770.0,1071936.0,1083102.0,1094268.0,1105434.0,1116600.0],"times":[574875.0,1569418.0,1669999.0,2237749.0,3574126.0,3348708.0,4433832.0,4453708.0,4946667.0,5606791.0,6067585.0,6924625.0,7603043.0,7757250.0,8642168.0,9389917.0,9544207.0,10128333.0,10639374.0,11182666.0,11724583.0,12216914.0,12717542.0,13499832.0,13827540.0,14661753.0,14947750.0,15726874.0,16049374.0,17043000.0,17366750.0,17791416.0,18543498.0,19073836.0,19408874.0,20458916.0,20432085.0,20998374.0,21615751.0,22309375.0,22899792.0,23553708.0,24054124.0,24397167.0,25060165.0,25834416.0,26393499.0,26587790.0,27601834.0,28369375.0,28754500.0,29065961.0,29448833.0,30457667.0,30650167.0,31410415.0,31413792.0,39790540.0,39246168.0,39817502.0,39633709.0,41003793.0,40126000.0,41319084.0,42073250.0,41410792.0,42204832.0,42269666.0,42720834.0,43436331.0,43893875.0,46250000.0,43897084.0,44661334.0,44890126.0,45840044.0,45803292.0,46291457.0,45998165.0,46332500.0,46966250.0,47067416.0,47832625.0,48028542.0,48459752.0,48917587.0,56227167.0,56762416.0,56401584.0,57272582.0,58797875.0,57653166.0,59493042.0,59015957.0,60304999.0,61120750.0,60981459.0,61869708.0,62449293.0,62768416.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/10/new/tukey.json ================================================ [31.54688520860752,40.7982262956406,65.46846919439548,74.71981028142855] ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/10/report/index.html ================================================ Import as owned and destroy/Arc<str>/10 - Criterion.rs

Import as owned and destroy/Arc<str>/10

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 53.730 ns 54.487 ns 55.157 ns
0.7134381 0.7253439 0.7160040
Mean 52.221 ns 52.945 ns 53.729 ns
Std. Dev. 3.0908 ns 3.8636 ns 4.6963 ns
Median 50.359 ns 51.000 ns 52.153 ns
MAD 1.1496 ns 2.0421 ns 3.7268 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −5.3858% −1.7407% +1.1096% (p = 0.35 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/100/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Arc","value_str":"100","throughput":null,"full_id":"Import as owned and destroy/Arc/100","directory_name":"Import as owned and destroy/Arc_str_/100","title":"Import as owned and destroy/Arc/100"} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/100/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":60.688667524340275,"upper_bound":62.43857270669618},"point_estimate":61.54586075570924,"standard_error":0.4453469596282505},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":60.48625306962235,"upper_bound":62.27601786627492},"point_estimate":61.39359696307673,"standard_error":0.46919222180469267},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.4457049089994034,"upper_bound":5.646776497389735},"point_estimate":4.738720231680037,"standard_error":0.5780157399755508},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":61.256792007138046,"upper_bound":62.88196750292118},"point_estimate":62.07229937205682,"standard_error":0.41567403859168817},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.623661619260953,"upper_bound":5.449152510698892},"point_estimate":4.475968449082917,"standard_error":0.47817646143335235}} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/100/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[7904.0,15808.0,23712.0,31616.0,39520.0,47424.0,55328.0,63232.0,71136.0,79040.0,86944.0,94848.0,102752.0,110656.0,118560.0,126464.0,134368.0,142272.0,150176.0,158080.0,165984.0,173888.0,181792.0,189696.0,197600.0,205504.0,213408.0,221312.0,229216.0,237120.0,245024.0,252928.0,260832.0,268736.0,276640.0,284544.0,292448.0,300352.0,308256.0,316160.0,324064.0,331968.0,339872.0,347776.0,355680.0,363584.0,371488.0,379392.0,387296.0,395200.0,403104.0,411008.0,418912.0,426816.0,434720.0,442624.0,450528.0,458432.0,466336.0,474240.0,482144.0,490048.0,497952.0,505856.0,513760.0,521664.0,529568.0,537472.0,545376.0,553280.0,561184.0,569088.0,576992.0,584896.0,592800.0,600704.0,608608.0,616512.0,624416.0,632320.0,640224.0,648128.0,656032.0,663936.0,671840.0,679744.0,687648.0,695552.0,703456.0,711360.0,719264.0,727168.0,735072.0,742976.0,750880.0,758784.0,766688.0,774592.0,782496.0,790400.0],"times":[438250.0,1292543.0,1283999.0,1718085.0,2611666.0,3114793.0,3190542.0,3344126.0,3780666.0,4197457.0,4586622.0,6436460.0,6536333.0,7260626.0,6916499.0,7127749.0,7676626.0,8941710.0,9320539.0,9925169.0,10204876.0,10871249.0,11074999.0,12258583.0,12205210.0,12738499.0,12267875.0,12486290.0,13362294.0,14457125.0,14916708.0,16498292.0,16925917.0,17148666.0,18609419.0,18369417.0,18168332.0,18160833.0,18349875.0,18253999.0,18983625.0,19707999.0,20926999.0,23629374.0,23508623.0,23498790.0,24626750.0,23936749.0,23796042.0,23461334.0,23177833.0,23141751.0,24066499.0,24506542.0,25103836.0,29854082.0,30079168.0,30009416.0,30467125.0,29938250.0,29163084.0,28624417.0,28050458.0,28935044.0,29474499.0,29879625.0,37024168.0,36701083.0,35648249.0,35371625.0,35640374.0,34702042.0,34205582.0,33471543.0,33667625.0,35729086.0,36452127.0,36095418.0,43183459.0,42529750.0,42271124.0,40347791.0,40115958.0,40067833.0,41214500.0,40320751.0,42021750.0,42313544.0,42976082.0,42444125.0,48472748.0,48408333.0,47348417.0,48332876.0,47182708.0,47679959.0,47779084.0,46163667.0,48697250.0,48964540.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/100/base/tukey.json ================================================ [39.43496415973124,48.881015711898286,74.07048651767708,83.51653806984413] ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/100/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.005249040700065012,"upper_bound":0.03511780443124523},"point_estimate":0.014581877902558604,"standard_error":0.010358470956016748},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.01136880507726612,"upper_bound":0.03755182941389301},"point_estimate":0.011639821076777856,"standard_error":0.012204930274222972}} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/100/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Arc","value_str":"100","throughput":null,"full_id":"Import as owned and destroy/Arc/100","directory_name":"Import as owned and destroy/Arc_str_/100","title":"Import as owned and destroy/Arc/100"} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/100/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":60.688667524340275,"upper_bound":62.43857270669618},"point_estimate":61.54586075570924,"standard_error":0.4453469596282505},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":60.48625306962235,"upper_bound":62.27601786627492},"point_estimate":61.39359696307673,"standard_error":0.46919222180469267},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.4457049089994034,"upper_bound":5.646776497389735},"point_estimate":4.738720231680037,"standard_error":0.5780157399755508},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":61.256792007138046,"upper_bound":62.88196750292118},"point_estimate":62.07229937205682,"standard_error":0.41567403859168817},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.623661619260953,"upper_bound":5.449152510698892},"point_estimate":4.475968449082917,"standard_error":0.47817646143335235}} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/100/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[7904.0,15808.0,23712.0,31616.0,39520.0,47424.0,55328.0,63232.0,71136.0,79040.0,86944.0,94848.0,102752.0,110656.0,118560.0,126464.0,134368.0,142272.0,150176.0,158080.0,165984.0,173888.0,181792.0,189696.0,197600.0,205504.0,213408.0,221312.0,229216.0,237120.0,245024.0,252928.0,260832.0,268736.0,276640.0,284544.0,292448.0,300352.0,308256.0,316160.0,324064.0,331968.0,339872.0,347776.0,355680.0,363584.0,371488.0,379392.0,387296.0,395200.0,403104.0,411008.0,418912.0,426816.0,434720.0,442624.0,450528.0,458432.0,466336.0,474240.0,482144.0,490048.0,497952.0,505856.0,513760.0,521664.0,529568.0,537472.0,545376.0,553280.0,561184.0,569088.0,576992.0,584896.0,592800.0,600704.0,608608.0,616512.0,624416.0,632320.0,640224.0,648128.0,656032.0,663936.0,671840.0,679744.0,687648.0,695552.0,703456.0,711360.0,719264.0,727168.0,735072.0,742976.0,750880.0,758784.0,766688.0,774592.0,782496.0,790400.0],"times":[438250.0,1292543.0,1283999.0,1718085.0,2611666.0,3114793.0,3190542.0,3344126.0,3780666.0,4197457.0,4586622.0,6436460.0,6536333.0,7260626.0,6916499.0,7127749.0,7676626.0,8941710.0,9320539.0,9925169.0,10204876.0,10871249.0,11074999.0,12258583.0,12205210.0,12738499.0,12267875.0,12486290.0,13362294.0,14457125.0,14916708.0,16498292.0,16925917.0,17148666.0,18609419.0,18369417.0,18168332.0,18160833.0,18349875.0,18253999.0,18983625.0,19707999.0,20926999.0,23629374.0,23508623.0,23498790.0,24626750.0,23936749.0,23796042.0,23461334.0,23177833.0,23141751.0,24066499.0,24506542.0,25103836.0,29854082.0,30079168.0,30009416.0,30467125.0,29938250.0,29163084.0,28624417.0,28050458.0,28935044.0,29474499.0,29879625.0,37024168.0,36701083.0,35648249.0,35371625.0,35640374.0,34702042.0,34205582.0,33471543.0,33667625.0,35729086.0,36452127.0,36095418.0,43183459.0,42529750.0,42271124.0,40347791.0,40115958.0,40067833.0,41214500.0,40320751.0,42021750.0,42313544.0,42976082.0,42444125.0,48472748.0,48408333.0,47348417.0,48332876.0,47182708.0,47679959.0,47779084.0,46163667.0,48697250.0,48964540.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/100/new/tukey.json ================================================ [39.43496415973124,48.881015711898286,74.07048651767708,83.51653806984413] ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/100/report/index.html ================================================ Import as owned and destroy/Arc<str>/100 - Criterion.rs

Import as owned and destroy/Arc<str>/100

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 61.257 ns 62.072 ns 62.882 ns
0.6982051 0.7100532 0.6983714
Mean 60.689 ns 61.546 ns 62.439 ns
Std. Dev. 3.6237 ns 4.4760 ns 5.4492 ns
Median 60.486 ns 61.394 ns 62.276 ns
MAD 3.4457 ns 4.7387 ns 5.6468 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.5249% +1.4582% +3.5118% (p = 0.15 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/20/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Arc","value_str":"20","throughput":null,"full_id":"Import as owned and destroy/Arc/20","directory_name":"Import as owned and destroy/Arc_str_/20","title":"Import as owned and destroy/Arc/20"} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/20/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":56.99882054303447,"upper_bound":58.39455439160427},"point_estimate":57.68579190255569,"standard_error":0.35590834276001104},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":56.79322381930185,"upper_bound":58.752749828884326},"point_estimate":58.05280180459985,"standard_error":0.5492003091837233},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.8506463691106387,"upper_bound":5.2499245212653385},"point_estimate":4.090593766870941,"standard_error":0.5967144899204374},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":58.5586585879374,"upper_bound":59.875893380948455},"point_estimate":59.238566628605,"standard_error":0.33589586134984284},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.033497218115003,"upper_bound":4.207103682230954},"point_estimate":3.5791759691835177,"standard_error":0.30706214713460106}} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/20/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[9740.0,19480.0,29220.0,38960.0,48700.0,58440.0,68180.0,77920.0,87660.0,97400.0,107140.0,116880.0,126620.0,136360.0,146100.0,155840.0,165580.0,175320.0,185060.0,194800.0,204540.0,214280.0,224020.0,233760.0,243500.0,253240.0,262980.0,272720.0,282460.0,292200.0,301940.0,311680.0,321420.0,331160.0,340900.0,350640.0,360380.0,370120.0,379860.0,389600.0,399340.0,409080.0,418820.0,428560.0,438300.0,448040.0,457780.0,467520.0,477260.0,487000.0,496740.0,506480.0,516220.0,525960.0,535700.0,545440.0,555180.0,564920.0,574660.0,584400.0,594140.0,603880.0,613620.0,623360.0,633100.0,642840.0,652580.0,662320.0,672060.0,681800.0,691540.0,701280.0,711020.0,720760.0,730500.0,740240.0,749980.0,759720.0,769460.0,779200.0,788940.0,798680.0,808420.0,818160.0,827900.0,837640.0,847380.0,857120.0,866860.0,876600.0,886340.0,896080.0,905820.0,915560.0,925300.0,935040.0,944780.0,954520.0,964260.0,974000.0],"times":[553166.0,1407333.0,1543543.0,2156749.0,2650084.0,3245127.0,3586874.0,4985539.0,5000041.0,5212459.0,5607418.0,6259331.0,6746501.0,7318293.0,7701876.0,8216458.0,8982957.0,9277417.0,9764751.0,10712584.0,10760834.0,11689083.0,12124335.0,12690791.0,13148583.0,13430623.0,14129169.0,14605667.0,15120877.0,16168998.0,15982375.0,16633790.0,17169334.0,20715542.0,20882957.0,21727710.0,22505749.0,22067792.0,22690376.0,22636457.0,23310419.0,23397083.0,23772458.0,23989209.0,24237580.0,24460208.0,25609750.0,24933707.0,25966002.0,28671752.0,29815458.0,30358332.0,31037668.0,31257625.0,31807873.0,32795375.0,33493209.0,33932833.0,33964875.0,34300582.0,34884876.0,35966789.0,36042625.0,37390958.0,37452127.0,38530501.0,41000331.0,41283167.0,41672250.0,41465167.0,41094333.0,41924916.0,42057417.0,42212083.0,42962040.0,42077248.0,42722251.0,43474789.0,43376669.0,42896000.0,43933457.0,43963082.0,47064207.0,47460000.0,47892293.0,48376499.0,49196583.0,49754374.0,50422291.0,51198545.0,56394709.0,55814917.0,56381042.0,57015249.0,57866625.0,58259248.0,58229210.0,58688042.0,57597377.0,61658665.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/20/base/tukey.json ================================================ [37.804090967540276,46.10903737498248,68.25556112816167,76.56050753560388] ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/20/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.023182980187090252,"upper_bound":0.011271694652966988},"point_estimate":-0.006072608355940146,"standard_error":0.008760055582803121},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.04075206772035045,"upper_bound":0.014487752842098356},"point_estimate":-0.01025962276954473,"standard_error":0.013846433651807094}} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/20/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Arc","value_str":"20","throughput":null,"full_id":"Import as owned and destroy/Arc/20","directory_name":"Import as owned and destroy/Arc_str_/20","title":"Import as owned and destroy/Arc/20"} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/20/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":56.99882054303447,"upper_bound":58.39455439160427},"point_estimate":57.68579190255569,"standard_error":0.35590834276001104},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":56.79322381930185,"upper_bound":58.752749828884326},"point_estimate":58.05280180459985,"standard_error":0.5492003091837233},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.8506463691106387,"upper_bound":5.2499245212653385},"point_estimate":4.090593766870941,"standard_error":0.5967144899204374},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":58.5586585879374,"upper_bound":59.875893380948455},"point_estimate":59.238566628605,"standard_error":0.33589586134984284},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.033497218115003,"upper_bound":4.207103682230954},"point_estimate":3.5791759691835177,"standard_error":0.30706214713460106}} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/20/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[9740.0,19480.0,29220.0,38960.0,48700.0,58440.0,68180.0,77920.0,87660.0,97400.0,107140.0,116880.0,126620.0,136360.0,146100.0,155840.0,165580.0,175320.0,185060.0,194800.0,204540.0,214280.0,224020.0,233760.0,243500.0,253240.0,262980.0,272720.0,282460.0,292200.0,301940.0,311680.0,321420.0,331160.0,340900.0,350640.0,360380.0,370120.0,379860.0,389600.0,399340.0,409080.0,418820.0,428560.0,438300.0,448040.0,457780.0,467520.0,477260.0,487000.0,496740.0,506480.0,516220.0,525960.0,535700.0,545440.0,555180.0,564920.0,574660.0,584400.0,594140.0,603880.0,613620.0,623360.0,633100.0,642840.0,652580.0,662320.0,672060.0,681800.0,691540.0,701280.0,711020.0,720760.0,730500.0,740240.0,749980.0,759720.0,769460.0,779200.0,788940.0,798680.0,808420.0,818160.0,827900.0,837640.0,847380.0,857120.0,866860.0,876600.0,886340.0,896080.0,905820.0,915560.0,925300.0,935040.0,944780.0,954520.0,964260.0,974000.0],"times":[553166.0,1407333.0,1543543.0,2156749.0,2650084.0,3245127.0,3586874.0,4985539.0,5000041.0,5212459.0,5607418.0,6259331.0,6746501.0,7318293.0,7701876.0,8216458.0,8982957.0,9277417.0,9764751.0,10712584.0,10760834.0,11689083.0,12124335.0,12690791.0,13148583.0,13430623.0,14129169.0,14605667.0,15120877.0,16168998.0,15982375.0,16633790.0,17169334.0,20715542.0,20882957.0,21727710.0,22505749.0,22067792.0,22690376.0,22636457.0,23310419.0,23397083.0,23772458.0,23989209.0,24237580.0,24460208.0,25609750.0,24933707.0,25966002.0,28671752.0,29815458.0,30358332.0,31037668.0,31257625.0,31807873.0,32795375.0,33493209.0,33932833.0,33964875.0,34300582.0,34884876.0,35966789.0,36042625.0,37390958.0,37452127.0,38530501.0,41000331.0,41283167.0,41672250.0,41465167.0,41094333.0,41924916.0,42057417.0,42212083.0,42962040.0,42077248.0,42722251.0,43474789.0,43376669.0,42896000.0,43933457.0,43963082.0,47064207.0,47460000.0,47892293.0,48376499.0,49196583.0,49754374.0,50422291.0,51198545.0,56394709.0,55814917.0,56381042.0,57015249.0,57866625.0,58259248.0,58229210.0,58688042.0,57597377.0,61658665.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/20/new/tukey.json ================================================ [37.804090967540276,46.10903737498248,68.25556112816167,76.56050753560388] ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/20/report/index.html ================================================ Import as owned and destroy/Arc<str>/20 - Criterion.rs

Import as owned and destroy/Arc<str>/20

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 58.559 ns 59.239 ns 59.876 ns
0.8227470 0.8321945 0.8238819
Mean 56.999 ns 57.686 ns 58.395 ns
Std. Dev. 3.0335 ns 3.5792 ns 4.2071 ns
Median 56.793 ns 58.053 ns 58.753 ns
MAD 2.8506 ns 4.0906 ns 5.2499 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −2.3183% −0.6073% +1.1272% (p = 0.49 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/500/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Arc","value_str":"500","throughput":null,"full_id":"Import as owned and destroy/Arc/500","directory_name":"Import as owned and destroy/Arc_str_/500","title":"Import as owned and destroy/Arc/500"} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/500/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":100.35863267481878,"upper_bound":102.78806647282667},"point_estimate":101.63020679588699,"standard_error":0.6207803657736525},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":101.19863152037263,"upper_bound":103.7391823471624},"point_estimate":102.66324122307326,"standard_error":0.7371833072300654},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.3011100732700913,"upper_bound":5.163160244301159},"point_estimate":4.1065360090050245,"standard_error":0.4677870455751196},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":104.21994120182241,"upper_bound":105.89517312348197},"point_estimate":105.09220976603187,"standard_error":0.428088024024974},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.4306442793803695,"upper_bound":7.806554463670714},"point_estimate":6.234695995922934,"standard_error":0.8639777548208202}} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/500/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[4411.0,8822.0,13233.0,17644.0,22055.0,26466.0,30877.0,35288.0,39699.0,44110.0,48521.0,52932.0,57343.0,61754.0,66165.0,70576.0,74987.0,79398.0,83809.0,88220.0,92631.0,97042.0,101453.0,105864.0,110275.0,114686.0,119097.0,123508.0,127919.0,132330.0,136741.0,141152.0,145563.0,149974.0,154385.0,158796.0,163207.0,167618.0,172029.0,176440.0,180851.0,185262.0,189673.0,194084.0,198495.0,202906.0,207317.0,211728.0,216139.0,220550.0,224961.0,229372.0,233783.0,238194.0,242605.0,247016.0,251427.0,255838.0,260249.0,264660.0,269071.0,273482.0,277893.0,282304.0,286715.0,291126.0,295537.0,299948.0,304359.0,308770.0,313181.0,317592.0,322003.0,326414.0,330825.0,335236.0,339647.0,344058.0,348469.0,352880.0,357291.0,361702.0,366113.0,370524.0,374935.0,379346.0,383757.0,388168.0,392579.0,396990.0,401401.0,405812.0,410223.0,414634.0,419045.0,423456.0,427867.0,432278.0,436689.0,441100.0],"times":[350751.0,675042.0,1012583.0,1557125.0,1825001.0,2615333.0,3348292.0,3416416.0,3554334.0,4614001.0,4908833.0,5377125.0,5949417.0,6259710.0,6465332.0,7015376.0,7336209.0,7646084.0,8581168.0,8749540.0,9230042.0,9767833.0,10150583.0,10551123.0,10963710.0,11336541.0,11544333.0,12550168.0,12861916.0,13079041.0,14187377.0,13745749.0,14054166.0,14676457.0,15185041.0,15764168.0,15661084.0,16273334.0,17275876.0,17638708.0,17500750.0,18458833.0,19012251.0,19460208.0,20591709.0,20696418.0,22646542.0,22164126.0,22746042.0,22127165.0,24294875.0,24200959.0,24912335.0,24655959.0,24551294.0,25080917.0,25891208.0,26342833.0,26235208.0,27644125.0,27989500.0,28587874.0,29447291.0,29424543.0,30084792.0,30553332.0,31088958.0,30791459.0,31448375.0,31929040.0,32448832.0,31905501.0,32845500.0,33513086.0,34482540.0,34694003.0,34560960.0,36901252.0,36681085.0,37238416.0,37307040.0,36558668.0,38420501.0,39119376.0,39435956.0,39268376.0,40877500.0,41084958.0,41652166.0,42930960.0,42084125.0,43671748.0,43794001.0,45545875.0,45700291.0,46216542.0,47399292.0,47316459.0,48668417.0,47790207.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/500/base/tukey.json ================================================ [82.77778159301695,91.18022131760833,113.58672724985198,121.98916697444334] ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/500/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.023061606770148686,"upper_bound":0.016894059378603943},"point_estimate":-0.0030764869462255318,"standard_error":0.01022434492247875},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.009081012062226668,"upper_bound":0.04118767628218212},"point_estimate":0.023927625553058496,"standard_error":0.013732260279737719}} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/500/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Arc","value_str":"500","throughput":null,"full_id":"Import as owned and destroy/Arc/500","directory_name":"Import as owned and destroy/Arc_str_/500","title":"Import as owned and destroy/Arc/500"} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/500/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":100.35863267481878,"upper_bound":102.78806647282667},"point_estimate":101.63020679588699,"standard_error":0.6207803657736525},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":101.19863152037263,"upper_bound":103.7391823471624},"point_estimate":102.66324122307326,"standard_error":0.7371833072300654},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.3011100732700913,"upper_bound":5.163160244301159},"point_estimate":4.1065360090050245,"standard_error":0.4677870455751196},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":104.21994120182241,"upper_bound":105.89517312348197},"point_estimate":105.09220976603187,"standard_error":0.428088024024974},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.4306442793803695,"upper_bound":7.806554463670714},"point_estimate":6.234695995922934,"standard_error":0.8639777548208202}} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/500/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[4411.0,8822.0,13233.0,17644.0,22055.0,26466.0,30877.0,35288.0,39699.0,44110.0,48521.0,52932.0,57343.0,61754.0,66165.0,70576.0,74987.0,79398.0,83809.0,88220.0,92631.0,97042.0,101453.0,105864.0,110275.0,114686.0,119097.0,123508.0,127919.0,132330.0,136741.0,141152.0,145563.0,149974.0,154385.0,158796.0,163207.0,167618.0,172029.0,176440.0,180851.0,185262.0,189673.0,194084.0,198495.0,202906.0,207317.0,211728.0,216139.0,220550.0,224961.0,229372.0,233783.0,238194.0,242605.0,247016.0,251427.0,255838.0,260249.0,264660.0,269071.0,273482.0,277893.0,282304.0,286715.0,291126.0,295537.0,299948.0,304359.0,308770.0,313181.0,317592.0,322003.0,326414.0,330825.0,335236.0,339647.0,344058.0,348469.0,352880.0,357291.0,361702.0,366113.0,370524.0,374935.0,379346.0,383757.0,388168.0,392579.0,396990.0,401401.0,405812.0,410223.0,414634.0,419045.0,423456.0,427867.0,432278.0,436689.0,441100.0],"times":[350751.0,675042.0,1012583.0,1557125.0,1825001.0,2615333.0,3348292.0,3416416.0,3554334.0,4614001.0,4908833.0,5377125.0,5949417.0,6259710.0,6465332.0,7015376.0,7336209.0,7646084.0,8581168.0,8749540.0,9230042.0,9767833.0,10150583.0,10551123.0,10963710.0,11336541.0,11544333.0,12550168.0,12861916.0,13079041.0,14187377.0,13745749.0,14054166.0,14676457.0,15185041.0,15764168.0,15661084.0,16273334.0,17275876.0,17638708.0,17500750.0,18458833.0,19012251.0,19460208.0,20591709.0,20696418.0,22646542.0,22164126.0,22746042.0,22127165.0,24294875.0,24200959.0,24912335.0,24655959.0,24551294.0,25080917.0,25891208.0,26342833.0,26235208.0,27644125.0,27989500.0,28587874.0,29447291.0,29424543.0,30084792.0,30553332.0,31088958.0,30791459.0,31448375.0,31929040.0,32448832.0,31905501.0,32845500.0,33513086.0,34482540.0,34694003.0,34560960.0,36901252.0,36681085.0,37238416.0,37307040.0,36558668.0,38420501.0,39119376.0,39435956.0,39268376.0,40877500.0,41084958.0,41652166.0,42930960.0,42084125.0,43671748.0,43794001.0,45545875.0,45700291.0,46216542.0,47399292.0,47316459.0,48668417.0,47790207.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/500/new/tukey.json ================================================ [82.77778159301695,91.18022131760833,113.58672724985198,121.98916697444334] ================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/500/report/index.html ================================================ Import as owned and destroy/Arc<str>/500 - Criterion.rs

Import as owned and destroy/Arc<str>/500

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 104.22 ns 105.09 ns 105.90 ns
0.8869550 0.8935113 0.8879492
Mean 100.36 ns 101.63 ns 102.79 ns
Std. Dev. 4.4306 ns 6.2347 ns 7.8066 ns
Median 101.20 ns 102.66 ns 103.74 ns
MAD 3.3011 ns 4.1065 ns 5.1632 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −2.3062% −0.3076% +1.6894% (p = 0.77 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/Arc_str_/report/index.html ================================================ Import as owned and destroy/Arc<str> Summary - Criterion.rs

Import as owned and destroy/Arc<str>

Violin Plot

Violin Plot

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

Line Chart

Line Chart

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

Import as owned and destroy/Arc<str>/0

PDF of Slope Regression

Import as owned and destroy/Arc<str>/10

PDF of Slope Regression

Import as owned and destroy/Arc<str>/20

PDF of Slope Regression

Import as owned and destroy/Arc<str>/100

PDF of Slope Regression

Import as owned and destroy/Arc<str>/500

PDF of Slope Regression
================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/0/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Cow<'_, str>","value_str":"0","throughput":null,"full_id":"Import as owned and destroy/Cow<'_, str>/0","directory_name":"Import as owned and destroy/Cow_'_, str_/0","title":"Import as owned and destroy/Cow<'_, str>/0"} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/0/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.6935933963363371,"upper_bound":0.7900657972970381},"point_estimate":0.7362291789647888,"standard_error":0.024736339694861696},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.7108373848277234,"upper_bound":0.7858723594944226},"point_estimate":0.7763804924422777,"standard_error":0.019737612911152076},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.08837278563673415,"upper_bound":0.21813027320615516},"point_estimate":0.12299613500674549,"standard_error":0.031625641147527014},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.7480466480973897,"upper_bound":0.779612106761877},"point_estimate":0.7653565395514442,"standard_error":0.008029786722160738},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.13204942996988572,"upper_bound":0.3778128229935145},"point_estimate":0.2506053382897813,"standard_error":0.07514801263740692}} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/0/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[160846.0,321692.0,482538.0,643384.0,804230.0,965076.0,1125922.0,1286768.0,1447614.0,1608460.0,1769306.0,1930152.0,2090998.0,2251844.0,2412690.0,2573536.0,2734382.0,2895228.0,3056074.0,3216920.0,3377766.0,3538612.0,3699458.0,3860304.0,4021150.0,4181996.0,4342842.0,4503688.0,4664534.0,4825380.0,4986226.0,5147072.0,5307918.0,5468764.0,5629610.0,5790456.0,5951302.0,6112148.0,6272994.0,6433840.0,6594686.0,6755532.0,6916378.0,7077224.0,7238070.0,7398916.0,7559762.0,7720608.0,7881454.0,8042300.0,8203146.0,8363992.0,8524838.0,8685684.0,8846530.0,9007376.0,9168222.0,9329068.0,9489914.0,9650760.0,9811606.0,9972452.0,10133298.0,10294144.0,10454990.0,10615836.0,10776682.0,10937528.0,11098374.0,11259220.0,11420066.0,11580912.0,11741758.0,11902604.0,12063450.0,12224296.0,12385142.0,12545988.0,12706834.0,12867680.0,13028526.0,13189372.0,13350218.0,13511064.0,13671910.0,13832756.0,13993602.0,14154448.0,14315294.0,14476140.0,14636986.0,14797832.0,14958678.0,15119524.0,15280370.0,15441216.0,15602062.0,15762908.0,15923754.0,16084600.0],"times":[433123.0,165832.0,244874.0,338250.0,960374.0,1314455.0,708835.0,1022167.0,989916.0,1387626.0,1086709.0,1623335.0,1388291.0,1630542.0,2209916.0,1785667.0,1973750.0,2137127.0,2152250.0,2286707.0,2626292.0,1898413.0,1985082.0,2080834.0,2176336.0,2253624.0,2397959.0,2473749.0,2591878.0,2674416.0,2776334.0,2863707.0,3047080.0,3037708.0,3104835.0,3203585.0,3229834.0,3372666.0,3393585.0,3489417.0,3553458.0,3606958.0,3733500.0,3740750.0,3793623.0,3829498.0,3924168.0,4070584.0,4088375.0,4236125.0,4303709.0,4399833.0,7951417.0,7660251.0,7723167.0,7839293.0,8029874.0,8143291.0,8159209.0,8240790.0,8279418.0,8484038.0,8464960.0,8667707.0,8889083.0,8754457.0,8850959.0,9289793.0,9029499.0,9094209.0,9443334.0,9429416.0,9337043.0,9576751.0,9691501.0,9719917.0,9861876.0,9858667.0,9984373.0,10240749.0,10240375.0,10379499.0,10403960.0,10519750.0,10683084.0,10878124.0,10981917.0,11240249.0,11272875.0,11189000.0,11394708.0,11471836.0,11682542.0,11712206.0,12065625.0,11954875.0,12044082.0,12069290.0,12478540.0,12871333.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/0/base/tukey.json ================================================ [-0.22063285554770384,0.16554734618674494,1.1953612174786084,1.5815414192130572] ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/0/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.028848479675405887,"upper_bound":0.13503057667723342},"point_estimate":0.04634813837566587,"standard_error":0.041838012864532044},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.04903072065955205,"upper_bound":0.0612031112235214},"point_estimate":0.03304956412491378,"standard_error":0.02847273703777581}} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/0/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Cow<'_, str>","value_str":"0","throughput":null,"full_id":"Import as owned and destroy/Cow<'_, str>/0","directory_name":"Import as owned and destroy/Cow_'_, str_/0","title":"Import as owned and destroy/Cow<'_, str>/0"} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/0/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.6935933963363371,"upper_bound":0.7900657972970381},"point_estimate":0.7362291789647888,"standard_error":0.024736339694861696},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.7108373848277234,"upper_bound":0.7858723594944226},"point_estimate":0.7763804924422777,"standard_error":0.019737612911152076},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.08837278563673415,"upper_bound":0.21813027320615516},"point_estimate":0.12299613500674549,"standard_error":0.031625641147527014},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.7480466480973897,"upper_bound":0.779612106761877},"point_estimate":0.7653565395514442,"standard_error":0.008029786722160738},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.13204942996988572,"upper_bound":0.3778128229935145},"point_estimate":0.2506053382897813,"standard_error":0.07514801263740692}} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/0/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[160846.0,321692.0,482538.0,643384.0,804230.0,965076.0,1125922.0,1286768.0,1447614.0,1608460.0,1769306.0,1930152.0,2090998.0,2251844.0,2412690.0,2573536.0,2734382.0,2895228.0,3056074.0,3216920.0,3377766.0,3538612.0,3699458.0,3860304.0,4021150.0,4181996.0,4342842.0,4503688.0,4664534.0,4825380.0,4986226.0,5147072.0,5307918.0,5468764.0,5629610.0,5790456.0,5951302.0,6112148.0,6272994.0,6433840.0,6594686.0,6755532.0,6916378.0,7077224.0,7238070.0,7398916.0,7559762.0,7720608.0,7881454.0,8042300.0,8203146.0,8363992.0,8524838.0,8685684.0,8846530.0,9007376.0,9168222.0,9329068.0,9489914.0,9650760.0,9811606.0,9972452.0,10133298.0,10294144.0,10454990.0,10615836.0,10776682.0,10937528.0,11098374.0,11259220.0,11420066.0,11580912.0,11741758.0,11902604.0,12063450.0,12224296.0,12385142.0,12545988.0,12706834.0,12867680.0,13028526.0,13189372.0,13350218.0,13511064.0,13671910.0,13832756.0,13993602.0,14154448.0,14315294.0,14476140.0,14636986.0,14797832.0,14958678.0,15119524.0,15280370.0,15441216.0,15602062.0,15762908.0,15923754.0,16084600.0],"times":[433123.0,165832.0,244874.0,338250.0,960374.0,1314455.0,708835.0,1022167.0,989916.0,1387626.0,1086709.0,1623335.0,1388291.0,1630542.0,2209916.0,1785667.0,1973750.0,2137127.0,2152250.0,2286707.0,2626292.0,1898413.0,1985082.0,2080834.0,2176336.0,2253624.0,2397959.0,2473749.0,2591878.0,2674416.0,2776334.0,2863707.0,3047080.0,3037708.0,3104835.0,3203585.0,3229834.0,3372666.0,3393585.0,3489417.0,3553458.0,3606958.0,3733500.0,3740750.0,3793623.0,3829498.0,3924168.0,4070584.0,4088375.0,4236125.0,4303709.0,4399833.0,7951417.0,7660251.0,7723167.0,7839293.0,8029874.0,8143291.0,8159209.0,8240790.0,8279418.0,8484038.0,8464960.0,8667707.0,8889083.0,8754457.0,8850959.0,9289793.0,9029499.0,9094209.0,9443334.0,9429416.0,9337043.0,9576751.0,9691501.0,9719917.0,9861876.0,9858667.0,9984373.0,10240749.0,10240375.0,10379499.0,10403960.0,10519750.0,10683084.0,10878124.0,10981917.0,11240249.0,11272875.0,11189000.0,11394708.0,11471836.0,11682542.0,11712206.0,12065625.0,11954875.0,12044082.0,12069290.0,12478540.0,12871333.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/0/new/tukey.json ================================================ [-0.22063285554770384,0.16554734618674494,1.1953612174786084,1.5815414192130572] ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/0/report/index.html ================================================ Import as owned and destroy/Cow<'_, str>/0 - Criterion.rs

Import as owned and destroy/Cow<'_, str>/0

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 748.05 ps 765.36 ps 779.61 ps
0.3626275 0.3701726 0.3650214
Mean 693.59 ps 736.23 ps 790.07 ps
Std. Dev. 132.05 ps 250.61 ps 377.81 ps
Median 710.84 ps 776.38 ps 785.87 ps
MAD 88.373 ps 123.00 ps 218.13 ps

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −2.8848% +4.6348% +13.503% (p = 0.27 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/10/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Cow<'_, str>","value_str":"10","throughput":null,"full_id":"Import as owned and destroy/Cow<'_, str>/10","directory_name":"Import as owned and destroy/Cow_'_, str_/10","title":"Import as owned and destroy/Cow<'_, str>/10"} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/10/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":28.662145985069923,"upper_bound":30.10583454273917},"point_estimate":29.35680402199484,"standard_error":0.3687207857301947},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":27.819615899770202,"upper_bound":31.28186631896521},"point_estimate":29.112171493307095,"standard_error":0.8444021755127579},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.0794244603500034,"upper_bound":5.076053438576063},"point_estimate":4.653071892149554,"standard_error":0.5067843327099436},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":30.131683195749815,"upper_bound":31.243050738071624},"point_estimate":30.708034895437,"standard_error":0.28443244972216347},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.970456578566502,"upper_bound":4.673830489997651},"point_estimate":3.7156660537808692,"standard_error":0.48308939668862677}} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/10/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[17348.0,34696.0,52044.0,69392.0,86740.0,104088.0,121436.0,138784.0,156132.0,173480.0,190828.0,208176.0,225524.0,242872.0,260220.0,277568.0,294916.0,312264.0,329612.0,346960.0,364308.0,381656.0,399004.0,416352.0,433700.0,451048.0,468396.0,485744.0,503092.0,520440.0,537788.0,555136.0,572484.0,589832.0,607180.0,624528.0,641876.0,659224.0,676572.0,693920.0,711268.0,728616.0,745964.0,763312.0,780660.0,798008.0,815356.0,832704.0,850052.0,867400.0,884748.0,902096.0,919444.0,936792.0,954140.0,971488.0,988836.0,1006184.0,1023532.0,1040880.0,1058228.0,1075576.0,1092924.0,1110272.0,1127620.0,1144968.0,1162316.0,1179664.0,1197012.0,1214360.0,1231708.0,1249056.0,1266404.0,1283752.0,1301100.0,1318448.0,1335796.0,1353144.0,1370492.0,1387840.0,1405188.0,1422536.0,1439884.0,1457232.0,1474580.0,1491928.0,1509276.0,1526624.0,1543972.0,1561320.0,1578668.0,1596016.0,1613364.0,1630712.0,1648060.0,1665408.0,1682756.0,1700104.0,1717452.0,1734800.0],"times":[843543.0,868958.0,1303251.0,2241665.0,2244292.0,2674416.0,3419458.0,3906542.0,3905374.0,4388875.0,5350293.0,5272082.0,5719667.0,6337041.0,6524334.0,7561836.0,7433708.0,7916543.0,8283831.0,8737957.0,9191623.0,9498750.0,10115207.0,10893751.0,11225417.0,11496916.0,11965541.0,12171418.0,13094209.0,13485961.0,13490374.0,13913627.0,14536832.0,14973417.0,15281289.0,15832959.0,16164959.0,24052168.0,23567793.0,23773166.0,23513707.0,23784250.0,22812542.0,23480791.0,23151876.0,23564460.0,23853333.0,24197666.0,24656041.0,24111042.0,25259543.0,24452539.0,24676083.0,25321710.0,26650041.0,32076210.0,32093082.0,33167043.0,32068958.0,33254334.0,33314500.0,34473876.0,35658500.0,35912167.0,35783543.0,36211166.0,35663500.0,37484709.0,37615667.0,38181459.0,38530125.0,39291457.0,40037292.0,42255375.0,43877666.0,45342374.0,44527833.0,45207460.0,45665834.0,44679999.0,43993084.0,44651836.0,46003000.0,43792792.0,42581874.0,43512376.0,43418418.0,42428874.0,42952708.0,42089040.0,43725627.0,43127292.0,49152165.0,53166584.0,52753957.0,54803875.0,52853249.0,55600332.0,55866625.0,55404709.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/10/base/tukey.json ================================================ [7.422372319392991,16.625579749735692,41.167466230649566,50.37067366099227] ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/10/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.028522905992567987,"upper_bound":0.039228647803726674},"point_estimate":0.003286008156166531,"standard_error":0.017253130833573996},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.08027561607082566,"upper_bound":0.07384476055620579},"point_estimate":-0.01151077490093988,"standard_error":0.039130238793931266}} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/10/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Cow<'_, str>","value_str":"10","throughput":null,"full_id":"Import as owned and destroy/Cow<'_, str>/10","directory_name":"Import as owned and destroy/Cow_'_, str_/10","title":"Import as owned and destroy/Cow<'_, str>/10"} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/10/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":28.662145985069923,"upper_bound":30.10583454273917},"point_estimate":29.35680402199484,"standard_error":0.3687207857301947},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":27.819615899770202,"upper_bound":31.28186631896521},"point_estimate":29.112171493307095,"standard_error":0.8444021755127579},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.0794244603500034,"upper_bound":5.076053438576063},"point_estimate":4.653071892149554,"standard_error":0.5067843327099436},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":30.131683195749815,"upper_bound":31.243050738071624},"point_estimate":30.708034895437,"standard_error":0.28443244972216347},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.970456578566502,"upper_bound":4.673830489997651},"point_estimate":3.7156660537808692,"standard_error":0.48308939668862677}} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/10/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[17348.0,34696.0,52044.0,69392.0,86740.0,104088.0,121436.0,138784.0,156132.0,173480.0,190828.0,208176.0,225524.0,242872.0,260220.0,277568.0,294916.0,312264.0,329612.0,346960.0,364308.0,381656.0,399004.0,416352.0,433700.0,451048.0,468396.0,485744.0,503092.0,520440.0,537788.0,555136.0,572484.0,589832.0,607180.0,624528.0,641876.0,659224.0,676572.0,693920.0,711268.0,728616.0,745964.0,763312.0,780660.0,798008.0,815356.0,832704.0,850052.0,867400.0,884748.0,902096.0,919444.0,936792.0,954140.0,971488.0,988836.0,1006184.0,1023532.0,1040880.0,1058228.0,1075576.0,1092924.0,1110272.0,1127620.0,1144968.0,1162316.0,1179664.0,1197012.0,1214360.0,1231708.0,1249056.0,1266404.0,1283752.0,1301100.0,1318448.0,1335796.0,1353144.0,1370492.0,1387840.0,1405188.0,1422536.0,1439884.0,1457232.0,1474580.0,1491928.0,1509276.0,1526624.0,1543972.0,1561320.0,1578668.0,1596016.0,1613364.0,1630712.0,1648060.0,1665408.0,1682756.0,1700104.0,1717452.0,1734800.0],"times":[843543.0,868958.0,1303251.0,2241665.0,2244292.0,2674416.0,3419458.0,3906542.0,3905374.0,4388875.0,5350293.0,5272082.0,5719667.0,6337041.0,6524334.0,7561836.0,7433708.0,7916543.0,8283831.0,8737957.0,9191623.0,9498750.0,10115207.0,10893751.0,11225417.0,11496916.0,11965541.0,12171418.0,13094209.0,13485961.0,13490374.0,13913627.0,14536832.0,14973417.0,15281289.0,15832959.0,16164959.0,24052168.0,23567793.0,23773166.0,23513707.0,23784250.0,22812542.0,23480791.0,23151876.0,23564460.0,23853333.0,24197666.0,24656041.0,24111042.0,25259543.0,24452539.0,24676083.0,25321710.0,26650041.0,32076210.0,32093082.0,33167043.0,32068958.0,33254334.0,33314500.0,34473876.0,35658500.0,35912167.0,35783543.0,36211166.0,35663500.0,37484709.0,37615667.0,38181459.0,38530125.0,39291457.0,40037292.0,42255375.0,43877666.0,45342374.0,44527833.0,45207460.0,45665834.0,44679999.0,43993084.0,44651836.0,46003000.0,43792792.0,42581874.0,43512376.0,43418418.0,42428874.0,42952708.0,42089040.0,43725627.0,43127292.0,49152165.0,53166584.0,52753957.0,54803875.0,52853249.0,55600332.0,55866625.0,55404709.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/10/new/tukey.json ================================================ [7.422372319392991,16.625579749735692,41.167466230649566,50.37067366099227] ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/10/report/index.html ================================================ Import as owned and destroy/Cow<'_, str>/10 - Criterion.rs

Import as owned and destroy/Cow<'_, str>/10

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 30.132 ns 30.708 ns 31.243 ns
0.5775728 0.5914156 0.5794485
Mean 28.662 ns 29.357 ns 30.106 ns
Std. Dev. 2.9705 ns 3.7157 ns 4.6738 ns
Median 27.820 ns 29.112 ns 31.282 ns
MAD 3.0794 ns 4.6531 ns 5.0761 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −2.8523% +0.3286% +3.9229% (p = 0.85 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/100/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Cow<'_, str>","value_str":"100","throughput":null,"full_id":"Import as owned and destroy/Cow<'_, str>/100","directory_name":"Import as owned and destroy/Cow_'_, str_/100","title":"Import as owned and destroy/Cow<'_, str>/100"} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/100/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":35.23968342872073,"upper_bound":36.988686335654535},"point_estimate":36.1190631775806,"standard_error":0.44618299599089406},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":34.884724380656365,"upper_bound":36.97122364252051},"point_estimate":36.00761883356205,"standard_error":0.5774275371503896},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.286594806568675,"upper_bound":5.581754223871893},"point_estimate":4.197927363662005,"standard_error":0.5741512081408002},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":36.522812109207194,"upper_bound":38.28577042365714},"point_estimate":37.41619816505175,"standard_error":0.44830597839530045},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.888101557726696,"upper_bound":5.029863282291056},"point_estimate":4.493201891566497,"standard_error":0.29021020913590445}} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/100/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[10939.0,21878.0,32817.0,43756.0,54695.0,65634.0,76573.0,87512.0,98451.0,109390.0,120329.0,131268.0,142207.0,153146.0,164085.0,175024.0,185963.0,196902.0,207841.0,218780.0,229719.0,240658.0,251597.0,262536.0,273475.0,284414.0,295353.0,306292.0,317231.0,328170.0,339109.0,350048.0,360987.0,371926.0,382865.0,393804.0,404743.0,415682.0,426621.0,437560.0,448499.0,459438.0,470377.0,481316.0,492255.0,503194.0,514133.0,525072.0,536011.0,546950.0,557889.0,568828.0,579767.0,590706.0,601645.0,612584.0,623523.0,634462.0,645401.0,656340.0,667279.0,678218.0,689157.0,700096.0,711035.0,721974.0,732913.0,743852.0,754791.0,765730.0,776669.0,787608.0,798547.0,809486.0,820425.0,831364.0,842303.0,853242.0,864181.0,875120.0,886059.0,896998.0,907937.0,918876.0,929815.0,940754.0,951693.0,962632.0,973571.0,984510.0,995449.0,1006388.0,1017327.0,1028266.0,1039205.0,1050144.0,1061083.0,1072022.0,1082961.0,1093900.0],"times":[278749.0,1011498.0,940126.0,1272624.0,1491833.0,1633331.0,2407459.0,3052832.0,3922043.0,3750374.0,4293626.0,3732959.0,5098249.0,6293084.0,5640290.0,5804416.0,7429502.0,7242334.0,6801877.0,6826210.0,7941085.0,9100207.0,8776586.0,9698586.0,10109083.0,10837834.0,9908460.0,9553291.0,8869958.0,11877958.0,11887961.0,14525875.0,13884417.0,14640165.0,14136582.0,13302624.0,11906086.0,13644918.0,14780749.0,19542543.0,18308456.0,19094873.0,17708374.0,16326289.0,14688082.0,14870166.0,15105165.0,22486208.0,23024498.0,22507000.0,21315626.0,19836875.0,18577416.0,17124376.0,20489875.0,20455125.0,27312667.0,26057999.0,24733374.0,24088500.0,24039418.0,22018332.0,20557917.0,24905750.0,23755417.0,29895585.0,29200377.0,28990000.0,26210334.0,28046331.0,24436125.0,27718710.0,26502791.0,34191291.0,32856666.0,32943543.0,30765334.0,32794832.0,29893041.0,31312166.0,29960794.0,40283917.0,36977669.0,38431999.0,34930207.0,34432290.0,33804164.0,32993417.0,35038042.0,34033417.0,41872623.0,39507834.0,39234252.0,38046376.0,40066168.0,36901375.0,41495625.0,41366458.0,47213791.0,44889625.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/100/base/tukey.json ================================================ [16.202480718779285,24.857890348490038,47.93898269438538,56.594392324096134] ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/100/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.030628964023967056,"upper_bound":0.03590858994431749},"point_estimate":0.0018995213036927527,"standard_error":0.017064118874460348},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.026258487989180623,"upper_bound":0.047101923044520516},"point_estimate":0.009132446926671145,"standard_error":0.018941751618658586}} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/100/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Cow<'_, str>","value_str":"100","throughput":null,"full_id":"Import as owned and destroy/Cow<'_, str>/100","directory_name":"Import as owned and destroy/Cow_'_, str_/100","title":"Import as owned and destroy/Cow<'_, str>/100"} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/100/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":35.23968342872073,"upper_bound":36.988686335654535},"point_estimate":36.1190631775806,"standard_error":0.44618299599089406},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":34.884724380656365,"upper_bound":36.97122364252051},"point_estimate":36.00761883356205,"standard_error":0.5774275371503896},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.286594806568675,"upper_bound":5.581754223871893},"point_estimate":4.197927363662005,"standard_error":0.5741512081408002},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":36.522812109207194,"upper_bound":38.28577042365714},"point_estimate":37.41619816505175,"standard_error":0.44830597839530045},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.888101557726696,"upper_bound":5.029863282291056},"point_estimate":4.493201891566497,"standard_error":0.29021020913590445}} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/100/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[10939.0,21878.0,32817.0,43756.0,54695.0,65634.0,76573.0,87512.0,98451.0,109390.0,120329.0,131268.0,142207.0,153146.0,164085.0,175024.0,185963.0,196902.0,207841.0,218780.0,229719.0,240658.0,251597.0,262536.0,273475.0,284414.0,295353.0,306292.0,317231.0,328170.0,339109.0,350048.0,360987.0,371926.0,382865.0,393804.0,404743.0,415682.0,426621.0,437560.0,448499.0,459438.0,470377.0,481316.0,492255.0,503194.0,514133.0,525072.0,536011.0,546950.0,557889.0,568828.0,579767.0,590706.0,601645.0,612584.0,623523.0,634462.0,645401.0,656340.0,667279.0,678218.0,689157.0,700096.0,711035.0,721974.0,732913.0,743852.0,754791.0,765730.0,776669.0,787608.0,798547.0,809486.0,820425.0,831364.0,842303.0,853242.0,864181.0,875120.0,886059.0,896998.0,907937.0,918876.0,929815.0,940754.0,951693.0,962632.0,973571.0,984510.0,995449.0,1006388.0,1017327.0,1028266.0,1039205.0,1050144.0,1061083.0,1072022.0,1082961.0,1093900.0],"times":[278749.0,1011498.0,940126.0,1272624.0,1491833.0,1633331.0,2407459.0,3052832.0,3922043.0,3750374.0,4293626.0,3732959.0,5098249.0,6293084.0,5640290.0,5804416.0,7429502.0,7242334.0,6801877.0,6826210.0,7941085.0,9100207.0,8776586.0,9698586.0,10109083.0,10837834.0,9908460.0,9553291.0,8869958.0,11877958.0,11887961.0,14525875.0,13884417.0,14640165.0,14136582.0,13302624.0,11906086.0,13644918.0,14780749.0,19542543.0,18308456.0,19094873.0,17708374.0,16326289.0,14688082.0,14870166.0,15105165.0,22486208.0,23024498.0,22507000.0,21315626.0,19836875.0,18577416.0,17124376.0,20489875.0,20455125.0,27312667.0,26057999.0,24733374.0,24088500.0,24039418.0,22018332.0,20557917.0,24905750.0,23755417.0,29895585.0,29200377.0,28990000.0,26210334.0,28046331.0,24436125.0,27718710.0,26502791.0,34191291.0,32856666.0,32943543.0,30765334.0,32794832.0,29893041.0,31312166.0,29960794.0,40283917.0,36977669.0,38431999.0,34930207.0,34432290.0,33804164.0,32993417.0,35038042.0,34033417.0,41872623.0,39507834.0,39234252.0,38046376.0,40066168.0,36901375.0,41495625.0,41366458.0,47213791.0,44889625.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/100/new/tukey.json ================================================ [16.202480718779285,24.857890348490038,47.93898269438538,56.594392324096134] ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/100/report/index.html ================================================ Import as owned and destroy/Cow<'_, str>/100 - Criterion.rs

Import as owned and destroy/Cow<'_, str>/100

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 36.523 ns 37.416 ns 38.286 ns
0.5125500 0.5271618 0.5132983
Mean 35.240 ns 36.119 ns 36.989 ns
Std. Dev. 3.8881 ns 4.4932 ns 5.0299 ns
Median 34.885 ns 36.008 ns 36.971 ns
MAD 3.2866 ns 4.1979 ns 5.5818 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −3.0629% +0.1900% +3.5909% (p = 0.91 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/20/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Cow<'_, str>","value_str":"20","throughput":null,"full_id":"Import as owned and destroy/Cow<'_, str>/20","directory_name":"Import as owned and destroy/Cow_'_, str_/20","title":"Import as owned and destroy/Cow<'_, str>/20"} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/20/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":31.181198179715572,"upper_bound":32.77308302499177},"point_estimate":31.967476499161375,"standard_error":0.40647127143739487},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":31.647561569359848,"upper_bound":32.87511138658067},"point_estimate":32.51112970054554,"standard_error":0.3471189036684075},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.7523995614224233,"upper_bound":5.11334209237872},"point_estimate":3.8493195291669684,"standard_error":0.5940085448597703},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":32.174359474007844,"upper_bound":33.573924316945075},"point_estimate":32.86962468399923,"standard_error":0.35732017073724254},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.3088234322549264,"upper_bound":4.998069286059623},"point_estimate":4.085629405100495,"standard_error":0.4487791355082807}} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/20/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[14876.0,29752.0,44628.0,59504.0,74380.0,89256.0,104132.0,119008.0,133884.0,148760.0,163636.0,178512.0,193388.0,208264.0,223140.0,238016.0,252892.0,267768.0,282644.0,297520.0,312396.0,327272.0,342148.0,357024.0,371900.0,386776.0,401652.0,416528.0,431404.0,446280.0,461156.0,476032.0,490908.0,505784.0,520660.0,535536.0,550412.0,565288.0,580164.0,595040.0,609916.0,624792.0,639668.0,654544.0,669420.0,684296.0,699172.0,714048.0,728924.0,743800.0,758676.0,773552.0,788428.0,803304.0,818180.0,833056.0,847932.0,862808.0,877684.0,892560.0,907436.0,922312.0,937188.0,952064.0,966940.0,981816.0,996692.0,1011568.0,1026444.0,1041320.0,1056196.0,1071072.0,1085948.0,1100824.0,1115700.0,1130576.0,1145452.0,1160328.0,1175204.0,1190080.0,1204956.0,1219832.0,1234708.0,1249584.0,1264460.0,1279336.0,1294212.0,1309088.0,1323964.0,1338840.0,1353716.0,1368592.0,1383468.0,1398344.0,1413220.0,1428096.0,1442972.0,1457848.0,1472724.0,1487600.0],"times":[756919.0,775959.0,1156167.0,2189292.0,1921417.0,2381542.0,2696583.0,3903166.0,3855292.0,3861250.0,4259208.0,4724460.0,5007081.0,5398542.0,5804583.0,6063875.0,6940334.0,7043916.0,7416294.0,7617666.0,8276126.0,13347708.0,12343376.0,12215004.0,12988166.0,12714750.0,12305876.0,12294831.0,12529833.0,12563876.0,12629458.0,15919333.0,16322040.0,16704790.0,17639833.0,17535750.0,18081000.0,18555833.0,18786915.0,19045998.0,19774167.0,19961042.0,24357499.0,23548916.0,23478708.0,22923502.0,23002958.0,22715626.0,22618584.0,22329542.0,22200625.0,22397291.0,21488458.0,26119165.0,27437249.0,27835834.0,28351374.0,29022711.0,30160790.0,32147748.0,32422417.0,32562000.0,32753960.0,32546083.0,35461375.0,36265416.0,35074749.0,33972290.0,33082290.0,33131125.0,31814206.0,32851709.0,31277292.0,30311460.0,31463957.0,36925959.0,37626083.0,38038292.0,38049624.0,39388042.0,44627542.0,45969961.0,45440999.0,45549625.0,46309376.0,46518333.0,47545043.0,46831916.0,46335459.0,45242543.0,44006043.0,43086916.0,43280667.0,42160584.0,41175959.0,42672292.0,46976875.0,46203373.0,44496793.0,46426874.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/20/base/tukey.json ================================================ [13.333574712535892,21.177633310363802,42.09512290457157,49.93918150239948] ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/20/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.017910400646013395,"upper_bound":0.04946868138829234},"point_estimate":0.01599651892658982,"standard_error":0.017170400524176496},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.024029580053494537,"upper_bound":0.051238919261378246},"point_estimate":0.0053008407690862125,"standard_error":0.018667918435434656}} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/20/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Cow<'_, str>","value_str":"20","throughput":null,"full_id":"Import as owned and destroy/Cow<'_, str>/20","directory_name":"Import as owned and destroy/Cow_'_, str_/20","title":"Import as owned and destroy/Cow<'_, str>/20"} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/20/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":31.181198179715572,"upper_bound":32.77308302499177},"point_estimate":31.967476499161375,"standard_error":0.40647127143739487},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":31.647561569359848,"upper_bound":32.87511138658067},"point_estimate":32.51112970054554,"standard_error":0.3471189036684075},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.7523995614224233,"upper_bound":5.11334209237872},"point_estimate":3.8493195291669684,"standard_error":0.5940085448597703},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":32.174359474007844,"upper_bound":33.573924316945075},"point_estimate":32.86962468399923,"standard_error":0.35732017073724254},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.3088234322549264,"upper_bound":4.998069286059623},"point_estimate":4.085629405100495,"standard_error":0.4487791355082807}} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/20/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[14876.0,29752.0,44628.0,59504.0,74380.0,89256.0,104132.0,119008.0,133884.0,148760.0,163636.0,178512.0,193388.0,208264.0,223140.0,238016.0,252892.0,267768.0,282644.0,297520.0,312396.0,327272.0,342148.0,357024.0,371900.0,386776.0,401652.0,416528.0,431404.0,446280.0,461156.0,476032.0,490908.0,505784.0,520660.0,535536.0,550412.0,565288.0,580164.0,595040.0,609916.0,624792.0,639668.0,654544.0,669420.0,684296.0,699172.0,714048.0,728924.0,743800.0,758676.0,773552.0,788428.0,803304.0,818180.0,833056.0,847932.0,862808.0,877684.0,892560.0,907436.0,922312.0,937188.0,952064.0,966940.0,981816.0,996692.0,1011568.0,1026444.0,1041320.0,1056196.0,1071072.0,1085948.0,1100824.0,1115700.0,1130576.0,1145452.0,1160328.0,1175204.0,1190080.0,1204956.0,1219832.0,1234708.0,1249584.0,1264460.0,1279336.0,1294212.0,1309088.0,1323964.0,1338840.0,1353716.0,1368592.0,1383468.0,1398344.0,1413220.0,1428096.0,1442972.0,1457848.0,1472724.0,1487600.0],"times":[756919.0,775959.0,1156167.0,2189292.0,1921417.0,2381542.0,2696583.0,3903166.0,3855292.0,3861250.0,4259208.0,4724460.0,5007081.0,5398542.0,5804583.0,6063875.0,6940334.0,7043916.0,7416294.0,7617666.0,8276126.0,13347708.0,12343376.0,12215004.0,12988166.0,12714750.0,12305876.0,12294831.0,12529833.0,12563876.0,12629458.0,15919333.0,16322040.0,16704790.0,17639833.0,17535750.0,18081000.0,18555833.0,18786915.0,19045998.0,19774167.0,19961042.0,24357499.0,23548916.0,23478708.0,22923502.0,23002958.0,22715626.0,22618584.0,22329542.0,22200625.0,22397291.0,21488458.0,26119165.0,27437249.0,27835834.0,28351374.0,29022711.0,30160790.0,32147748.0,32422417.0,32562000.0,32753960.0,32546083.0,35461375.0,36265416.0,35074749.0,33972290.0,33082290.0,33131125.0,31814206.0,32851709.0,31277292.0,30311460.0,31463957.0,36925959.0,37626083.0,38038292.0,38049624.0,39388042.0,44627542.0,45969961.0,45440999.0,45549625.0,46309376.0,46518333.0,47545043.0,46831916.0,46335459.0,45242543.0,44006043.0,43086916.0,43280667.0,42160584.0,41175959.0,42672292.0,46976875.0,46203373.0,44496793.0,46426874.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/20/new/tukey.json ================================================ [13.333574712535892,21.177633310363802,42.09512290457157,49.93918150239948] ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/20/report/index.html ================================================ Import as owned and destroy/Cow<'_, str>/20 - Criterion.rs

Import as owned and destroy/Cow<'_, str>/20

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 32.174 ns 32.870 ns 33.574 ns
0.4422576 0.4575514 0.4418713
Mean 31.181 ns 31.967 ns 32.773 ns
Std. Dev. 3.3088 ns 4.0856 ns 4.9981 ns
Median 31.648 ns 32.511 ns 32.875 ns
MAD 2.7524 ns 3.8493 ns 5.1133 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −1.7910% +1.5997% +4.9469% (p = 0.36 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/500/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Cow<'_, str>","value_str":"500","throughput":null,"full_id":"Import as owned and destroy/Cow<'_, str>/500","directory_name":"Import as owned and destroy/Cow_'_, str_/500","title":"Import as owned and destroy/Cow<'_, str>/500"} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/500/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":45.47415276220672,"upper_bound":48.01731688946107},"point_estimate":46.74997358374575,"standard_error":0.6490047655443941},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":45.372724714623835,"upper_bound":48.27266488800245},"point_estimate":46.77702563797517,"standard_error":0.7964219214693793},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.308550204624646,"upper_bound":7.591567391880411},"point_estimate":6.032581164139882,"standard_error":0.8151024001258136},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":49.47134468792152,"upper_bound":52.182265145873245},"point_estimate":50.895169438358614,"standard_error":0.6896076133184161},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":5.5206202469404175,"upper_bound":7.419631454162414},"point_estimate":6.514947971376596,"standard_error":0.4830420202154658}} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/500/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[6361.0,12722.0,19083.0,25444.0,31805.0,38166.0,44527.0,50888.0,57249.0,63610.0,69971.0,76332.0,82693.0,89054.0,95415.0,101776.0,108137.0,114498.0,120859.0,127220.0,133581.0,139942.0,146303.0,152664.0,159025.0,165386.0,171747.0,178108.0,184469.0,190830.0,197191.0,203552.0,209913.0,216274.0,222635.0,228996.0,235357.0,241718.0,248079.0,254440.0,260801.0,267162.0,273523.0,279884.0,286245.0,292606.0,298967.0,305328.0,311689.0,318050.0,324411.0,330772.0,337133.0,343494.0,349855.0,356216.0,362577.0,368938.0,375299.0,381660.0,388021.0,394382.0,400743.0,407104.0,413465.0,419826.0,426187.0,432548.0,438909.0,445270.0,451631.0,457992.0,464353.0,470714.0,477075.0,483436.0,489797.0,496158.0,502519.0,508880.0,515241.0,521602.0,527963.0,534324.0,540685.0,547046.0,553407.0,559768.0,566129.0,572490.0,578851.0,585212.0,591573.0,597934.0,604295.0,610656.0,617017.0,623378.0,629739.0,636100.0],"times":[187918.0,364709.0,759292.0,946625.0,1310002.0,1758625.0,2276248.0,2169626.0,2590582.0,2819249.0,2544167.0,3938499.0,3868333.0,2849623.0,4181000.0,5437542.0,3817793.0,4096000.0,5628623.0,4833457.0,5382957.0,6934458.0,5954833.0,6308417.0,7640708.0,6744500.0,6810291.0,8603667.0,7950875.0,7011126.0,9936292.0,8940122.0,7758290.0,11210583.0,10397125.0,9051208.0,9617374.0,11472378.0,10396500.0,10285876.0,12756708.0,11831916.0,11991125.0,12941084.0,12683583.0,12848168.0,14421998.0,12859002.0,14063835.0,15635168.0,14726540.0,13451832.0,17204208.0,21250126.0,16759459.0,15520210.0,17488289.0,15839582.0,16077249.0,18585708.0,18064667.0,17773042.0,19422041.0,18520919.0,18859669.0,20259917.0,19282376.0,20481960.0,22270416.0,20469789.0,19864751.0,24148877.0,22446960.0,22017460.0,22385833.0,24593248.0,23626916.0,24135414.0,27237042.0,25626002.0,25077625.0,26507874.0,27430712.0,27383125.0,29768750.0,28196334.0,26883751.0,32385917.0,30208584.0,31033167.0,33634581.0,33498710.0,31400335.0,33299958.0,34459374.0,34401461.0,34513832.0,38422790.0,36626376.0,35293001.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/500/base/tukey.json ================================================ [18.90254949982217,30.905929479919003,62.91494276017722,74.91832274027405] ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/500/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.06595521589841016,"upper_bound":0.016104728827064606},"point_estimate":-0.02730345154364333,"standard_error":0.020973822467476186},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.07452491746032341,"upper_bound":0.03108718983068015},"point_estimate":-0.019753141820476827,"standard_error":0.027535092254094676}} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/500/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Cow<'_, str>","value_str":"500","throughput":null,"full_id":"Import as owned and destroy/Cow<'_, str>/500","directory_name":"Import as owned and destroy/Cow_'_, str_/500","title":"Import as owned and destroy/Cow<'_, str>/500"} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/500/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":45.47415276220672,"upper_bound":48.01731688946107},"point_estimate":46.74997358374575,"standard_error":0.6490047655443941},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":45.372724714623835,"upper_bound":48.27266488800245},"point_estimate":46.77702563797517,"standard_error":0.7964219214693793},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.308550204624646,"upper_bound":7.591567391880411},"point_estimate":6.032581164139882,"standard_error":0.8151024001258136},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":49.47134468792152,"upper_bound":52.182265145873245},"point_estimate":50.895169438358614,"standard_error":0.6896076133184161},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":5.5206202469404175,"upper_bound":7.419631454162414},"point_estimate":6.514947971376596,"standard_error":0.4830420202154658}} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/500/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[6361.0,12722.0,19083.0,25444.0,31805.0,38166.0,44527.0,50888.0,57249.0,63610.0,69971.0,76332.0,82693.0,89054.0,95415.0,101776.0,108137.0,114498.0,120859.0,127220.0,133581.0,139942.0,146303.0,152664.0,159025.0,165386.0,171747.0,178108.0,184469.0,190830.0,197191.0,203552.0,209913.0,216274.0,222635.0,228996.0,235357.0,241718.0,248079.0,254440.0,260801.0,267162.0,273523.0,279884.0,286245.0,292606.0,298967.0,305328.0,311689.0,318050.0,324411.0,330772.0,337133.0,343494.0,349855.0,356216.0,362577.0,368938.0,375299.0,381660.0,388021.0,394382.0,400743.0,407104.0,413465.0,419826.0,426187.0,432548.0,438909.0,445270.0,451631.0,457992.0,464353.0,470714.0,477075.0,483436.0,489797.0,496158.0,502519.0,508880.0,515241.0,521602.0,527963.0,534324.0,540685.0,547046.0,553407.0,559768.0,566129.0,572490.0,578851.0,585212.0,591573.0,597934.0,604295.0,610656.0,617017.0,623378.0,629739.0,636100.0],"times":[187918.0,364709.0,759292.0,946625.0,1310002.0,1758625.0,2276248.0,2169626.0,2590582.0,2819249.0,2544167.0,3938499.0,3868333.0,2849623.0,4181000.0,5437542.0,3817793.0,4096000.0,5628623.0,4833457.0,5382957.0,6934458.0,5954833.0,6308417.0,7640708.0,6744500.0,6810291.0,8603667.0,7950875.0,7011126.0,9936292.0,8940122.0,7758290.0,11210583.0,10397125.0,9051208.0,9617374.0,11472378.0,10396500.0,10285876.0,12756708.0,11831916.0,11991125.0,12941084.0,12683583.0,12848168.0,14421998.0,12859002.0,14063835.0,15635168.0,14726540.0,13451832.0,17204208.0,21250126.0,16759459.0,15520210.0,17488289.0,15839582.0,16077249.0,18585708.0,18064667.0,17773042.0,19422041.0,18520919.0,18859669.0,20259917.0,19282376.0,20481960.0,22270416.0,20469789.0,19864751.0,24148877.0,22446960.0,22017460.0,22385833.0,24593248.0,23626916.0,24135414.0,27237042.0,25626002.0,25077625.0,26507874.0,27430712.0,27383125.0,29768750.0,28196334.0,26883751.0,32385917.0,30208584.0,31033167.0,33634581.0,33498710.0,31400335.0,33299958.0,34459374.0,34401461.0,34513832.0,38422790.0,36626376.0,35293001.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/500/new/tukey.json ================================================ [18.90254949982217,30.905929479919003,62.91494276017722,74.91832274027405] ================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/500/report/index.html ================================================ Import as owned and destroy/Cow<'_, str>/500 - Criterion.rs

Import as owned and destroy/Cow<'_, str>/500

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 49.471 ns 50.895 ns 52.182 ns
0.4722623 0.4892365 0.4752773
Mean 45.474 ns 46.750 ns 48.017 ns
Std. Dev. 5.5206 ns 6.5149 ns 7.4196 ns
Median 45.373 ns 46.777 ns 48.273 ns
MAD 4.3086 ns 6.0326 ns 7.5916 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −6.5955% −2.7303% +1.6105% (p = 0.21 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/Cow_'_, str_/report/index.html ================================================ Import as owned and destroy/Cow<'_, str> Summary - Criterion.rs

Import as owned and destroy/Cow<'_, str>

Violin Plot

Violin Plot

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

Line Chart

Line Chart

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

Import as owned and destroy/Cow<'_, str>/0

PDF of Slope Regression

Import as owned and destroy/Cow<'_, str>/10

PDF of Slope Regression

Import as owned and destroy/Cow<'_, str>/20

PDF of Slope Regression

Import as owned and destroy/Cow<'_, str>/100

PDF of Slope Regression

Import as owned and destroy/Cow<'_, str>/500

PDF of Slope Regression
================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/0/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (LocalStr - As is)","value_str":"0","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/0","directory_name":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/0","title":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/0"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/0/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.2174105632974404,"upper_bound":2.3209212155943755},"point_estimate":2.2593299330993077,"standard_error":0.027084428410779186},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.169831674139771,"upper_bound":2.3128125593032784},"point_estimate":2.256529756685847,"standard_error":0.038928222602210655},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.08538976432566761,"upper_bound":0.17864270396764162},"point_estimate":0.16305457674370233,"standard_error":0.029719083656677654},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.264623701546039,"upper_bound":2.305153993530497},"point_estimate":2.287032683640269,"standard_error":0.010333642414241015},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.11007712410494962,"upper_bound":0.4400373354452467},"point_estimate":0.2724259955195404,"standard_error":0.11176376067372233}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/0/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[136139.0,272278.0,408417.0,544556.0,680695.0,816834.0,952973.0,1089112.0,1225251.0,1361390.0,1497529.0,1633668.0,1769807.0,1905946.0,2042085.0,2178224.0,2314363.0,2450502.0,2586641.0,2722780.0,2858919.0,2995058.0,3131197.0,3267336.0,3403475.0,3539614.0,3675753.0,3811892.0,3948031.0,4084170.0,4220309.0,4356448.0,4492587.0,4628726.0,4764865.0,4901004.0,5037143.0,5173282.0,5309421.0,5445560.0,5581699.0,5717838.0,5853977.0,5990116.0,6126255.0,6262394.0,6398533.0,6534672.0,6670811.0,6806950.0,6943089.0,7079228.0,7215367.0,7351506.0,7487645.0,7623784.0,7759923.0,7896062.0,8032201.0,8168340.0,8304479.0,8440618.0,8576757.0,8712896.0,8849035.0,8985174.0,9121313.0,9257452.0,9393591.0,9529730.0,9665869.0,9802008.0,9938147.0,10074286.0,10210425.0,10346564.0,10482703.0,10618842.0,10754981.0,10891120.0,11027259.0,11163398.0,11299537.0,11435676.0,11571815.0,11707954.0,11844093.0,11980232.0,12116371.0,12252510.0,12388649.0,12524788.0,12660927.0,12797066.0,12933205.0,13069344.0,13205483.0,13341622.0,13477761.0,13613900.0],"times":[639167.0,564710.0,847418.0,1144707.0,1730791.0,1838127.0,2147334.0,2403669.0,2964959.0,2980999.0,3360542.0,3696085.0,4218791.0,4135582.0,4488331.0,5034456.0,5018753.0,5536125.0,6049625.0,6404250.0,6350040.0,6750500.0,7269001.0,7476708.0,7535879.0,7399459.0,7699375.0,7958168.0,8324500.0,8667499.0,8819624.0,9152708.0,9632789.0,9736753.0,9999626.0,10417373.0,10677918.0,11015251.0,11362415.0,11574418.0,11994792.0,12208794.0,12289666.0,12571167.0,13089917.0,13325793.0,13513376.0,13810041.0,13954833.0,14285499.0,14605248.0,14785502.0,15129918.0,15441127.0,15596958.0,16076293.0,16089794.0,16453623.0,16673290.0,17044458.0,17213083.0,20249208.0,20197667.0,20670707.0,21069249.0,21302164.0,21612418.0,21699874.0,21940540.0,22356083.0,22492709.0,23049206.0,23219832.0,23897875.0,24052082.0,24419168.0,24430750.0,24699663.0,24839665.0,25202709.0,25624251.0,25908540.0,26626417.0,26705749.0,27520665.0,27109541.0,27732209.0,27583833.0,27996333.0,28591751.0,28652623.0,29235417.0,29396668.0,30384959.0,30486542.0,30606334.0,30509708.0,31245790.0,31073374.0,31932918.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/0/base/tukey.json ================================================ [1.4162582251455733,1.7624575069718826,2.685655591842041,3.03185487366835] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/0/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.021341160228903963,"upper_bound":0.02852232316040214},"point_estimate":0.00002145625909277804,"standard_error":0.012941310444593138},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.05283554680087754,"upper_bound":0.038126637616528125},"point_estimate":-0.01705277072163114,"standard_error":0.02438148081277484}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/0/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (LocalStr - As is)","value_str":"0","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/0","directory_name":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/0","title":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/0"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/0/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.2174105632974404,"upper_bound":2.3209212155943755},"point_estimate":2.2593299330993077,"standard_error":0.027084428410779186},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.169831674139771,"upper_bound":2.3128125593032784},"point_estimate":2.256529756685847,"standard_error":0.038928222602210655},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.08538976432566761,"upper_bound":0.17864270396764162},"point_estimate":0.16305457674370233,"standard_error":0.029719083656677654},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.264623701546039,"upper_bound":2.305153993530497},"point_estimate":2.287032683640269,"standard_error":0.010333642414241015},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.11007712410494962,"upper_bound":0.4400373354452467},"point_estimate":0.2724259955195404,"standard_error":0.11176376067372233}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/0/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[136139.0,272278.0,408417.0,544556.0,680695.0,816834.0,952973.0,1089112.0,1225251.0,1361390.0,1497529.0,1633668.0,1769807.0,1905946.0,2042085.0,2178224.0,2314363.0,2450502.0,2586641.0,2722780.0,2858919.0,2995058.0,3131197.0,3267336.0,3403475.0,3539614.0,3675753.0,3811892.0,3948031.0,4084170.0,4220309.0,4356448.0,4492587.0,4628726.0,4764865.0,4901004.0,5037143.0,5173282.0,5309421.0,5445560.0,5581699.0,5717838.0,5853977.0,5990116.0,6126255.0,6262394.0,6398533.0,6534672.0,6670811.0,6806950.0,6943089.0,7079228.0,7215367.0,7351506.0,7487645.0,7623784.0,7759923.0,7896062.0,8032201.0,8168340.0,8304479.0,8440618.0,8576757.0,8712896.0,8849035.0,8985174.0,9121313.0,9257452.0,9393591.0,9529730.0,9665869.0,9802008.0,9938147.0,10074286.0,10210425.0,10346564.0,10482703.0,10618842.0,10754981.0,10891120.0,11027259.0,11163398.0,11299537.0,11435676.0,11571815.0,11707954.0,11844093.0,11980232.0,12116371.0,12252510.0,12388649.0,12524788.0,12660927.0,12797066.0,12933205.0,13069344.0,13205483.0,13341622.0,13477761.0,13613900.0],"times":[639167.0,564710.0,847418.0,1144707.0,1730791.0,1838127.0,2147334.0,2403669.0,2964959.0,2980999.0,3360542.0,3696085.0,4218791.0,4135582.0,4488331.0,5034456.0,5018753.0,5536125.0,6049625.0,6404250.0,6350040.0,6750500.0,7269001.0,7476708.0,7535879.0,7399459.0,7699375.0,7958168.0,8324500.0,8667499.0,8819624.0,9152708.0,9632789.0,9736753.0,9999626.0,10417373.0,10677918.0,11015251.0,11362415.0,11574418.0,11994792.0,12208794.0,12289666.0,12571167.0,13089917.0,13325793.0,13513376.0,13810041.0,13954833.0,14285499.0,14605248.0,14785502.0,15129918.0,15441127.0,15596958.0,16076293.0,16089794.0,16453623.0,16673290.0,17044458.0,17213083.0,20249208.0,20197667.0,20670707.0,21069249.0,21302164.0,21612418.0,21699874.0,21940540.0,22356083.0,22492709.0,23049206.0,23219832.0,23897875.0,24052082.0,24419168.0,24430750.0,24699663.0,24839665.0,25202709.0,25624251.0,25908540.0,26626417.0,26705749.0,27520665.0,27109541.0,27732209.0,27583833.0,27996333.0,28591751.0,28652623.0,29235417.0,29396668.0,30384959.0,30486542.0,30606334.0,30509708.0,31245790.0,31073374.0,31932918.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/0/new/tukey.json ================================================ [1.4162582251455733,1.7624575069718826,2.685655591842041,3.03185487366835] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/0/report/index.html ================================================ Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/0 - Criterion.rs

Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/0

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 2.2646 ns 2.2870 ns 2.3052 ns
0.8038610 0.8115195 0.8064949
Mean 2.2174 ns 2.2593 ns 2.3209 ns
Std. Dev. 110.08 ps 272.43 ps 440.04 ps
Median 2.1698 ns 2.2565 ns 2.3128 ns
MAD 85.390 ps 163.05 ps 178.64 ps

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −2.1341% +0.0021% +2.8522% (p = 1.00 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/10/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (LocalStr - As is)","value_str":"10","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/10","directory_name":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/10","title":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/10"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/10/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":29.945327770641544,"upper_bound":31.381296238872526},"point_estimate":30.642381678906762,"standard_error":0.36685661169024814},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":28.83919102450546,"upper_bound":32.21860394318145},"point_estimate":30.632846598769014,"standard_error":0.9140302183887603},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.1154430777320554,"upper_bound":5.0937843939971374},"point_estimate":4.563248897285517,"standard_error":0.4978920763149826},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":31.336249898427024,"upper_bound":32.50976514383824},"point_estimate":31.94131704944221,"standard_error":0.2992593516500935},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.0167940300243425,"upper_bound":4.56783533703572},"point_estimate":3.692702707296108,"standard_error":0.43301215780670715}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/10/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[16935.0,33870.0,50805.0,67740.0,84675.0,101610.0,118545.0,135480.0,152415.0,169350.0,186285.0,203220.0,220155.0,237090.0,254025.0,270960.0,287895.0,304830.0,321765.0,338700.0,355635.0,372570.0,389505.0,406440.0,423375.0,440310.0,457245.0,474180.0,491115.0,508050.0,524985.0,541920.0,558855.0,575790.0,592725.0,609660.0,626595.0,643530.0,660465.0,677400.0,694335.0,711270.0,728205.0,745140.0,762075.0,779010.0,795945.0,812880.0,829815.0,846750.0,863685.0,880620.0,897555.0,914490.0,931425.0,948360.0,965295.0,982230.0,999165.0,1016100.0,1033035.0,1049970.0,1066905.0,1083840.0,1100775.0,1117710.0,1134645.0,1151580.0,1168515.0,1185450.0,1202385.0,1219320.0,1236255.0,1253190.0,1270125.0,1287060.0,1303995.0,1320930.0,1337865.0,1354800.0,1371735.0,1388670.0,1405605.0,1422540.0,1439475.0,1456410.0,1473345.0,1490280.0,1507215.0,1524150.0,1541085.0,1558020.0,1574955.0,1591890.0,1608825.0,1625760.0,1642695.0,1659630.0,1676565.0,1693500.0],"times":[826250.0,896167.0,1339876.0,2314458.0,2289625.0,2718169.0,3121459.0,4000040.0,4011250.0,4883917.0,5430499.0,5469123.0,5807499.0,6657750.0,6773044.0,7276207.0,7989374.0,8048001.0,8561042.0,9605041.0,9847915.0,9880791.0,10476624.0,10929793.0,11311333.0,11818959.0,12182250.0,12658501.0,13191250.0,13496875.0,14084209.0,14398417.0,14809960.0,15216542.0,15942709.0,16174793.0,17067040.0,17003042.0,24552917.0,24414751.0,24418000.0,24784915.0,24730628.0,24942083.0,24407959.0,25012669.0,25157749.0,25619709.0,25274288.0,25798584.0,25269877.0,26107000.0,25697376.0,25831167.0,25983208.0,26125583.0,32909291.0,33596377.0,33079624.0,34246542.0,35762584.0,34706000.0,35559749.0,36183372.0,37084375.0,37004710.0,38238916.0,37823626.0,38045584.0,38905584.0,39039752.0,42185333.0,40618042.0,42003707.0,41163377.0,44097332.0,47266668.0,48088664.0,46981374.0,44598541.0,46390043.0,47205791.0,44664123.0,46832418.0,44714711.0,45750000.0,45717127.0,45630708.0,46191333.0,45043251.0,44741291.0,44206541.0,45200334.0,43904210.0,51209084.0,55410000.0,53315374.0,56318667.0,55350418.0,57278333.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/10/base/tukey.json ================================================ [7.369500541458976,17.133401773460978,43.170471725466314,52.93437295746832] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/10/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.04472214077928836,"upper_bound":0.030367434312242706},"point_estimate":-0.006814081528786375,"standard_error":0.019247511168490487},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.08631407810437497,"upper_bound":0.07929590815106846},"point_estimate":-0.009842692514336893,"standard_error":0.0418898999734983}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/10/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (LocalStr - As is)","value_str":"10","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/10","directory_name":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/10","title":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/10"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/10/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":29.945327770641544,"upper_bound":31.381296238872526},"point_estimate":30.642381678906762,"standard_error":0.36685661169024814},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":28.83919102450546,"upper_bound":32.21860394318145},"point_estimate":30.632846598769014,"standard_error":0.9140302183887603},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.1154430777320554,"upper_bound":5.0937843939971374},"point_estimate":4.563248897285517,"standard_error":0.4978920763149826},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":31.336249898427024,"upper_bound":32.50976514383824},"point_estimate":31.94131704944221,"standard_error":0.2992593516500935},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.0167940300243425,"upper_bound":4.56783533703572},"point_estimate":3.692702707296108,"standard_error":0.43301215780670715}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/10/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[16935.0,33870.0,50805.0,67740.0,84675.0,101610.0,118545.0,135480.0,152415.0,169350.0,186285.0,203220.0,220155.0,237090.0,254025.0,270960.0,287895.0,304830.0,321765.0,338700.0,355635.0,372570.0,389505.0,406440.0,423375.0,440310.0,457245.0,474180.0,491115.0,508050.0,524985.0,541920.0,558855.0,575790.0,592725.0,609660.0,626595.0,643530.0,660465.0,677400.0,694335.0,711270.0,728205.0,745140.0,762075.0,779010.0,795945.0,812880.0,829815.0,846750.0,863685.0,880620.0,897555.0,914490.0,931425.0,948360.0,965295.0,982230.0,999165.0,1016100.0,1033035.0,1049970.0,1066905.0,1083840.0,1100775.0,1117710.0,1134645.0,1151580.0,1168515.0,1185450.0,1202385.0,1219320.0,1236255.0,1253190.0,1270125.0,1287060.0,1303995.0,1320930.0,1337865.0,1354800.0,1371735.0,1388670.0,1405605.0,1422540.0,1439475.0,1456410.0,1473345.0,1490280.0,1507215.0,1524150.0,1541085.0,1558020.0,1574955.0,1591890.0,1608825.0,1625760.0,1642695.0,1659630.0,1676565.0,1693500.0],"times":[826250.0,896167.0,1339876.0,2314458.0,2289625.0,2718169.0,3121459.0,4000040.0,4011250.0,4883917.0,5430499.0,5469123.0,5807499.0,6657750.0,6773044.0,7276207.0,7989374.0,8048001.0,8561042.0,9605041.0,9847915.0,9880791.0,10476624.0,10929793.0,11311333.0,11818959.0,12182250.0,12658501.0,13191250.0,13496875.0,14084209.0,14398417.0,14809960.0,15216542.0,15942709.0,16174793.0,17067040.0,17003042.0,24552917.0,24414751.0,24418000.0,24784915.0,24730628.0,24942083.0,24407959.0,25012669.0,25157749.0,25619709.0,25274288.0,25798584.0,25269877.0,26107000.0,25697376.0,25831167.0,25983208.0,26125583.0,32909291.0,33596377.0,33079624.0,34246542.0,35762584.0,34706000.0,35559749.0,36183372.0,37084375.0,37004710.0,38238916.0,37823626.0,38045584.0,38905584.0,39039752.0,42185333.0,40618042.0,42003707.0,41163377.0,44097332.0,47266668.0,48088664.0,46981374.0,44598541.0,46390043.0,47205791.0,44664123.0,46832418.0,44714711.0,45750000.0,45717127.0,45630708.0,46191333.0,45043251.0,44741291.0,44206541.0,45200334.0,43904210.0,51209084.0,55410000.0,53315374.0,56318667.0,55350418.0,57278333.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/10/new/tukey.json ================================================ [7.369500541458976,17.133401773460978,43.170471725466314,52.93437295746832] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/10/report/index.html ================================================ Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/10 - Criterion.rs

Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/10

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 31.336 ns 31.941 ns 32.510 ns
0.5923640 0.6062518 0.5939611
Mean 29.945 ns 30.642 ns 31.381 ns
Std. Dev. 3.0168 ns 3.6927 ns 4.5678 ns
Median 28.839 ns 30.633 ns 32.219 ns
MAD 3.1154 ns 4.5632 ns 5.0938 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −4.4722% −0.6814% +3.0367% (p = 0.73 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/100/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (LocalStr - As is)","value_str":"100","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/100","directory_name":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/100","title":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/100"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/100/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":39.10725360630788,"upper_bound":40.629874625871196},"point_estimate":39.87494272000391,"standard_error":0.387373586526067},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":39.17786726034886,"upper_bound":40.53853811476669},"point_estimate":39.83022558084764,"standard_error":0.35591622183879074},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.8795819884648037,"upper_bound":4.933856995597923},"point_estimate":3.875451622564626,"standard_error":0.5069292929129212},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40.11815703038945,"upper_bound":41.60122796428031},"point_estimate":40.85372321213239,"standard_error":0.37754181373461815},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.3867474592970517,"upper_bound":4.3316359781800715},"point_estimate":3.8921282750112898,"standard_error":0.24140487565527635}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/100/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[10851.0,21702.0,32553.0,43404.0,54255.0,65106.0,75957.0,86808.0,97659.0,108510.0,119361.0,130212.0,141063.0,151914.0,162765.0,173616.0,184467.0,195318.0,206169.0,217020.0,227871.0,238722.0,249573.0,260424.0,271275.0,282126.0,292977.0,303828.0,314679.0,325530.0,336381.0,347232.0,358083.0,368934.0,379785.0,390636.0,401487.0,412338.0,423189.0,434040.0,444891.0,455742.0,466593.0,477444.0,488295.0,499146.0,509997.0,520848.0,531699.0,542550.0,553401.0,564252.0,575103.0,585954.0,596805.0,607656.0,618507.0,629358.0,640209.0,651060.0,661911.0,672762.0,683613.0,694464.0,705315.0,716166.0,727017.0,737868.0,748719.0,759570.0,770421.0,781272.0,792123.0,802974.0,813825.0,824676.0,835527.0,846378.0,857229.0,868080.0,878931.0,889782.0,900633.0,911484.0,922335.0,933186.0,944037.0,954888.0,965739.0,976590.0,987441.0,998292.0,1009143.0,1019994.0,1030845.0,1041696.0,1052547.0,1063398.0,1074249.0,1085100.0],"times":[359373.0,702875.0,1015875.0,1325500.0,2004708.0,2131666.0,2748792.0,2783000.0,4451584.0,4272332.0,4442332.0,4763711.0,5943792.0,6125168.0,6722167.0,6864752.0,8157417.0,8290376.0,7965500.0,7897500.0,7489543.0,9597123.0,9932376.0,11373583.0,11305083.0,11969541.0,11742083.0,11153208.0,10715502.0,12694542.0,13870417.0,16025250.0,16420331.0,16694959.0,16092917.0,14961666.0,14172875.0,13240418.0,14722750.0,16518918.0,19795915.0,19918751.0,19835247.0,18773209.0,18278294.0,16839292.0,18153958.0,18985498.0,24412499.0,24421000.0,24028209.0,22907334.0,21351833.0,20447834.0,22629791.0,23190791.0,24238209.0,28745666.0,27711833.0,26605916.0,25400125.0,26665751.0,24580374.0,27108751.0,26921583.0,33644918.0,32796250.0,32445416.0,30917624.0,30589583.0,29191582.0,30786875.0,32148959.0,37155499.0,36991373.0,35505918.0,36602041.0,34263710.0,34157625.0,32630082.0,34993665.0,33537664.0,40450501.0,38679709.0,39575125.0,37583960.0,37302043.0,36364418.0,38587292.0,37450167.0,46181041.0,43323831.0,43422417.0,43001916.0,40826457.0,42228833.0,39751666.0,42376584.0,41326165.0,48426833.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/100/base/tukey.json ================================================ [21.851083939149802,29.758641825775634,50.84546285677785,58.75302074340368] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/100/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.012983655101218865,"upper_bound":0.040823627919725186},"point_estimate":0.013863046956114067,"standard_error":0.013680135165924263},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.014323015151105678,"upper_bound":0.047368722897529025},"point_estimate":0.023682192018896764,"standard_error":0.015647456140019514}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/100/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (LocalStr - As is)","value_str":"100","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/100","directory_name":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/100","title":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/100"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/100/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":39.10725360630788,"upper_bound":40.629874625871196},"point_estimate":39.87494272000391,"standard_error":0.387373586526067},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":39.17786726034886,"upper_bound":40.53853811476669},"point_estimate":39.83022558084764,"standard_error":0.35591622183879074},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.8795819884648037,"upper_bound":4.933856995597923},"point_estimate":3.875451622564626,"standard_error":0.5069292929129212},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40.11815703038945,"upper_bound":41.60122796428031},"point_estimate":40.85372321213239,"standard_error":0.37754181373461815},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.3867474592970517,"upper_bound":4.3316359781800715},"point_estimate":3.8921282750112898,"standard_error":0.24140487565527635}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/100/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[10851.0,21702.0,32553.0,43404.0,54255.0,65106.0,75957.0,86808.0,97659.0,108510.0,119361.0,130212.0,141063.0,151914.0,162765.0,173616.0,184467.0,195318.0,206169.0,217020.0,227871.0,238722.0,249573.0,260424.0,271275.0,282126.0,292977.0,303828.0,314679.0,325530.0,336381.0,347232.0,358083.0,368934.0,379785.0,390636.0,401487.0,412338.0,423189.0,434040.0,444891.0,455742.0,466593.0,477444.0,488295.0,499146.0,509997.0,520848.0,531699.0,542550.0,553401.0,564252.0,575103.0,585954.0,596805.0,607656.0,618507.0,629358.0,640209.0,651060.0,661911.0,672762.0,683613.0,694464.0,705315.0,716166.0,727017.0,737868.0,748719.0,759570.0,770421.0,781272.0,792123.0,802974.0,813825.0,824676.0,835527.0,846378.0,857229.0,868080.0,878931.0,889782.0,900633.0,911484.0,922335.0,933186.0,944037.0,954888.0,965739.0,976590.0,987441.0,998292.0,1009143.0,1019994.0,1030845.0,1041696.0,1052547.0,1063398.0,1074249.0,1085100.0],"times":[359373.0,702875.0,1015875.0,1325500.0,2004708.0,2131666.0,2748792.0,2783000.0,4451584.0,4272332.0,4442332.0,4763711.0,5943792.0,6125168.0,6722167.0,6864752.0,8157417.0,8290376.0,7965500.0,7897500.0,7489543.0,9597123.0,9932376.0,11373583.0,11305083.0,11969541.0,11742083.0,11153208.0,10715502.0,12694542.0,13870417.0,16025250.0,16420331.0,16694959.0,16092917.0,14961666.0,14172875.0,13240418.0,14722750.0,16518918.0,19795915.0,19918751.0,19835247.0,18773209.0,18278294.0,16839292.0,18153958.0,18985498.0,24412499.0,24421000.0,24028209.0,22907334.0,21351833.0,20447834.0,22629791.0,23190791.0,24238209.0,28745666.0,27711833.0,26605916.0,25400125.0,26665751.0,24580374.0,27108751.0,26921583.0,33644918.0,32796250.0,32445416.0,30917624.0,30589583.0,29191582.0,30786875.0,32148959.0,37155499.0,36991373.0,35505918.0,36602041.0,34263710.0,34157625.0,32630082.0,34993665.0,33537664.0,40450501.0,38679709.0,39575125.0,37583960.0,37302043.0,36364418.0,38587292.0,37450167.0,46181041.0,43323831.0,43422417.0,43001916.0,40826457.0,42228833.0,39751666.0,42376584.0,41326165.0,48426833.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/100/new/tukey.json ================================================ [21.851083939149802,29.758641825775634,50.84546285677785,58.75302074340368] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/100/report/index.html ================================================ Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/100 - Criterion.rs

Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/100

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 40.118 ns 40.854 ns 41.601 ns
0.6340554 0.6469776 0.6336412
Mean 39.107 ns 39.875 ns 40.630 ns
Std. Dev. 3.3867 ns 3.8921 ns 4.3316 ns
Median 39.178 ns 39.830 ns 40.539 ns
MAD 2.8796 ns 3.8755 ns 4.9339 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −1.2984% +1.3863% +4.0824% (p = 0.31 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/20/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (LocalStr - As is)","value_str":"20","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/20","directory_name":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/20","title":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/20"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/20/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":32.162190279230416,"upper_bound":33.73576441665021},"point_estimate":32.932617555582404,"standard_error":0.3992068260428171},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":32.40946588691811,"upper_bound":34.03951957198316},"point_estimate":33.71243117723701,"standard_error":0.46660731813570117},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.8165833817198327,"upper_bound":4.875672095495967},"point_estimate":3.612449358628168,"standard_error":0.5321929025075175},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":33.21658002660252,"upper_bound":34.764268186111096},"point_estimate":33.99646992615506,"standard_error":0.39443579096886067},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.210951421611759,"upper_bound":4.974074743866796},"point_estimate":4.00295439089472,"standard_error":0.47678382091337584}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/20/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[14832.0,29664.0,44496.0,59328.0,74160.0,88992.0,103824.0,118656.0,133488.0,148320.0,163152.0,177984.0,192816.0,207648.0,222480.0,237312.0,252144.0,266976.0,281808.0,296640.0,311472.0,326304.0,341136.0,355968.0,370800.0,385632.0,400464.0,415296.0,430128.0,444960.0,459792.0,474624.0,489456.0,504288.0,519120.0,533952.0,548784.0,563616.0,578448.0,593280.0,608112.0,622944.0,637776.0,652608.0,667440.0,682272.0,697104.0,711936.0,726768.0,741600.0,756432.0,771264.0,786096.0,800928.0,815760.0,830592.0,845424.0,860256.0,875088.0,889920.0,904752.0,919584.0,934416.0,949248.0,964080.0,978912.0,993744.0,1008576.0,1023408.0,1038240.0,1053072.0,1067904.0,1082736.0,1097568.0,1112400.0,1127232.0,1142064.0,1156896.0,1171728.0,1186560.0,1201392.0,1216224.0,1231056.0,1245888.0,1260720.0,1275552.0,1290384.0,1305216.0,1320048.0,1334880.0,1349712.0,1364544.0,1379376.0,1394208.0,1409040.0,1423872.0,1438704.0,1453536.0,1468368.0,1483200.0],"times":[779169.0,794252.0,1190416.0,1689831.0,2262501.0,2456584.0,3728956.0,3222374.0,3689251.0,4031626.0,4452791.0,4852581.0,5622875.0,5705168.0,6272332.0,6390752.0,7374248.0,7311793.0,7568918.0,8063959.0,8525791.0,12653624.0,12187332.0,12478708.0,12962251.0,12286292.0,12643000.0,12633292.0,12860500.0,12933165.0,12915416.0,14498375.0,16560875.0,17338000.0,18156125.0,17712206.0,18687292.0,19122332.0,19620333.0,20133541.0,20352414.0,21132999.0,21729374.0,24335708.0,24305585.0,23631624.0,24011540.0,24146124.0,23458793.0,23289581.0,22959918.0,23639459.0,22301210.0,26062750.0,26745918.0,28549167.0,29353374.0,30222374.0,31504750.0,33505249.0,32815292.0,33676502.0,33898747.0,33801959.0,34563668.0,37186292.0,35802668.0,35619626.0,35497833.0,34998000.0,34162790.0,33675959.0,34041501.0,32857707.0,31615460.0,38641169.0,38505708.0,38628374.0,38384584.0,40388998.0,47284250.0,47149792.0,47968126.0,47948789.0,45966541.0,46890084.0,49298542.0,48456335.0,47385209.0,46544126.0,45926459.0,44738499.0,44273916.0,43114166.0,41985752.0,41266751.0,41827833.0,48783459.0,49695293.0,52588042.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/20/base/tukey.json ================================================ [13.440598352089658,21.657190997230984,43.56810471760785,51.78469736274918] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/20/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.023116750706297165,"upper_bound":0.04338542516871661},"point_estimate":0.009892514775224903,"standard_error":0.01703799567847585},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.03754129196418139,"upper_bound":0.059848016042034075},"point_estimate":0.008425334663055173,"standard_error":0.022961660537071847}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/20/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (LocalStr - As is)","value_str":"20","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/20","directory_name":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/20","title":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/20"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/20/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":32.162190279230416,"upper_bound":33.73576441665021},"point_estimate":32.932617555582404,"standard_error":0.3992068260428171},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":32.40946588691811,"upper_bound":34.03951957198316},"point_estimate":33.71243117723701,"standard_error":0.46660731813570117},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.8165833817198327,"upper_bound":4.875672095495967},"point_estimate":3.612449358628168,"standard_error":0.5321929025075175},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":33.21658002660252,"upper_bound":34.764268186111096},"point_estimate":33.99646992615506,"standard_error":0.39443579096886067},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.210951421611759,"upper_bound":4.974074743866796},"point_estimate":4.00295439089472,"standard_error":0.47678382091337584}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/20/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[14832.0,29664.0,44496.0,59328.0,74160.0,88992.0,103824.0,118656.0,133488.0,148320.0,163152.0,177984.0,192816.0,207648.0,222480.0,237312.0,252144.0,266976.0,281808.0,296640.0,311472.0,326304.0,341136.0,355968.0,370800.0,385632.0,400464.0,415296.0,430128.0,444960.0,459792.0,474624.0,489456.0,504288.0,519120.0,533952.0,548784.0,563616.0,578448.0,593280.0,608112.0,622944.0,637776.0,652608.0,667440.0,682272.0,697104.0,711936.0,726768.0,741600.0,756432.0,771264.0,786096.0,800928.0,815760.0,830592.0,845424.0,860256.0,875088.0,889920.0,904752.0,919584.0,934416.0,949248.0,964080.0,978912.0,993744.0,1008576.0,1023408.0,1038240.0,1053072.0,1067904.0,1082736.0,1097568.0,1112400.0,1127232.0,1142064.0,1156896.0,1171728.0,1186560.0,1201392.0,1216224.0,1231056.0,1245888.0,1260720.0,1275552.0,1290384.0,1305216.0,1320048.0,1334880.0,1349712.0,1364544.0,1379376.0,1394208.0,1409040.0,1423872.0,1438704.0,1453536.0,1468368.0,1483200.0],"times":[779169.0,794252.0,1190416.0,1689831.0,2262501.0,2456584.0,3728956.0,3222374.0,3689251.0,4031626.0,4452791.0,4852581.0,5622875.0,5705168.0,6272332.0,6390752.0,7374248.0,7311793.0,7568918.0,8063959.0,8525791.0,12653624.0,12187332.0,12478708.0,12962251.0,12286292.0,12643000.0,12633292.0,12860500.0,12933165.0,12915416.0,14498375.0,16560875.0,17338000.0,18156125.0,17712206.0,18687292.0,19122332.0,19620333.0,20133541.0,20352414.0,21132999.0,21729374.0,24335708.0,24305585.0,23631624.0,24011540.0,24146124.0,23458793.0,23289581.0,22959918.0,23639459.0,22301210.0,26062750.0,26745918.0,28549167.0,29353374.0,30222374.0,31504750.0,33505249.0,32815292.0,33676502.0,33898747.0,33801959.0,34563668.0,37186292.0,35802668.0,35619626.0,35497833.0,34998000.0,34162790.0,33675959.0,34041501.0,32857707.0,31615460.0,38641169.0,38505708.0,38628374.0,38384584.0,40388998.0,47284250.0,47149792.0,47968126.0,47948789.0,45966541.0,46890084.0,49298542.0,48456335.0,47385209.0,46544126.0,45926459.0,44738499.0,44273916.0,43114166.0,41985752.0,41266751.0,41827833.0,48783459.0,49695293.0,52588042.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/20/new/tukey.json ================================================ [13.440598352089658,21.657190997230984,43.56810471760785,51.78469736274918] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/20/report/index.html ================================================ Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/20 - Criterion.rs

Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/20

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 33.217 ns 33.996 ns 34.764 ns
0.5254171 0.5427217 0.5259331
Mean 32.162 ns 32.933 ns 33.736 ns
Std. Dev. 3.2110 ns 4.0030 ns 4.9741 ns
Median 32.409 ns 33.712 ns 34.040 ns
MAD 2.8166 ns 3.6124 ns 4.8757 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −2.3117% +0.9893% +4.3385% (p = 0.55 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/500/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (LocalStr - As is)","value_str":"500","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/500","directory_name":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/500","title":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/500"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/500/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":47.08994788302508,"upper_bound":49.585594548676305},"point_estimate":48.34424819013874,"standard_error":0.6365075737329349},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":46.9123790984206,"upper_bound":50.43560765555612},"point_estimate":48.88122709234578,"standard_error":0.9748691235316207},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":5.203084378930035,"upper_bound":8.189626588040618},"point_estimate":6.924253627803552,"standard_error":0.7556988592361082},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":51.12379863344037,"upper_bound":53.78804657613093},"point_estimate":52.52187667285391,"standard_error":0.6796666641478705},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":5.457165755020431,"upper_bound":7.250942173005163},"point_estimate":6.385455065257362,"standard_error":0.45806252327880814}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/500/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[6597.0,13194.0,19791.0,26388.0,32985.0,39582.0,46179.0,52776.0,59373.0,65970.0,72567.0,79164.0,85761.0,92358.0,98955.0,105552.0,112149.0,118746.0,125343.0,131940.0,138537.0,145134.0,151731.0,158328.0,164925.0,171522.0,178119.0,184716.0,191313.0,197910.0,204507.0,211104.0,217701.0,224298.0,230895.0,237492.0,244089.0,250686.0,257283.0,263880.0,270477.0,277074.0,283671.0,290268.0,296865.0,303462.0,310059.0,316656.0,323253.0,329850.0,336447.0,343044.0,349641.0,356238.0,362835.0,369432.0,376029.0,382626.0,389223.0,395820.0,402417.0,409014.0,415611.0,422208.0,428805.0,435402.0,441999.0,448596.0,455193.0,461790.0,468387.0,474984.0,481581.0,488178.0,494775.0,501372.0,507969.0,514566.0,521163.0,527760.0,534357.0,540954.0,547551.0,554148.0,560745.0,567342.0,573939.0,580536.0,587133.0,593730.0,600327.0,606924.0,613521.0,620118.0,626715.0,633312.0,639909.0,646506.0,653103.0,659700.0],"times":[204749.0,399333.0,806791.0,983127.0,1432334.0,1927499.0,1855041.0,2527123.0,2764542.0,2725627.0,2746375.0,4185959.0,3746791.0,3344791.0,5073958.0,4378291.0,4280583.0,5999751.0,5247249.0,5441834.0,7814252.0,6084000.0,6341417.0,8188665.0,7155166.0,7444626.0,8983540.0,8299082.0,8310332.0,9912333.0,9062582.0,9348750.0,11199084.0,10310831.0,9452335.0,12727252.0,11248250.0,10154413.0,13078666.0,12593583.0,11054543.0,14523501.0,13512417.0,11762374.0,15248666.0,14176127.0,12917289.0,16998877.0,15510416.0,14111625.0,15100124.0,16831832.0,15249040.0,15201958.0,17908833.0,16164876.0,17640415.0,18847249.0,17908125.0,18662375.0,20055414.0,19146417.0,18821207.0,21613999.0,20292000.0,20073165.0,21787165.0,21423790.0,21596044.0,24389582.0,23743750.0,23715458.0,26031625.0,25036750.0,24637707.0,26957043.0,26319958.0,26058167.0,28294917.0,26248999.0,28594998.0,30116916.0,28620791.0,30098625.0,32452751.0,30283251.0,32538334.0,36930334.0,32508083.0,32682375.0,36569585.0,33695917.0,32564791.0,37082003.0,34246749.0,34250334.0,38820834.0,36855585.0,35905542.0,40933665.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/500/base/tukey.json ================================================ [15.49640521493081,29.533036243227173,66.96405231868414,81.00068334698051] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/500/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.028980930402825223,"upper_bound":0.04053705185218694},"point_estimate":0.005215068573570347,"standard_error":0.017843819969436334},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.03243402080116653,"upper_bound":0.05339101476240835},"point_estimate":0.019196670416373074,"standard_error":0.023032189675672464}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/500/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (LocalStr - As is)","value_str":"500","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/500","directory_name":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/500","title":"Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/500"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/500/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":47.08994788302508,"upper_bound":49.585594548676305},"point_estimate":48.34424819013874,"standard_error":0.6365075737329349},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":46.9123790984206,"upper_bound":50.43560765555612},"point_estimate":48.88122709234578,"standard_error":0.9748691235316207},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":5.203084378930035,"upper_bound":8.189626588040618},"point_estimate":6.924253627803552,"standard_error":0.7556988592361082},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":51.12379863344037,"upper_bound":53.78804657613093},"point_estimate":52.52187667285391,"standard_error":0.6796666641478705},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":5.457165755020431,"upper_bound":7.250942173005163},"point_estimate":6.385455065257362,"standard_error":0.45806252327880814}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/500/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[6597.0,13194.0,19791.0,26388.0,32985.0,39582.0,46179.0,52776.0,59373.0,65970.0,72567.0,79164.0,85761.0,92358.0,98955.0,105552.0,112149.0,118746.0,125343.0,131940.0,138537.0,145134.0,151731.0,158328.0,164925.0,171522.0,178119.0,184716.0,191313.0,197910.0,204507.0,211104.0,217701.0,224298.0,230895.0,237492.0,244089.0,250686.0,257283.0,263880.0,270477.0,277074.0,283671.0,290268.0,296865.0,303462.0,310059.0,316656.0,323253.0,329850.0,336447.0,343044.0,349641.0,356238.0,362835.0,369432.0,376029.0,382626.0,389223.0,395820.0,402417.0,409014.0,415611.0,422208.0,428805.0,435402.0,441999.0,448596.0,455193.0,461790.0,468387.0,474984.0,481581.0,488178.0,494775.0,501372.0,507969.0,514566.0,521163.0,527760.0,534357.0,540954.0,547551.0,554148.0,560745.0,567342.0,573939.0,580536.0,587133.0,593730.0,600327.0,606924.0,613521.0,620118.0,626715.0,633312.0,639909.0,646506.0,653103.0,659700.0],"times":[204749.0,399333.0,806791.0,983127.0,1432334.0,1927499.0,1855041.0,2527123.0,2764542.0,2725627.0,2746375.0,4185959.0,3746791.0,3344791.0,5073958.0,4378291.0,4280583.0,5999751.0,5247249.0,5441834.0,7814252.0,6084000.0,6341417.0,8188665.0,7155166.0,7444626.0,8983540.0,8299082.0,8310332.0,9912333.0,9062582.0,9348750.0,11199084.0,10310831.0,9452335.0,12727252.0,11248250.0,10154413.0,13078666.0,12593583.0,11054543.0,14523501.0,13512417.0,11762374.0,15248666.0,14176127.0,12917289.0,16998877.0,15510416.0,14111625.0,15100124.0,16831832.0,15249040.0,15201958.0,17908833.0,16164876.0,17640415.0,18847249.0,17908125.0,18662375.0,20055414.0,19146417.0,18821207.0,21613999.0,20292000.0,20073165.0,21787165.0,21423790.0,21596044.0,24389582.0,23743750.0,23715458.0,26031625.0,25036750.0,24637707.0,26957043.0,26319958.0,26058167.0,28294917.0,26248999.0,28594998.0,30116916.0,28620791.0,30098625.0,32452751.0,30283251.0,32538334.0,36930334.0,32508083.0,32682375.0,36569585.0,33695917.0,32564791.0,37082003.0,34246749.0,34250334.0,38820834.0,36855585.0,35905542.0,40933665.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/500/new/tukey.json ================================================ [15.49640521493081,29.533036243227173,66.96405231868414,81.00068334698051] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/500/report/index.html ================================================ Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/500 - Criterion.rs

Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/500

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 51.124 ns 52.522 ns 53.788 ns
0.5648364 0.5813226 0.5677313
Mean 47.090 ns 48.344 ns 49.586 ns
Std. Dev. 5.4572 ns 6.3855 ns 7.2509 ns
Median 46.912 ns 48.881 ns 50.436 ns
MAD 5.2031 ns 6.9243 ns 8.1896 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −2.8981% +0.5215% +4.0537% (p = 0.77 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/report/index.html ================================================ Import as owned and destroy/FlexStr 0.10 (LocalStr - As is) Summary - Criterion.rs

Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)

Violin Plot

Violin Plot

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

Line Chart

Line Chart

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

Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/0

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/10

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/20

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/100

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/500

PDF of Slope Regression
================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/0/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (LocalStr - Optimized)","value_str":"0","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/0","directory_name":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/0","title":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/0"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/0/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":11.311003727539855,"upper_bound":11.559594601730529},"point_estimate":11.409783477656193,"standard_error":0.06533363794225039},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":11.262184854150114,"upper_bound":11.343607388359153},"point_estimate":11.302727797974221,"standard_error":0.02291783834540119},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.14426143708727593,"upper_bound":0.23019622526809003},"point_estimate":0.18950330149828645,"standard_error":0.022816730313649707},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":11.280001700601161,"upper_bound":11.376517793075402},"point_estimate":11.32535985388519,"standard_error":0.024674339374102856},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.2044901287464052,"upper_bound":1.0731580810066437},"point_estimate":0.6576687502567403,"standard_error":0.28089741235138854}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/0/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[63090.0,126180.0,189270.0,252360.0,315450.0,378540.0,441630.0,504720.0,567810.0,630900.0,693990.0,757080.0,820170.0,883260.0,946350.0,1009440.0,1072530.0,1135620.0,1198710.0,1261800.0,1324890.0,1387980.0,1451070.0,1514160.0,1577250.0,1640340.0,1703430.0,1766520.0,1829610.0,1892700.0,1955790.0,2018880.0,2081970.0,2145060.0,2208150.0,2271240.0,2334330.0,2397420.0,2460510.0,2523600.0,2586690.0,2649780.0,2712870.0,2775960.0,2839050.0,2902140.0,2965230.0,3028320.0,3091410.0,3154500.0,3217590.0,3280680.0,3343770.0,3406860.0,3469950.0,3533040.0,3596130.0,3659220.0,3722310.0,3785400.0,3848490.0,3911580.0,3974670.0,4037760.0,4100850.0,4163940.0,4227030.0,4290120.0,4353210.0,4416300.0,4479390.0,4542480.0,4605570.0,4668660.0,4731750.0,4794840.0,4857930.0,4921020.0,4984110.0,5047200.0,5110290.0,5173380.0,5236470.0,5299560.0,5362650.0,5425740.0,5488830.0,5551920.0,5615010.0,5678100.0,5741190.0,5804280.0,5867370.0,5930460.0,5993550.0,6056640.0,6119730.0,6182820.0,6245910.0,6309000.0],"times":[1095503.0,1430042.0,2131709.0,3175751.0,3458042.0,4737958.0,4866209.0,5543749.0,6262460.0,6890626.0,8210542.0,8958666.0,9492333.0,9905456.0,10821415.0,11501041.0,12042083.0,12681042.0,13571291.0,14481874.0,14942250.0,15443708.0,16621710.0,17287207.0,17542876.0,18697251.0,19278085.0,19776043.0,20284291.0,21345665.0,22101332.0,22717251.0,24143500.0,24156291.0,24507374.0,25450209.0,26000916.0,27156875.0,27987250.0,29045752.0,29648291.0,29992667.0,31372457.0,31875585.0,31927459.0,33114831.0,33271333.0,34764876.0,34333625.0,35324498.0,36643084.0,37505791.0,38373998.0,39058708.0,40300915.0,39386708.0,40544915.0,41603833.0,43861292.0,43039793.0,43765418.0,43055416.0,46698792.0,45543875.0,45868082.0,50027333.0,49399333.0,49957999.0,48735126.0,51005832.0,49513375.0,50665461.0,51387335.0,52583167.0,53955501.0,53521541.0,54203623.0,55712958.0,55712251.0,57334542.0,57771792.0,60100292.0,60079333.0,60008375.0,60722085.0,60888042.0,62146581.0,61592957.0,62703332.0,64056542.0,64553165.0,65126208.0,65577751.0,66800959.0,67069126.0,69132040.0,68861459.0,72693250.0,70523333.0,70319249.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/0/base/tukey.json ================================================ [10.385981385141022,10.787449402350191,11.85803078157464,12.25949879878381] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/0/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.03432156752938607,"upper_bound":-0.0028331533879441405},"point_estimate":-0.018356337477656193,"standard_error":0.007875418974317407},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.025137830828085073,"upper_bound":-0.015737780960074943},"point_estimate":-0.0198567905382675,"standard_error":0.00247325764055382}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/0/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (LocalStr - Optimized)","value_str":"0","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/0","directory_name":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/0","title":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/0"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/0/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":11.311003727539855,"upper_bound":11.559594601730529},"point_estimate":11.409783477656193,"standard_error":0.06533363794225039},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":11.262184854150114,"upper_bound":11.343607388359153},"point_estimate":11.302727797974221,"standard_error":0.02291783834540119},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.14426143708727593,"upper_bound":0.23019622526809003},"point_estimate":0.18950330149828645,"standard_error":0.022816730313649707},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":11.280001700601161,"upper_bound":11.376517793075402},"point_estimate":11.32535985388519,"standard_error":0.024674339374102856},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.2044901287464052,"upper_bound":1.0731580810066437},"point_estimate":0.6576687502567403,"standard_error":0.28089741235138854}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/0/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[63090.0,126180.0,189270.0,252360.0,315450.0,378540.0,441630.0,504720.0,567810.0,630900.0,693990.0,757080.0,820170.0,883260.0,946350.0,1009440.0,1072530.0,1135620.0,1198710.0,1261800.0,1324890.0,1387980.0,1451070.0,1514160.0,1577250.0,1640340.0,1703430.0,1766520.0,1829610.0,1892700.0,1955790.0,2018880.0,2081970.0,2145060.0,2208150.0,2271240.0,2334330.0,2397420.0,2460510.0,2523600.0,2586690.0,2649780.0,2712870.0,2775960.0,2839050.0,2902140.0,2965230.0,3028320.0,3091410.0,3154500.0,3217590.0,3280680.0,3343770.0,3406860.0,3469950.0,3533040.0,3596130.0,3659220.0,3722310.0,3785400.0,3848490.0,3911580.0,3974670.0,4037760.0,4100850.0,4163940.0,4227030.0,4290120.0,4353210.0,4416300.0,4479390.0,4542480.0,4605570.0,4668660.0,4731750.0,4794840.0,4857930.0,4921020.0,4984110.0,5047200.0,5110290.0,5173380.0,5236470.0,5299560.0,5362650.0,5425740.0,5488830.0,5551920.0,5615010.0,5678100.0,5741190.0,5804280.0,5867370.0,5930460.0,5993550.0,6056640.0,6119730.0,6182820.0,6245910.0,6309000.0],"times":[1095503.0,1430042.0,2131709.0,3175751.0,3458042.0,4737958.0,4866209.0,5543749.0,6262460.0,6890626.0,8210542.0,8958666.0,9492333.0,9905456.0,10821415.0,11501041.0,12042083.0,12681042.0,13571291.0,14481874.0,14942250.0,15443708.0,16621710.0,17287207.0,17542876.0,18697251.0,19278085.0,19776043.0,20284291.0,21345665.0,22101332.0,22717251.0,24143500.0,24156291.0,24507374.0,25450209.0,26000916.0,27156875.0,27987250.0,29045752.0,29648291.0,29992667.0,31372457.0,31875585.0,31927459.0,33114831.0,33271333.0,34764876.0,34333625.0,35324498.0,36643084.0,37505791.0,38373998.0,39058708.0,40300915.0,39386708.0,40544915.0,41603833.0,43861292.0,43039793.0,43765418.0,43055416.0,46698792.0,45543875.0,45868082.0,50027333.0,49399333.0,49957999.0,48735126.0,51005832.0,49513375.0,50665461.0,51387335.0,52583167.0,53955501.0,53521541.0,54203623.0,55712958.0,55712251.0,57334542.0,57771792.0,60100292.0,60079333.0,60008375.0,60722085.0,60888042.0,62146581.0,61592957.0,62703332.0,64056542.0,64553165.0,65126208.0,65577751.0,66800959.0,67069126.0,69132040.0,68861459.0,72693250.0,70523333.0,70319249.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/0/new/tukey.json ================================================ [10.385981385141022,10.787449402350191,11.85803078157464,12.25949879878381] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/0/report/index.html ================================================ Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/0 - Criterion.rs

Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/0

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 11.280 ns 11.325 ns 11.377 ns
0.9572234 0.9593978 0.9566335
Mean 11.311 ns 11.410 ns 11.560 ns
Std. Dev. 204.49 ps 657.67 ps 1.0732 ns
Median 11.262 ns 11.303 ns 11.344 ns
MAD 144.26 ps 189.50 ps 230.20 ps

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −3.4322% −1.8356% −0.2833% (p = 0.01 < 0.05)
Change within noise threshold.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/10/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (LocalStr - Optimized)","value_str":"10","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/10","directory_name":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/10","title":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/10"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/10/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":41.36024248365138,"upper_bound":42.93481851084219},"point_estimate":42.11122271327216,"standard_error":0.4010355845642601},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40.09951680098347,"upper_bound":43.465181498429175},"point_estimate":41.911204613751224,"standard_error":1.0428478915606207},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.4099591981777557,"upper_bound":5.006597734833452},"point_estimate":3.979393675672016,"standard_error":0.3987623231138364},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":43.11122032380541,"upper_bound":44.18940865369258},"point_estimate":43.66866937234694,"standard_error":0.2751985105463787},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.0773204654875608,"upper_bound":5.150850431482201},"point_estimate":4.0188958707761815,"standard_error":0.569998445746355}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/10/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[14642.0,29284.0,43926.0,58568.0,73210.0,87852.0,102494.0,117136.0,131778.0,146420.0,161062.0,175704.0,190346.0,204988.0,219630.0,234272.0,248914.0,263556.0,278198.0,292840.0,307482.0,322124.0,336766.0,351408.0,366050.0,380692.0,395334.0,409976.0,424618.0,439260.0,453902.0,468544.0,483186.0,497828.0,512470.0,527112.0,541754.0,556396.0,571038.0,585680.0,600322.0,614964.0,629606.0,644248.0,658890.0,673532.0,688174.0,702816.0,717458.0,732100.0,746742.0,761384.0,776026.0,790668.0,805310.0,819952.0,834594.0,849236.0,863878.0,878520.0,893162.0,907804.0,922446.0,937088.0,951730.0,966372.0,981014.0,995656.0,1010298.0,1024940.0,1039582.0,1054224.0,1068866.0,1083508.0,1098150.0,1112792.0,1127434.0,1142076.0,1156718.0,1171360.0,1186002.0,1200644.0,1215286.0,1229928.0,1244570.0,1259212.0,1273854.0,1288496.0,1303138.0,1317780.0,1332422.0,1347064.0,1361706.0,1376348.0,1390990.0,1405632.0,1420274.0,1434916.0,1449558.0,1464200.0],"times":[931332.0,1122584.0,1695624.0,2355042.0,2816166.0,4021625.0,3849210.0,5443878.0,4968293.0,5549667.0,6519290.0,7026165.0,7228624.0,7779791.0,8651917.0,8879124.0,9292375.0,9938586.0,10356336.0,11332459.0,11571001.0,11943419.0,12473546.0,13843377.0,13912167.0,14326248.0,14807332.0,21589125.0,16416752.0,17052128.0,17106958.0,17884455.0,18962249.0,19519875.0,20427790.0,20306081.0,21384624.0,22236418.0,22139290.0,23108289.0,23214333.0,24266457.0,25442790.0,26600541.0,31649252.0,32187084.0,32284375.0,32629667.0,32697375.0,33483292.0,32995040.0,33152665.0,33740291.0,33647582.0,34096375.0,34014043.0,34297917.0,34517791.0,34728166.0,35033499.0,36081460.0,35632458.0,36047209.0,38704583.0,36242166.0,43071458.0,44735625.0,44524834.0,45340125.0,46461250.0,45554416.0,46852709.0,47574831.0,46676084.0,48587459.0,49279918.0,49445958.0,49974917.0,49320248.0,50913375.0,52314542.0,52783417.0,52884708.0,53265832.0,54748127.0,54313418.0,56326583.0,60811665.0,63347208.0,62822167.0,61589332.0,62698667.0,62820209.0,61316043.0,62493501.0,62432207.0,62810167.0,62254582.0,62324499.0,62909707.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/10/base/tukey.json ================================================ [21.74165783680332,30.246983624831003,52.927852392904825,61.43317818093251] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/10/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0079442614052016,"upper_bound":0.04538482912039646},"point_estimate":0.017587549660055712,"standard_error":0.01349362529152557},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.05485009238945464,"upper_bound":0.10190552941432562},"point_estimate":0.00738826684250915,"standard_error":0.04213664959263864}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/10/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (LocalStr - Optimized)","value_str":"10","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/10","directory_name":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/10","title":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/10"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/10/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":41.36024248365138,"upper_bound":42.93481851084219},"point_estimate":42.11122271327216,"standard_error":0.4010355845642601},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40.09951680098347,"upper_bound":43.465181498429175},"point_estimate":41.911204613751224,"standard_error":1.0428478915606207},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.4099591981777557,"upper_bound":5.006597734833452},"point_estimate":3.979393675672016,"standard_error":0.3987623231138364},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":43.11122032380541,"upper_bound":44.18940865369258},"point_estimate":43.66866937234694,"standard_error":0.2751985105463787},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.0773204654875608,"upper_bound":5.150850431482201},"point_estimate":4.0188958707761815,"standard_error":0.569998445746355}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/10/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[14642.0,29284.0,43926.0,58568.0,73210.0,87852.0,102494.0,117136.0,131778.0,146420.0,161062.0,175704.0,190346.0,204988.0,219630.0,234272.0,248914.0,263556.0,278198.0,292840.0,307482.0,322124.0,336766.0,351408.0,366050.0,380692.0,395334.0,409976.0,424618.0,439260.0,453902.0,468544.0,483186.0,497828.0,512470.0,527112.0,541754.0,556396.0,571038.0,585680.0,600322.0,614964.0,629606.0,644248.0,658890.0,673532.0,688174.0,702816.0,717458.0,732100.0,746742.0,761384.0,776026.0,790668.0,805310.0,819952.0,834594.0,849236.0,863878.0,878520.0,893162.0,907804.0,922446.0,937088.0,951730.0,966372.0,981014.0,995656.0,1010298.0,1024940.0,1039582.0,1054224.0,1068866.0,1083508.0,1098150.0,1112792.0,1127434.0,1142076.0,1156718.0,1171360.0,1186002.0,1200644.0,1215286.0,1229928.0,1244570.0,1259212.0,1273854.0,1288496.0,1303138.0,1317780.0,1332422.0,1347064.0,1361706.0,1376348.0,1390990.0,1405632.0,1420274.0,1434916.0,1449558.0,1464200.0],"times":[931332.0,1122584.0,1695624.0,2355042.0,2816166.0,4021625.0,3849210.0,5443878.0,4968293.0,5549667.0,6519290.0,7026165.0,7228624.0,7779791.0,8651917.0,8879124.0,9292375.0,9938586.0,10356336.0,11332459.0,11571001.0,11943419.0,12473546.0,13843377.0,13912167.0,14326248.0,14807332.0,21589125.0,16416752.0,17052128.0,17106958.0,17884455.0,18962249.0,19519875.0,20427790.0,20306081.0,21384624.0,22236418.0,22139290.0,23108289.0,23214333.0,24266457.0,25442790.0,26600541.0,31649252.0,32187084.0,32284375.0,32629667.0,32697375.0,33483292.0,32995040.0,33152665.0,33740291.0,33647582.0,34096375.0,34014043.0,34297917.0,34517791.0,34728166.0,35033499.0,36081460.0,35632458.0,36047209.0,38704583.0,36242166.0,43071458.0,44735625.0,44524834.0,45340125.0,46461250.0,45554416.0,46852709.0,47574831.0,46676084.0,48587459.0,49279918.0,49445958.0,49974917.0,49320248.0,50913375.0,52314542.0,52783417.0,52884708.0,53265832.0,54748127.0,54313418.0,56326583.0,60811665.0,63347208.0,62822167.0,61589332.0,62698667.0,62820209.0,61316043.0,62493501.0,62432207.0,62810167.0,62254582.0,62324499.0,62909707.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/10/new/tukey.json ================================================ [21.74165783680332,30.246983624831003,52.927852392904825,61.43317818093251] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/10/report/index.html ================================================ Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/10 - Criterion.rs

Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/10

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 43.111 ns 43.669 ns 44.189 ns
0.6734975 0.6842568 0.6748490
Mean 41.360 ns 42.111 ns 42.935 ns
Std. Dev. 3.0773 ns 4.0189 ns 5.1509 ns
Median 40.100 ns 41.911 ns 43.465 ns
MAD 3.4100 ns 3.9794 ns 5.0066 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.7944% +1.7588% +4.5385% (p = 0.18 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/100/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (LocalStr - Optimized)","value_str":"100","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/100","directory_name":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/100","title":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/100"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/100/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":64.78741883396405,"upper_bound":66.48915285899305},"point_estimate":65.63233388926857,"standard_error":0.4346730912147659},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":64.05625065313839,"upper_bound":66.67965019878652},"point_estimate":65.15932940911003,"standard_error":0.6793130996184888},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.2655802212525944,"upper_bound":5.703545043765706},"point_estimate":4.24102350036093,"standard_error":0.6053630802301584},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":65.66146773882858,"upper_bound":67.63221988928564},"point_estimate":66.62769230089742,"standard_error":0.5053016740178953},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.80752374151733,"upper_bound":4.844329259145794},"point_estimate":4.356729308593566,"standard_error":0.26468868861541545}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/100/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[8097.0,16194.0,24291.0,32388.0,40485.0,48582.0,56679.0,64776.0,72873.0,80970.0,89067.0,97164.0,105261.0,113358.0,121455.0,129552.0,137649.0,145746.0,153843.0,161940.0,170037.0,178134.0,186231.0,194328.0,202425.0,210522.0,218619.0,226716.0,234813.0,242910.0,251007.0,259104.0,267201.0,275298.0,283395.0,291492.0,299589.0,307686.0,315783.0,323880.0,331977.0,340074.0,348171.0,356268.0,364365.0,372462.0,380559.0,388656.0,396753.0,404850.0,412947.0,421044.0,429141.0,437238.0,445335.0,453432.0,461529.0,469626.0,477723.0,485820.0,493917.0,502014.0,510111.0,518208.0,526305.0,534402.0,542499.0,550596.0,558693.0,566790.0,574887.0,582984.0,591081.0,599178.0,607275.0,615372.0,623469.0,631566.0,639663.0,647760.0,655857.0,663954.0,672051.0,680148.0,688245.0,696342.0,704439.0,712536.0,720633.0,728730.0,736827.0,744924.0,753021.0,761118.0,769215.0,777312.0,785409.0,793506.0,801603.0,809700.0],"times":[485623.0,1174542.0,1389000.0,1848750.0,2747211.0,2937748.0,3192292.0,3934541.0,4436626.0,4598999.0,5217334.0,6904582.0,7095961.0,7231000.0,7580292.0,7787416.0,9286833.0,9779790.0,10360750.0,10530667.0,11068875.0,11646832.0,13105834.0,13433000.0,13255750.0,13485250.0,13294208.0,13347456.0,14899167.0,15445001.0,16856625.0,17948210.0,18142835.0,19867375.0,19349709.0,19390418.0,19157083.0,19262625.0,18892627.0,20251209.0,20856041.0,21149458.0,24764623.0,25020792.0,25369000.0,26297167.0,25375541.0,24920625.0,25074001.0,25129124.0,25699332.0,25784583.0,27248956.0,33113126.0,32366336.0,32112918.0,32789917.0,32086667.0,31199125.0,31817792.0,31345208.0,29930374.0,31491249.0,32836124.0,32849917.0,38188292.0,38900208.0,39304958.0,37966002.0,37099333.0,36887126.0,35821542.0,35513418.0,38131585.0,39016291.0,39392124.0,45979208.0,45079666.0,44771459.0,43329541.0,42867334.0,42579708.0,44635291.0,43279083.0,43297250.0,46479209.0,45331958.0,54220457.0,52343583.0,51942667.0,51653876.0,51393667.0,50225749.0,52093500.0,50169585.0,49240165.0,50585042.0,50886126.0,50904333.0,57527501.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/100/base/tukey.json ================================================ [44.00041749526994,53.38471789760303,78.40951897049126,87.79381937282436] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/100/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.004338091985988312,"upper_bound":0.031195605901231382},"point_estimate":0.013721918129561583,"standard_error":0.009055936403589277},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.022608458566674372,"upper_bound":0.02973847662831197},"point_estimate":0.004420972885424979,"standard_error":0.013185457104741147}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/100/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (LocalStr - Optimized)","value_str":"100","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/100","directory_name":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/100","title":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/100"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/100/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":64.78741883396405,"upper_bound":66.48915285899305},"point_estimate":65.63233388926857,"standard_error":0.4346730912147659},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":64.05625065313839,"upper_bound":66.67965019878652},"point_estimate":65.15932940911003,"standard_error":0.6793130996184888},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.2655802212525944,"upper_bound":5.703545043765706},"point_estimate":4.24102350036093,"standard_error":0.6053630802301584},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":65.66146773882858,"upper_bound":67.63221988928564},"point_estimate":66.62769230089742,"standard_error":0.5053016740178953},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.80752374151733,"upper_bound":4.844329259145794},"point_estimate":4.356729308593566,"standard_error":0.26468868861541545}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/100/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[8097.0,16194.0,24291.0,32388.0,40485.0,48582.0,56679.0,64776.0,72873.0,80970.0,89067.0,97164.0,105261.0,113358.0,121455.0,129552.0,137649.0,145746.0,153843.0,161940.0,170037.0,178134.0,186231.0,194328.0,202425.0,210522.0,218619.0,226716.0,234813.0,242910.0,251007.0,259104.0,267201.0,275298.0,283395.0,291492.0,299589.0,307686.0,315783.0,323880.0,331977.0,340074.0,348171.0,356268.0,364365.0,372462.0,380559.0,388656.0,396753.0,404850.0,412947.0,421044.0,429141.0,437238.0,445335.0,453432.0,461529.0,469626.0,477723.0,485820.0,493917.0,502014.0,510111.0,518208.0,526305.0,534402.0,542499.0,550596.0,558693.0,566790.0,574887.0,582984.0,591081.0,599178.0,607275.0,615372.0,623469.0,631566.0,639663.0,647760.0,655857.0,663954.0,672051.0,680148.0,688245.0,696342.0,704439.0,712536.0,720633.0,728730.0,736827.0,744924.0,753021.0,761118.0,769215.0,777312.0,785409.0,793506.0,801603.0,809700.0],"times":[485623.0,1174542.0,1389000.0,1848750.0,2747211.0,2937748.0,3192292.0,3934541.0,4436626.0,4598999.0,5217334.0,6904582.0,7095961.0,7231000.0,7580292.0,7787416.0,9286833.0,9779790.0,10360750.0,10530667.0,11068875.0,11646832.0,13105834.0,13433000.0,13255750.0,13485250.0,13294208.0,13347456.0,14899167.0,15445001.0,16856625.0,17948210.0,18142835.0,19867375.0,19349709.0,19390418.0,19157083.0,19262625.0,18892627.0,20251209.0,20856041.0,21149458.0,24764623.0,25020792.0,25369000.0,26297167.0,25375541.0,24920625.0,25074001.0,25129124.0,25699332.0,25784583.0,27248956.0,33113126.0,32366336.0,32112918.0,32789917.0,32086667.0,31199125.0,31817792.0,31345208.0,29930374.0,31491249.0,32836124.0,32849917.0,38188292.0,38900208.0,39304958.0,37966002.0,37099333.0,36887126.0,35821542.0,35513418.0,38131585.0,39016291.0,39392124.0,45979208.0,45079666.0,44771459.0,43329541.0,42867334.0,42579708.0,44635291.0,43279083.0,43297250.0,46479209.0,45331958.0,54220457.0,52343583.0,51942667.0,51653876.0,51393667.0,50225749.0,52093500.0,50169585.0,49240165.0,50585042.0,50886126.0,50904333.0,57527501.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/100/new/tukey.json ================================================ [44.00041749526994,53.38471789760303,78.40951897049126,87.79381937282436] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/100/report/index.html ================================================ Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/100 - Criterion.rs

Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/100

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 65.661 ns 66.628 ns 67.632 ns
0.7200570 0.7318784 0.7191179
Mean 64.787 ns 65.632 ns 66.489 ns
Std. Dev. 3.8075 ns 4.3567 ns 4.8443 ns
Median 64.056 ns 65.159 ns 66.680 ns
MAD 3.2656 ns 4.2410 ns 5.7035 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.4338% +1.3722% +3.1196% (p = 0.14 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/20/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (LocalStr - Optimized)","value_str":"20","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/20","directory_name":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/20","title":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/20"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/20/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":39.91345311585895,"upper_bound":41.348672996155514},"point_estimate":40.63183852296937,"standard_error":0.3654708889594252},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40.24486093735888,"upper_bound":41.86359889080417},"point_estimate":41.326098194193825,"standard_error":0.3588043769371176},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.7134590719643716,"upper_bound":5.239667956637386},"point_estimate":4.262247613854678,"standard_error":0.668826287449926},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":41.76387475265306,"upper_bound":43.20424389871522},"point_estimate":42.50878963527266,"standard_error":0.3671777786182416},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.2821304580527135,"upper_bound":4.021546075533754},"point_estimate":3.6820975400395555,"standard_error":0.18854921473916}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/20/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[13343.0,26686.0,40029.0,53372.0,66715.0,80058.0,93401.0,106744.0,120087.0,133430.0,146773.0,160116.0,173459.0,186802.0,200145.0,213488.0,226831.0,240174.0,253517.0,266860.0,280203.0,293546.0,306889.0,320232.0,333575.0,346918.0,360261.0,373604.0,386947.0,400290.0,413633.0,426976.0,440319.0,453662.0,467005.0,480348.0,493691.0,507034.0,520377.0,533720.0,547063.0,560406.0,573749.0,587092.0,600435.0,613778.0,627121.0,640464.0,653807.0,667150.0,680493.0,693836.0,707179.0,720522.0,733865.0,747208.0,760551.0,773894.0,787237.0,800580.0,813923.0,827266.0,840609.0,853952.0,867295.0,880638.0,893981.0,907324.0,920667.0,934010.0,947353.0,960696.0,974039.0,987382.0,1000725.0,1014068.0,1027411.0,1040754.0,1054097.0,1067440.0,1080783.0,1094126.0,1107469.0,1120812.0,1134155.0,1147498.0,1160841.0,1174184.0,1187527.0,1200870.0,1214213.0,1227556.0,1240899.0,1254242.0,1267585.0,1280928.0,1294271.0,1307614.0,1320957.0,1334300.0],"times":[466541.0,1275418.0,1380207.0,2247958.0,2371416.0,2847836.0,3219710.0,3729959.0,4606627.0,4655416.0,5955419.0,5660831.0,6061708.0,6458750.0,7478416.0,7506584.0,7868625.0,8384250.0,9184542.0,9428585.0,9733791.0,10285958.0,10778375.0,11266042.0,15607872.0,14435168.0,15458582.0,15999457.0,15517249.0,15851376.0,16180749.0,16036126.0,16472835.0,16762458.0,17116541.0,19881750.0,20985210.0,21425415.0,21501085.0,22268208.0,22626709.0,23177834.0,23938000.0,24271834.0,24883043.0,24986583.0,25717417.0,26285666.0,29889875.0,29815249.0,30078582.0,28678956.0,28983042.0,29371335.0,29123542.0,29554042.0,29162748.0,28989502.0,29503708.0,31083167.0,34572876.0,34632332.0,36123958.0,36459500.0,36885250.0,38814957.0,40894416.0,40494293.0,41009167.0,41599751.0,41979834.0,42678958.0,44393709.0,43643002.0,43291500.0,42959458.0,43289834.0,41885000.0,42176334.0,41528542.0,42115081.0,40948962.0,40753000.0,45714127.0,45421331.0,48267332.0,48755874.0,49804000.0,48830124.0,57378958.0,56734124.0,57403456.0,57320418.0,57185915.0,56744542.0,57919209.0,58157667.0,57512332.0,57173501.0,56999710.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/20/base/tukey.json ================================================ [20.668382539383693,29.059689521264335,51.43650813961271,59.82781512149336] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/20/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.018021031905440417,"upper_bound":0.030919346503002435},"point_estimate":0.006545246929924531,"standard_error":0.012523187690005587},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.012288156926331117,"upper_bound":0.04652853173007809},"point_estimate":0.014610377173724709,"standard_error":0.01468087898979447}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/20/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (LocalStr - Optimized)","value_str":"20","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/20","directory_name":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/20","title":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/20"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/20/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":39.91345311585895,"upper_bound":41.348672996155514},"point_estimate":40.63183852296937,"standard_error":0.3654708889594252},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":40.24486093735888,"upper_bound":41.86359889080417},"point_estimate":41.326098194193825,"standard_error":0.3588043769371176},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.7134590719643716,"upper_bound":5.239667956637386},"point_estimate":4.262247613854678,"standard_error":0.668826287449926},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":41.76387475265306,"upper_bound":43.20424389871522},"point_estimate":42.50878963527266,"standard_error":0.3671777786182416},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.2821304580527135,"upper_bound":4.021546075533754},"point_estimate":3.6820975400395555,"standard_error":0.18854921473916}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/20/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[13343.0,26686.0,40029.0,53372.0,66715.0,80058.0,93401.0,106744.0,120087.0,133430.0,146773.0,160116.0,173459.0,186802.0,200145.0,213488.0,226831.0,240174.0,253517.0,266860.0,280203.0,293546.0,306889.0,320232.0,333575.0,346918.0,360261.0,373604.0,386947.0,400290.0,413633.0,426976.0,440319.0,453662.0,467005.0,480348.0,493691.0,507034.0,520377.0,533720.0,547063.0,560406.0,573749.0,587092.0,600435.0,613778.0,627121.0,640464.0,653807.0,667150.0,680493.0,693836.0,707179.0,720522.0,733865.0,747208.0,760551.0,773894.0,787237.0,800580.0,813923.0,827266.0,840609.0,853952.0,867295.0,880638.0,893981.0,907324.0,920667.0,934010.0,947353.0,960696.0,974039.0,987382.0,1000725.0,1014068.0,1027411.0,1040754.0,1054097.0,1067440.0,1080783.0,1094126.0,1107469.0,1120812.0,1134155.0,1147498.0,1160841.0,1174184.0,1187527.0,1200870.0,1214213.0,1227556.0,1240899.0,1254242.0,1267585.0,1280928.0,1294271.0,1307614.0,1320957.0,1334300.0],"times":[466541.0,1275418.0,1380207.0,2247958.0,2371416.0,2847836.0,3219710.0,3729959.0,4606627.0,4655416.0,5955419.0,5660831.0,6061708.0,6458750.0,7478416.0,7506584.0,7868625.0,8384250.0,9184542.0,9428585.0,9733791.0,10285958.0,10778375.0,11266042.0,15607872.0,14435168.0,15458582.0,15999457.0,15517249.0,15851376.0,16180749.0,16036126.0,16472835.0,16762458.0,17116541.0,19881750.0,20985210.0,21425415.0,21501085.0,22268208.0,22626709.0,23177834.0,23938000.0,24271834.0,24883043.0,24986583.0,25717417.0,26285666.0,29889875.0,29815249.0,30078582.0,28678956.0,28983042.0,29371335.0,29123542.0,29554042.0,29162748.0,28989502.0,29503708.0,31083167.0,34572876.0,34632332.0,36123958.0,36459500.0,36885250.0,38814957.0,40894416.0,40494293.0,41009167.0,41599751.0,41979834.0,42678958.0,44393709.0,43643002.0,43291500.0,42959458.0,43289834.0,41885000.0,42176334.0,41528542.0,42115081.0,40948962.0,40753000.0,45714127.0,45421331.0,48267332.0,48755874.0,49804000.0,48830124.0,57378958.0,56734124.0,57403456.0,57320418.0,57185915.0,56744542.0,57919209.0,58157667.0,57512332.0,57173501.0,56999710.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/20/new/tukey.json ================================================ [20.668382539383693,29.059689521264335,51.43650813961271,59.82781512149336] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/20/report/index.html ================================================ Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/20 - Criterion.rs

Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/20

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 41.764 ns 42.509 ns 43.204 ns
0.6155728 0.6312874 0.6175464
Mean 39.913 ns 40.632 ns 41.349 ns
Std. Dev. 3.2821 ns 3.6821 ns 4.0215 ns
Median 40.245 ns 41.326 ns 41.864 ns
MAD 2.7135 ns 4.2622 ns 5.2397 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −1.8021% +0.6545% +3.0919% (p = 0.61 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/500/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (LocalStr - Optimized)","value_str":"500","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/500","directory_name":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/500","title":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/500"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/500/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":104.20434708466355,"upper_bound":106.52247799108022},"point_estimate":105.43031120648318,"standard_error":0.5924001293053608},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":105.48418630239922,"upper_bound":107.68357467398509},"point_estimate":106.15053686564059,"standard_error":0.6212450729397957},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.26943161167313,"upper_bound":5.425277861876977},"point_estimate":4.505040848884352,"standard_error":0.5830906330407609},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":107.53030610120071,"upper_bound":108.92087162115028},"point_estimate":108.252859840638,"standard_error":0.3549331817908489},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.9876219772097463,"upper_bound":7.653132946941563},"point_estimate":5.9567911408965415,"standard_error":0.9263156928812493}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/500/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[4808.0,9616.0,14424.0,19232.0,24040.0,28848.0,33656.0,38464.0,43272.0,48080.0,52888.0,57696.0,62504.0,67312.0,72120.0,76928.0,81736.0,86544.0,91352.0,96160.0,100968.0,105776.0,110584.0,115392.0,120200.0,125008.0,129816.0,134624.0,139432.0,144240.0,149048.0,153856.0,158664.0,163472.0,168280.0,173088.0,177896.0,182704.0,187512.0,192320.0,197128.0,201936.0,206744.0,211552.0,216360.0,221168.0,225976.0,230784.0,235592.0,240400.0,245208.0,250016.0,254824.0,259632.0,264440.0,269248.0,274056.0,278864.0,283672.0,288480.0,293288.0,298096.0,302904.0,307712.0,312520.0,317328.0,322136.0,326944.0,331752.0,336560.0,341368.0,346176.0,350984.0,355792.0,360600.0,365408.0,370216.0,375024.0,379832.0,384640.0,389448.0,394256.0,399064.0,403872.0,408680.0,413488.0,418296.0,423104.0,427912.0,432720.0,437528.0,442336.0,447144.0,451952.0,456760.0,461568.0,466376.0,471184.0,475992.0,480800.0],"times":[395999.0,753043.0,1373249.0,1535541.0,2487165.0,3026790.0,3565459.0,3701459.0,4506668.0,4711248.0,5247209.0,5764833.0,6341790.0,6616249.0,7361835.0,7961706.0,8135998.0,8898957.0,9339791.0,10033832.0,10678043.0,10787000.0,11336247.0,12821209.0,11965291.0,12701250.0,13089874.0,14991251.0,15045959.0,15503790.0,15722207.0,16172126.0,17155040.0,16757127.0,16730417.0,17590502.0,18603876.0,18930712.0,19990209.0,19313875.0,20622834.0,20659664.0,21235791.0,22219914.0,23503416.0,23447708.0,24438461.0,24813292.0,24958417.0,25500833.0,26285500.0,26650499.0,26890251.0,27113961.0,28462874.0,30134082.0,30631124.0,30885210.0,30410794.0,30626750.0,32932627.0,33529624.0,33503834.0,33524127.0,34301418.0,34840709.0,34643376.0,35426209.0,36551874.0,37469085.0,36227248.0,37369041.0,38126041.0,38703250.0,39554877.0,40163668.0,40943542.0,42066626.0,41339791.0,41164125.0,42287376.0,42520417.0,42148792.0,44301000.0,44865082.0,44765418.0,45614915.0,44618961.0,44364417.0,45637085.0,47382458.0,45548290.0,49064955.0,49250252.0,50051791.0,48988582.0,52509041.0,53198251.0,53149040.0,52968626.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/500/base/tukey.json ================================================ [84.76755102563858,93.8515590529336,118.07558045905361,127.15958848634861] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/500/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.004745823383767586,"upper_bound":0.03351083515916308},"point_estimate":0.019031968081536066,"standard_error":0.007304958858435947},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.0064332917475930645,"upper_bound":0.03660254067832591},"point_estimate":0.017235790248363525,"standard_error":0.00783517465863276}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/500/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (LocalStr - Optimized)","value_str":"500","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/500","directory_name":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/500","title":"Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/500"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/500/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":104.20434708466355,"upper_bound":106.52247799108022},"point_estimate":105.43031120648318,"standard_error":0.5924001293053608},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":105.48418630239922,"upper_bound":107.68357467398509},"point_estimate":106.15053686564059,"standard_error":0.6212450729397957},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.26943161167313,"upper_bound":5.425277861876977},"point_estimate":4.505040848884352,"standard_error":0.5830906330407609},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":107.53030610120071,"upper_bound":108.92087162115028},"point_estimate":108.252859840638,"standard_error":0.3549331817908489},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.9876219772097463,"upper_bound":7.653132946941563},"point_estimate":5.9567911408965415,"standard_error":0.9263156928812493}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/500/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[4808.0,9616.0,14424.0,19232.0,24040.0,28848.0,33656.0,38464.0,43272.0,48080.0,52888.0,57696.0,62504.0,67312.0,72120.0,76928.0,81736.0,86544.0,91352.0,96160.0,100968.0,105776.0,110584.0,115392.0,120200.0,125008.0,129816.0,134624.0,139432.0,144240.0,149048.0,153856.0,158664.0,163472.0,168280.0,173088.0,177896.0,182704.0,187512.0,192320.0,197128.0,201936.0,206744.0,211552.0,216360.0,221168.0,225976.0,230784.0,235592.0,240400.0,245208.0,250016.0,254824.0,259632.0,264440.0,269248.0,274056.0,278864.0,283672.0,288480.0,293288.0,298096.0,302904.0,307712.0,312520.0,317328.0,322136.0,326944.0,331752.0,336560.0,341368.0,346176.0,350984.0,355792.0,360600.0,365408.0,370216.0,375024.0,379832.0,384640.0,389448.0,394256.0,399064.0,403872.0,408680.0,413488.0,418296.0,423104.0,427912.0,432720.0,437528.0,442336.0,447144.0,451952.0,456760.0,461568.0,466376.0,471184.0,475992.0,480800.0],"times":[395999.0,753043.0,1373249.0,1535541.0,2487165.0,3026790.0,3565459.0,3701459.0,4506668.0,4711248.0,5247209.0,5764833.0,6341790.0,6616249.0,7361835.0,7961706.0,8135998.0,8898957.0,9339791.0,10033832.0,10678043.0,10787000.0,11336247.0,12821209.0,11965291.0,12701250.0,13089874.0,14991251.0,15045959.0,15503790.0,15722207.0,16172126.0,17155040.0,16757127.0,16730417.0,17590502.0,18603876.0,18930712.0,19990209.0,19313875.0,20622834.0,20659664.0,21235791.0,22219914.0,23503416.0,23447708.0,24438461.0,24813292.0,24958417.0,25500833.0,26285500.0,26650499.0,26890251.0,27113961.0,28462874.0,30134082.0,30631124.0,30885210.0,30410794.0,30626750.0,32932627.0,33529624.0,33503834.0,33524127.0,34301418.0,34840709.0,34643376.0,35426209.0,36551874.0,37469085.0,36227248.0,37369041.0,38126041.0,38703250.0,39554877.0,40163668.0,40943542.0,42066626.0,41339791.0,41164125.0,42287376.0,42520417.0,42148792.0,44301000.0,44865082.0,44765418.0,45614915.0,44618961.0,44364417.0,45637085.0,47382458.0,45548290.0,49064955.0,49250252.0,50051791.0,48988582.0,52509041.0,53198251.0,53149040.0,52968626.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/500/new/tukey.json ================================================ [84.76755102563858,93.8515590529336,118.07558045905361,127.15958848634861] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/500/report/index.html ================================================ Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/500 - Criterion.rs

Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/500

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 107.53 ns 108.25 ns 108.92 ns
0.9145302 0.9192955 0.9152194
Mean 104.20 ns 105.43 ns 106.52 ns
Std. Dev. 3.9876 ns 5.9568 ns 7.6531 ns
Median 105.48 ns 106.15 ns 107.68 ns
MAD 3.2694 ns 4.5050 ns 5.4253 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time +0.4746% +1.9032% +3.3511% (p = 0.01 < 0.05)
Change within noise threshold.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/report/index.html ================================================ Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized) Summary - Criterion.rs

Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)

Violin Plot

Violin Plot

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

Line Chart

Line Chart

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

Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/0

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/10

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/20

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/100

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/500

PDF of Slope Regression
================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/0/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (SharedStr - As is)","value_str":"0","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/0","directory_name":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/0","title":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/0"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/0/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.5009382519803305,"upper_bound":2.607409637817401},"point_estimate":2.5493024613838258,"standard_error":0.027298499053334053},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.430472269447627,"upper_bound":2.5872788712418937},"point_estimate":2.5587837745208004,"standard_error":0.04647687764466679},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.14481102815007107,"upper_bound":0.257824247618586},"point_estimate":0.21967476207117392,"standard_error":0.027368686224253844},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.5477112743801715,"upper_bound":2.7511434394932226},"point_estimate":2.628951184459522,"standard_error":0.05533374200538615},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.1576867566960538,"upper_bound":0.3958322012826631},"point_estimate":0.2749619521770012,"standard_error":0.06523402806319799}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/0/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[134352.0,268704.0,403056.0,537408.0,671760.0,806112.0,940464.0,1074816.0,1209168.0,1343520.0,1477872.0,1612224.0,1746576.0,1880928.0,2015280.0,2149632.0,2283984.0,2418336.0,2552688.0,2687040.0,2821392.0,2955744.0,3090096.0,3224448.0,3358800.0,3493152.0,3627504.0,3761856.0,3896208.0,4030560.0,4164912.0,4299264.0,4433616.0,4567968.0,4702320.0,4836672.0,4971024.0,5105376.0,5239728.0,5374080.0,5508432.0,5642784.0,5777136.0,5911488.0,6045840.0,6180192.0,6314544.0,6448896.0,6583248.0,6717600.0,6851952.0,6986304.0,7120656.0,7255008.0,7389360.0,7523712.0,7658064.0,7792416.0,7926768.0,8061120.0,8195472.0,8329824.0,8464176.0,8598528.0,8732880.0,8867232.0,9001584.0,9135936.0,9270288.0,9404640.0,9538992.0,9673344.0,9807696.0,9942048.0,10076400.0,10210752.0,10345104.0,10479456.0,10613808.0,10748160.0,10882512.0,11016864.0,11151216.0,11285568.0,11419920.0,11554272.0,11688624.0,11822976.0,11957328.0,12091680.0,12226032.0,12360384.0,12494736.0,12629088.0,12763440.0,12897792.0,13032144.0,13166496.0,13300848.0,13435200.0],"times":[384544.0,871208.0,917626.0,1552040.0,1592623.0,2185376.0,3313250.0,2582834.0,3047750.0,3514584.0,3906583.0,4156582.0,4236915.0,5116083.0,5204834.0,5266708.0,5513333.0,6047375.0,7141416.0,6534666.0,7118335.0,7647334.0,7605585.0,7957123.0,8581001.0,8646083.0,8407000.0,8959168.0,9158957.0,9599250.0,9766168.0,10216418.0,10577040.0,10667126.0,10858332.0,11337291.0,11480458.0,12219460.0,12706290.0,12650415.0,12900208.0,12994625.0,13662040.0,13833875.0,14189291.0,14401832.0,15201127.0,15056416.0,15277291.0,15680874.0,16060292.0,16356916.0,16394000.0,17005125.0,17206000.0,17838083.0,17975336.0,18939251.0,18821792.0,18768292.0,19276169.0,19347876.0,23424874.0,23387459.0,23403626.0,23690919.0,24064625.0,24170043.0,24695376.0,25050708.0,25208957.0,25717002.0,25855042.0,26178916.0,26717960.0,26526248.0,27441626.0,27956917.0,27935335.0,28448085.0,28221874.0,28290166.0,28964835.0,29605665.0,29367876.0,29611124.0,30534293.0,30829292.0,30706623.0,31992042.0,31493625.0,32451206.0,32624418.0,32382375.0,33125543.0,37867582.0,33581419.0,36362083.0,36698541.0,59439585.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/0/base/tukey.json ================================================ [1.4821420106854442,1.9178155788248838,3.0796117605300566,3.515285328669496] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/0/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.017523069981700348,"upper_bound":0.03918161396296982},"point_estimate":0.010472435994657303,"standard_error":0.01443164783062754},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.04315696332088881,"upper_bound":0.05847181727261387},"point_estimate":0.01959565681515274,"standard_error":0.02621540093333911}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/0/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (SharedStr - As is)","value_str":"0","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/0","directory_name":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/0","title":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/0"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/0/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.5009382519803305,"upper_bound":2.607409637817401},"point_estimate":2.5493024613838258,"standard_error":0.027298499053334053},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.430472269447627,"upper_bound":2.5872788712418937},"point_estimate":2.5587837745208004,"standard_error":0.04647687764466679},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.14481102815007107,"upper_bound":0.257824247618586},"point_estimate":0.21967476207117392,"standard_error":0.027368686224253844},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.5477112743801715,"upper_bound":2.7511434394932226},"point_estimate":2.628951184459522,"standard_error":0.05533374200538615},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.1576867566960538,"upper_bound":0.3958322012826631},"point_estimate":0.2749619521770012,"standard_error":0.06523402806319799}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/0/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[134352.0,268704.0,403056.0,537408.0,671760.0,806112.0,940464.0,1074816.0,1209168.0,1343520.0,1477872.0,1612224.0,1746576.0,1880928.0,2015280.0,2149632.0,2283984.0,2418336.0,2552688.0,2687040.0,2821392.0,2955744.0,3090096.0,3224448.0,3358800.0,3493152.0,3627504.0,3761856.0,3896208.0,4030560.0,4164912.0,4299264.0,4433616.0,4567968.0,4702320.0,4836672.0,4971024.0,5105376.0,5239728.0,5374080.0,5508432.0,5642784.0,5777136.0,5911488.0,6045840.0,6180192.0,6314544.0,6448896.0,6583248.0,6717600.0,6851952.0,6986304.0,7120656.0,7255008.0,7389360.0,7523712.0,7658064.0,7792416.0,7926768.0,8061120.0,8195472.0,8329824.0,8464176.0,8598528.0,8732880.0,8867232.0,9001584.0,9135936.0,9270288.0,9404640.0,9538992.0,9673344.0,9807696.0,9942048.0,10076400.0,10210752.0,10345104.0,10479456.0,10613808.0,10748160.0,10882512.0,11016864.0,11151216.0,11285568.0,11419920.0,11554272.0,11688624.0,11822976.0,11957328.0,12091680.0,12226032.0,12360384.0,12494736.0,12629088.0,12763440.0,12897792.0,13032144.0,13166496.0,13300848.0,13435200.0],"times":[384544.0,871208.0,917626.0,1552040.0,1592623.0,2185376.0,3313250.0,2582834.0,3047750.0,3514584.0,3906583.0,4156582.0,4236915.0,5116083.0,5204834.0,5266708.0,5513333.0,6047375.0,7141416.0,6534666.0,7118335.0,7647334.0,7605585.0,7957123.0,8581001.0,8646083.0,8407000.0,8959168.0,9158957.0,9599250.0,9766168.0,10216418.0,10577040.0,10667126.0,10858332.0,11337291.0,11480458.0,12219460.0,12706290.0,12650415.0,12900208.0,12994625.0,13662040.0,13833875.0,14189291.0,14401832.0,15201127.0,15056416.0,15277291.0,15680874.0,16060292.0,16356916.0,16394000.0,17005125.0,17206000.0,17838083.0,17975336.0,18939251.0,18821792.0,18768292.0,19276169.0,19347876.0,23424874.0,23387459.0,23403626.0,23690919.0,24064625.0,24170043.0,24695376.0,25050708.0,25208957.0,25717002.0,25855042.0,26178916.0,26717960.0,26526248.0,27441626.0,27956917.0,27935335.0,28448085.0,28221874.0,28290166.0,28964835.0,29605665.0,29367876.0,29611124.0,30534293.0,30829292.0,30706623.0,31992042.0,31493625.0,32451206.0,32624418.0,32382375.0,33125543.0,37867582.0,33581419.0,36362083.0,36698541.0,59439585.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/0/new/tukey.json ================================================ [1.4821420106854442,1.9178155788248838,3.0796117605300566,3.515285328669496] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/0/report/index.html ================================================ Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/0 - Criterion.rs

Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/0

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 2.5477 ns 2.6290 ns 2.7511 ns
0.6978344 0.7091779 0.6840235
Mean 2.5009 ns 2.5493 ns 2.6074 ns
Std. Dev. 157.69 ps 274.96 ps 395.83 ps
Median 2.4305 ns 2.5588 ns 2.5873 ns
MAD 144.81 ps 219.67 ps 257.82 ps

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −1.7523% +1.0472% +3.9182% (p = 0.49 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/10/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (SharedStr - As is)","value_str":"10","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/10","directory_name":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/10","title":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/10"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/10/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":30.251116434182826,"upper_bound":31.71792575277108},"point_estimate":30.963239727671606,"standard_error":0.3740399932971555},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":29.16139435586962,"upper_bound":32.680944333392404},"point_estimate":31.52476123939308,"standard_error":0.9824098020087967},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.0145638026976105,"upper_bound":5.137889036734439},"point_estimate":4.279701214787598,"standard_error":0.5686373830765059},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":31.711670831575915,"upper_bound":32.831669201631875},"point_estimate":32.29166041290573,"standard_error":0.28628207972211805},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.0542784530237896,"upper_bound":4.6681898826870345},"point_estimate":3.754275152265011,"standard_error":0.4544132803144907}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/10/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[17123.0,34246.0,51369.0,68492.0,85615.0,102738.0,119861.0,136984.0,154107.0,171230.0,188353.0,205476.0,222599.0,239722.0,256845.0,273968.0,291091.0,308214.0,325337.0,342460.0,359583.0,376706.0,393829.0,410952.0,428075.0,445198.0,462321.0,479444.0,496567.0,513690.0,530813.0,547936.0,565059.0,582182.0,599305.0,616428.0,633551.0,650674.0,667797.0,684920.0,702043.0,719166.0,736289.0,753412.0,770535.0,787658.0,804781.0,821904.0,839027.0,856150.0,873273.0,890396.0,907519.0,924642.0,941765.0,958888.0,976011.0,993134.0,1010257.0,1027380.0,1044503.0,1061626.0,1078749.0,1095872.0,1112995.0,1130118.0,1147241.0,1164364.0,1181487.0,1198610.0,1215733.0,1232856.0,1249979.0,1267102.0,1284225.0,1301348.0,1318471.0,1335594.0,1352717.0,1369840.0,1386963.0,1404086.0,1421209.0,1438332.0,1455455.0,1472578.0,1489701.0,1506824.0,1523947.0,1541070.0,1558193.0,1575316.0,1592439.0,1609562.0,1626685.0,1643808.0,1660931.0,1678054.0,1695177.0,1712300.0],"times":[851084.0,913125.0,1381543.0,2186166.0,2279789.0,2773002.0,3683042.0,3686249.0,4553250.0,4563876.0,5063666.0,5502708.0,6332376.0,6465752.0,6791624.0,7368918.0,8185167.0,8275458.0,9182334.0,9120292.0,9997416.0,9995332.0,10514332.0,11091040.0,11514374.0,11905663.0,12425499.0,13271083.0,13285539.0,13892667.0,14251085.0,14676373.0,15173084.0,15799501.0,16113291.0,16517544.0,17075042.0,23924750.0,24903042.0,24066000.0,25068960.0,25679542.0,25308665.0,24881583.0,25922710.0,25438334.0,25332376.0,25949292.0,25299335.0,25613917.0,25579997.0,25947458.0,26296665.0,25939125.0,26664791.0,29350831.0,33916752.0,34206165.0,33200167.0,35228167.0,35396041.0,35830791.0,36215334.0,37059710.0,37447210.0,37885874.0,38512958.0,38761916.0,39261209.0,40159791.0,40623833.0,39874499.0,41154374.0,41357957.0,42895374.0,46855876.0,47787501.0,47410708.0,47818666.0,47350999.0,47751084.0,47715708.0,46523334.0,46438959.0,46444248.0,48045579.0,47226335.0,45559875.0,45918418.0,44939750.0,45176249.0,45141125.0,44279707.0,52708626.0,54078460.0,54670083.0,57055251.0,54297250.0,56267625.0,57142834.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/10/base/tukey.json ================================================ [7.3555205752784545,17.17296897381182,43.3528313699008,53.17027976843417] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/10/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.028940131565599898,"upper_bound":0.033658808699233045},"point_estimate":0.0012567936171992145,"standard_error":0.016038436639874386},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.07886016369116466,"upper_bound":0.0835623704842603},"point_estimate":0.009364543503771028,"standard_error":0.04190245439648872}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/10/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (SharedStr - As is)","value_str":"10","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/10","directory_name":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/10","title":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/10"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/10/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":30.251116434182826,"upper_bound":31.71792575277108},"point_estimate":30.963239727671606,"standard_error":0.3740399932971555},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":29.16139435586962,"upper_bound":32.680944333392404},"point_estimate":31.52476123939308,"standard_error":0.9824098020087967},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.0145638026976105,"upper_bound":5.137889036734439},"point_estimate":4.279701214787598,"standard_error":0.5686373830765059},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":31.711670831575915,"upper_bound":32.831669201631875},"point_estimate":32.29166041290573,"standard_error":0.28628207972211805},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.0542784530237896,"upper_bound":4.6681898826870345},"point_estimate":3.754275152265011,"standard_error":0.4544132803144907}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/10/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[17123.0,34246.0,51369.0,68492.0,85615.0,102738.0,119861.0,136984.0,154107.0,171230.0,188353.0,205476.0,222599.0,239722.0,256845.0,273968.0,291091.0,308214.0,325337.0,342460.0,359583.0,376706.0,393829.0,410952.0,428075.0,445198.0,462321.0,479444.0,496567.0,513690.0,530813.0,547936.0,565059.0,582182.0,599305.0,616428.0,633551.0,650674.0,667797.0,684920.0,702043.0,719166.0,736289.0,753412.0,770535.0,787658.0,804781.0,821904.0,839027.0,856150.0,873273.0,890396.0,907519.0,924642.0,941765.0,958888.0,976011.0,993134.0,1010257.0,1027380.0,1044503.0,1061626.0,1078749.0,1095872.0,1112995.0,1130118.0,1147241.0,1164364.0,1181487.0,1198610.0,1215733.0,1232856.0,1249979.0,1267102.0,1284225.0,1301348.0,1318471.0,1335594.0,1352717.0,1369840.0,1386963.0,1404086.0,1421209.0,1438332.0,1455455.0,1472578.0,1489701.0,1506824.0,1523947.0,1541070.0,1558193.0,1575316.0,1592439.0,1609562.0,1626685.0,1643808.0,1660931.0,1678054.0,1695177.0,1712300.0],"times":[851084.0,913125.0,1381543.0,2186166.0,2279789.0,2773002.0,3683042.0,3686249.0,4553250.0,4563876.0,5063666.0,5502708.0,6332376.0,6465752.0,6791624.0,7368918.0,8185167.0,8275458.0,9182334.0,9120292.0,9997416.0,9995332.0,10514332.0,11091040.0,11514374.0,11905663.0,12425499.0,13271083.0,13285539.0,13892667.0,14251085.0,14676373.0,15173084.0,15799501.0,16113291.0,16517544.0,17075042.0,23924750.0,24903042.0,24066000.0,25068960.0,25679542.0,25308665.0,24881583.0,25922710.0,25438334.0,25332376.0,25949292.0,25299335.0,25613917.0,25579997.0,25947458.0,26296665.0,25939125.0,26664791.0,29350831.0,33916752.0,34206165.0,33200167.0,35228167.0,35396041.0,35830791.0,36215334.0,37059710.0,37447210.0,37885874.0,38512958.0,38761916.0,39261209.0,40159791.0,40623833.0,39874499.0,41154374.0,41357957.0,42895374.0,46855876.0,47787501.0,47410708.0,47818666.0,47350999.0,47751084.0,47715708.0,46523334.0,46438959.0,46444248.0,48045579.0,47226335.0,45559875.0,45918418.0,44939750.0,45176249.0,45141125.0,44279707.0,52708626.0,54078460.0,54670083.0,57055251.0,54297250.0,56267625.0,57142834.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/10/new/tukey.json ================================================ [7.3555205752784545,17.17296897381182,43.3528313699008,53.17027976843417] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/10/report/index.html ================================================ Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/10 - Criterion.rs

Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/10

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 31.712 ns 32.292 ns 32.832 ns
0.5888364 0.6023747 0.5906033
Mean 30.251 ns 30.963 ns 31.718 ns
Std. Dev. 3.0543 ns 3.7543 ns 4.6682 ns
Median 29.161 ns 31.525 ns 32.681 ns
MAD 3.0146 ns 4.2797 ns 5.1379 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −2.8940% +0.1257% +3.3659% (p = 0.94 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/100/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (SharedStr - As is)","value_str":"100","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/100","directory_name":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/100","title":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/100"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/100/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":38.77519540044674,"upper_bound":40.29610894648774},"point_estimate":39.542562867245515,"standard_error":0.3896217098771971},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":38.758391996654055,"upper_bound":40.35936384893443},"point_estimate":39.547188999947124,"standard_error":0.47109989799064195},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.117561738956853,"upper_bound":5.274649297957817},"point_estimate":4.626255589300013,"standard_error":0.5257675737942579},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":39.97774735474569,"upper_bound":41.30453680804932},"point_estimate":40.647987059010596,"standard_error":0.33814248996104723},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.407808587208913,"upper_bound":4.356735022642185},"point_estimate":3.9117505386877744,"standard_error":0.24159636141849408}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/100/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[11001.0,22002.0,33003.0,44004.0,55005.0,66006.0,77007.0,88008.0,99009.0,110010.0,121011.0,132012.0,143013.0,154014.0,165015.0,176016.0,187017.0,198018.0,209019.0,220020.0,231021.0,242022.0,253023.0,264024.0,275025.0,286026.0,297027.0,308028.0,319029.0,330030.0,341031.0,352032.0,363033.0,374034.0,385035.0,396036.0,407037.0,418038.0,429039.0,440040.0,451041.0,462042.0,473043.0,484044.0,495045.0,506046.0,517047.0,528048.0,539049.0,550050.0,561051.0,572052.0,583053.0,594054.0,605055.0,616056.0,627057.0,638058.0,649059.0,660060.0,671061.0,682062.0,693063.0,704064.0,715065.0,726066.0,737067.0,748068.0,759069.0,770070.0,781071.0,792072.0,803073.0,814074.0,825075.0,836076.0,847077.0,858078.0,869079.0,880080.0,891081.0,902082.0,913083.0,924084.0,935085.0,946086.0,957087.0,968088.0,979089.0,990090.0,1001091.0,1012092.0,1023093.0,1034094.0,1045095.0,1056096.0,1067097.0,1078098.0,1089099.0,1100100.0],"times":[349042.0,768541.0,1011918.0,1355668.0,1999998.0,2054541.0,2585623.0,2884791.0,4318040.0,4292917.0,4227959.0,4173792.0,5668374.0,6021542.0,6366957.0,6736916.0,8056041.0,8029959.0,7593584.0,7393710.0,8939792.0,9959791.0,11122124.0,12608166.0,11377875.0,12021540.0,11380876.0,11155210.0,10837917.0,12876040.0,13699541.0,16633667.0,15803666.0,16140582.0,15471000.0,14802791.0,14166625.0,15135875.0,14809668.0,19959500.0,19684416.0,20377626.0,18998168.0,18360417.0,17198874.0,17816416.0,18637833.0,24523373.0,24226291.0,23733290.0,22714667.0,21230334.0,21004668.0,20571665.0,22130126.0,23517834.0,28560875.0,27863999.0,26355500.0,25491875.0,26101751.0,24961420.0,27186541.0,26416626.0,33199292.0,32099751.0,31774876.0,30322125.0,30392209.0,28970792.0,30278293.0,30310083.0,34721374.0,35250002.0,34499543.0,35780085.0,33799376.0,33554042.0,31524626.0,33506749.0,33704250.0,41182042.0,40922164.0,39545958.0,37377334.0,37123460.0,35077793.0,38747791.0,38633875.0,44259667.0,42918208.0,43029458.0,40847205.0,41735376.0,40530544.0,44406084.0,43387667.0,45928083.0,47294331.0,45175252.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/100/base/tukey.json ================================================ [18.105834979572528,27.37150917863971,52.07997370948553,61.345647908552706] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/100/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.01803092274445305,"upper_bound":0.035219915187657234},"point_estimate":0.00836466384256429,"standard_error":0.01368243708386179},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.024093517524035768,"upper_bound":0.05012967504971244},"point_estimate":0.019794063478725032,"standard_error":0.019461477125510596}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/100/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (SharedStr - As is)","value_str":"100","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/100","directory_name":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/100","title":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/100"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/100/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":38.77519540044674,"upper_bound":40.29610894648774},"point_estimate":39.542562867245515,"standard_error":0.3896217098771971},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":38.758391996654055,"upper_bound":40.35936384893443},"point_estimate":39.547188999947124,"standard_error":0.47109989799064195},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.117561738956853,"upper_bound":5.274649297957817},"point_estimate":4.626255589300013,"standard_error":0.5257675737942579},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":39.97774735474569,"upper_bound":41.30453680804932},"point_estimate":40.647987059010596,"standard_error":0.33814248996104723},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.407808587208913,"upper_bound":4.356735022642185},"point_estimate":3.9117505386877744,"standard_error":0.24159636141849408}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/100/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[11001.0,22002.0,33003.0,44004.0,55005.0,66006.0,77007.0,88008.0,99009.0,110010.0,121011.0,132012.0,143013.0,154014.0,165015.0,176016.0,187017.0,198018.0,209019.0,220020.0,231021.0,242022.0,253023.0,264024.0,275025.0,286026.0,297027.0,308028.0,319029.0,330030.0,341031.0,352032.0,363033.0,374034.0,385035.0,396036.0,407037.0,418038.0,429039.0,440040.0,451041.0,462042.0,473043.0,484044.0,495045.0,506046.0,517047.0,528048.0,539049.0,550050.0,561051.0,572052.0,583053.0,594054.0,605055.0,616056.0,627057.0,638058.0,649059.0,660060.0,671061.0,682062.0,693063.0,704064.0,715065.0,726066.0,737067.0,748068.0,759069.0,770070.0,781071.0,792072.0,803073.0,814074.0,825075.0,836076.0,847077.0,858078.0,869079.0,880080.0,891081.0,902082.0,913083.0,924084.0,935085.0,946086.0,957087.0,968088.0,979089.0,990090.0,1001091.0,1012092.0,1023093.0,1034094.0,1045095.0,1056096.0,1067097.0,1078098.0,1089099.0,1100100.0],"times":[349042.0,768541.0,1011918.0,1355668.0,1999998.0,2054541.0,2585623.0,2884791.0,4318040.0,4292917.0,4227959.0,4173792.0,5668374.0,6021542.0,6366957.0,6736916.0,8056041.0,8029959.0,7593584.0,7393710.0,8939792.0,9959791.0,11122124.0,12608166.0,11377875.0,12021540.0,11380876.0,11155210.0,10837917.0,12876040.0,13699541.0,16633667.0,15803666.0,16140582.0,15471000.0,14802791.0,14166625.0,15135875.0,14809668.0,19959500.0,19684416.0,20377626.0,18998168.0,18360417.0,17198874.0,17816416.0,18637833.0,24523373.0,24226291.0,23733290.0,22714667.0,21230334.0,21004668.0,20571665.0,22130126.0,23517834.0,28560875.0,27863999.0,26355500.0,25491875.0,26101751.0,24961420.0,27186541.0,26416626.0,33199292.0,32099751.0,31774876.0,30322125.0,30392209.0,28970792.0,30278293.0,30310083.0,34721374.0,35250002.0,34499543.0,35780085.0,33799376.0,33554042.0,31524626.0,33506749.0,33704250.0,41182042.0,40922164.0,39545958.0,37377334.0,37123460.0,35077793.0,38747791.0,38633875.0,44259667.0,42918208.0,43029458.0,40847205.0,41735376.0,40530544.0,44406084.0,43387667.0,45928083.0,47294331.0,45175252.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/100/new/tukey.json ================================================ [18.105834979572528,27.37150917863971,52.07997370948553,61.345647908552706] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/100/report/index.html ================================================ Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/100 - Criterion.rs

Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/100

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 39.978 ns 40.648 ns 41.305 ns
0.5921598 0.6049101 0.5926649
Mean 38.775 ns 39.543 ns 40.296 ns
Std. Dev. 3.4078 ns 3.9118 ns 4.3567 ns
Median 38.758 ns 39.547 ns 40.359 ns
MAD 3.1176 ns 4.6263 ns 5.2746 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −1.8031% +0.8365% +3.5220% (p = 0.54 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/20/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (SharedStr - As is)","value_str":"20","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/20","directory_name":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/20","title":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/20"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/20/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":32.465926097663896,"upper_bound":34.11683804100407},"point_estimate":33.26337045241353,"standard_error":0.42193543089171365},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":32.63349786292711,"upper_bound":34.06582596318954},"point_estimate":33.462462682788335,"standard_error":0.3867085841757712},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.0699607869167274,"upper_bound":5.205475509685265},"point_estimate":3.9363170600152038,"standard_error":0.5581541494098478},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":33.70129714431918,"upper_bound":35.177943882801515},"point_estimate":34.444750527067455,"standard_error":0.3772273887562825},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.2477174550749783,"upper_bound":5.497444007561643},"point_estimate":4.243683721572856,"standard_error":0.6323499041573755}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/20/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[14089.0,28178.0,42267.0,56356.0,70445.0,84534.0,98623.0,112712.0,126801.0,140890.0,154979.0,169068.0,183157.0,197246.0,211335.0,225424.0,239513.0,253602.0,267691.0,281780.0,295869.0,309958.0,324047.0,338136.0,352225.0,366314.0,380403.0,394492.0,408581.0,422670.0,436759.0,450848.0,464937.0,479026.0,493115.0,507204.0,521293.0,535382.0,549471.0,563560.0,577649.0,591738.0,605827.0,619916.0,634005.0,648094.0,662183.0,676272.0,690361.0,704450.0,718539.0,732628.0,746717.0,760806.0,774895.0,788984.0,803073.0,817162.0,831251.0,845340.0,859429.0,873518.0,887607.0,901696.0,915785.0,929874.0,943963.0,958052.0,972141.0,986230.0,1000319.0,1014408.0,1028497.0,1042586.0,1056675.0,1070764.0,1084853.0,1098942.0,1113031.0,1127120.0,1141209.0,1155298.0,1169387.0,1183476.0,1197565.0,1211654.0,1225743.0,1239832.0,1253921.0,1268010.0,1282099.0,1296188.0,1310277.0,1324366.0,1338455.0,1352544.0,1366633.0,1380722.0,1394811.0,1408900.0],"times":[799499.0,761916.0,1160583.0,1558665.0,2199625.0,3028499.0,2728459.0,3523373.0,3446959.0,3847045.0,4136000.0,4594918.0,5043832.0,5784626.0,5737873.0,6104457.0,6853004.0,6986125.0,7761794.0,8244584.0,8378084.0,8535207.0,12501875.0,12584541.0,13083415.0,12589834.0,12682914.0,12946208.0,13040960.0,13116335.0,13231793.0,13596501.0,13539626.0,13317584.0,17328293.0,17153708.0,17963958.0,18440501.0,18918167.0,19128376.0,19363790.0,20093041.0,20175002.0,21045085.0,21168957.0,24884793.0,24780835.0,24609957.0,24819584.0,23724292.0,23482041.0,24037334.0,24309668.0,23449792.0,23026875.0,22746917.0,25911082.0,27675498.0,28414958.0,29806585.0,30726585.0,30950876.0,33104083.0,34031415.0,34300044.0,34224209.0,33987667.0,34354751.0,37797502.0,36719749.0,36785708.0,35592333.0,36184041.0,34666956.0,33917583.0,33910542.0,33735918.0,32704165.0,32947584.0,37649417.0,37626626.0,36733293.0,39498498.0,39924501.0,40530041.0,46901875.0,48546000.0,47666376.0,48179040.0,46073751.0,47768793.0,49729875.0,47891001.0,47852417.0,46946124.0,47194291.0,44704751.0,44803290.0,43591541.0,42339417.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/20/base/tukey.json ================================================ [12.877880783195522,21.504471468590452,44.50871329631026,53.13530398170519] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/20/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.027189036409991617,"upper_bound":0.038802253601969205},"point_estimate":0.005839928186810894,"standard_error":0.016771721768113014},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.042040487532734816,"upper_bound":0.022816133795661796},"point_estimate":-0.008670285371628506,"standard_error":0.017096329436450515}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/20/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (SharedStr - As is)","value_str":"20","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/20","directory_name":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/20","title":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/20"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/20/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":32.465926097663896,"upper_bound":34.11683804100407},"point_estimate":33.26337045241353,"standard_error":0.42193543089171365},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":32.63349786292711,"upper_bound":34.06582596318954},"point_estimate":33.462462682788335,"standard_error":0.3867085841757712},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.0699607869167274,"upper_bound":5.205475509685265},"point_estimate":3.9363170600152038,"standard_error":0.5581541494098478},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":33.70129714431918,"upper_bound":35.177943882801515},"point_estimate":34.444750527067455,"standard_error":0.3772273887562825},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.2477174550749783,"upper_bound":5.497444007561643},"point_estimate":4.243683721572856,"standard_error":0.6323499041573755}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/20/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[14089.0,28178.0,42267.0,56356.0,70445.0,84534.0,98623.0,112712.0,126801.0,140890.0,154979.0,169068.0,183157.0,197246.0,211335.0,225424.0,239513.0,253602.0,267691.0,281780.0,295869.0,309958.0,324047.0,338136.0,352225.0,366314.0,380403.0,394492.0,408581.0,422670.0,436759.0,450848.0,464937.0,479026.0,493115.0,507204.0,521293.0,535382.0,549471.0,563560.0,577649.0,591738.0,605827.0,619916.0,634005.0,648094.0,662183.0,676272.0,690361.0,704450.0,718539.0,732628.0,746717.0,760806.0,774895.0,788984.0,803073.0,817162.0,831251.0,845340.0,859429.0,873518.0,887607.0,901696.0,915785.0,929874.0,943963.0,958052.0,972141.0,986230.0,1000319.0,1014408.0,1028497.0,1042586.0,1056675.0,1070764.0,1084853.0,1098942.0,1113031.0,1127120.0,1141209.0,1155298.0,1169387.0,1183476.0,1197565.0,1211654.0,1225743.0,1239832.0,1253921.0,1268010.0,1282099.0,1296188.0,1310277.0,1324366.0,1338455.0,1352544.0,1366633.0,1380722.0,1394811.0,1408900.0],"times":[799499.0,761916.0,1160583.0,1558665.0,2199625.0,3028499.0,2728459.0,3523373.0,3446959.0,3847045.0,4136000.0,4594918.0,5043832.0,5784626.0,5737873.0,6104457.0,6853004.0,6986125.0,7761794.0,8244584.0,8378084.0,8535207.0,12501875.0,12584541.0,13083415.0,12589834.0,12682914.0,12946208.0,13040960.0,13116335.0,13231793.0,13596501.0,13539626.0,13317584.0,17328293.0,17153708.0,17963958.0,18440501.0,18918167.0,19128376.0,19363790.0,20093041.0,20175002.0,21045085.0,21168957.0,24884793.0,24780835.0,24609957.0,24819584.0,23724292.0,23482041.0,24037334.0,24309668.0,23449792.0,23026875.0,22746917.0,25911082.0,27675498.0,28414958.0,29806585.0,30726585.0,30950876.0,33104083.0,34031415.0,34300044.0,34224209.0,33987667.0,34354751.0,37797502.0,36719749.0,36785708.0,35592333.0,36184041.0,34666956.0,33917583.0,33910542.0,33735918.0,32704165.0,32947584.0,37649417.0,37626626.0,36733293.0,39498498.0,39924501.0,40530041.0,46901875.0,48546000.0,47666376.0,48179040.0,46073751.0,47768793.0,49729875.0,47891001.0,47852417.0,46946124.0,47194291.0,44704751.0,44803290.0,43591541.0,42339417.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/20/new/tukey.json ================================================ [12.877880783195522,21.504471468590452,44.50871329631026,53.13530398170519] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/20/report/index.html ================================================ Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/20 - Criterion.rs

Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/20

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 33.701 ns 34.445 ns 35.178 ns
0.3618829 0.3774059 0.3622913
Mean 32.466 ns 33.263 ns 34.117 ns
Std. Dev. 3.2477 ns 4.2437 ns 5.4974 ns
Median 32.633 ns 33.462 ns 34.066 ns
MAD 3.0700 ns 3.9363 ns 5.2055 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −2.7189% +0.5840% +3.8802% (p = 0.73 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/500/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (SharedStr - As is)","value_str":"500","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/500","directory_name":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/500","title":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/500"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/500/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":46.8387661793291,"upper_bound":49.041906968588414},"point_estimate":47.9576922859315,"standard_error":0.5636636914346886},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":46.75003206393055,"upper_bound":49.84308828503777},"point_estimate":47.955223205886014,"standard_error":0.7691825685527064},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.445586338628917,"upper_bound":7.094673348939047},"point_estimate":5.9803657572573945,"standard_error":0.6876275070374762},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":50.09714753877018,"upper_bound":52.15204187309517},"point_estimate":51.19224382358838,"standard_error":0.5262259634487192},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.803300811515525,"upper_bound":6.438119742565619},"point_estimate":5.670223343505682,"standard_error":0.4172729636594685}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/500/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[6335.0,12670.0,19005.0,25340.0,31675.0,38010.0,44345.0,50680.0,57015.0,63350.0,69685.0,76020.0,82355.0,88690.0,95025.0,101360.0,107695.0,114030.0,120365.0,126700.0,133035.0,139370.0,145705.0,152040.0,158375.0,164710.0,171045.0,177380.0,183715.0,190050.0,196385.0,202720.0,209055.0,215390.0,221725.0,228060.0,234395.0,240730.0,247065.0,253400.0,259735.0,266070.0,272405.0,278740.0,285075.0,291410.0,297745.0,304080.0,310415.0,316750.0,323085.0,329420.0,335755.0,342090.0,348425.0,354760.0,361095.0,367430.0,373765.0,380100.0,386435.0,392770.0,399105.0,405440.0,411775.0,418110.0,424445.0,430780.0,437115.0,443450.0,449785.0,456120.0,462455.0,468790.0,475125.0,481460.0,487795.0,494130.0,500465.0,506800.0,513135.0,519470.0,525805.0,532140.0,538475.0,544810.0,551145.0,557480.0,563815.0,570150.0,576485.0,582820.0,589155.0,595490.0,601825.0,608160.0,614495.0,620830.0,627165.0,633500.0],"times":[209791.0,420082.0,861581.0,1002959.0,1374000.0,2076375.0,1981585.0,2426460.0,3119876.0,2849917.0,2274874.0,4173418.0,4048415.0,3084002.0,4944083.0,4847374.0,3879166.0,4112750.0,5878544.0,5184249.0,5478668.0,7387627.0,6219875.0,6820540.0,7821293.0,6882751.0,7168333.0,8841167.0,8333917.0,7232834.0,10413251.0,9419625.0,8620832.0,10858915.0,10438083.0,9846875.0,9941461.0,11335835.0,11780082.0,11419125.0,12229124.0,12546040.0,12101082.0,14212624.0,13216835.0,13427208.0,15546333.0,13848709.0,13516209.0,16910336.0,15485875.0,14403043.0,14601752.0,17630877.0,15663083.0,15345041.0,17325040.0,17145917.0,16980460.0,18744916.0,16882040.0,18498957.0,20064918.0,18954333.0,18395875.0,21633584.0,20856373.0,19510581.0,23571958.0,22154584.0,20999834.0,21169334.0,24601999.0,23393124.0,22933667.0,24452543.0,25340249.0,25040459.0,27554666.0,24587209.0,26419337.0,28371626.0,27782623.0,25752917.0,30640042.0,29782959.0,28080084.0,29923749.0,31418624.0,30578707.0,31301375.0,31981207.0,32510582.0,31610581.0,34258374.0,32367751.0,34832418.0,36030542.0,34059958.0,34755542.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/500/base/tukey.json ================================================ [20.62458664494281,32.72056229304306,64.97649735464373,77.07247300274398] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/500/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.09228561109868559,"upper_bound":0.0018654117137227122},"point_estimate":-0.044351083840691086,"standard_error":0.02405873263395763},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.05932217409831253,"upper_bound":0.027869531470510855},"point_estimate":-0.019113566646958735,"standard_error":0.02175462314500358}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/500/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (SharedStr - As is)","value_str":"500","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/500","directory_name":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/500","title":"Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/500"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/500/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":46.8387661793291,"upper_bound":49.041906968588414},"point_estimate":47.9576922859315,"standard_error":0.5636636914346886},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":46.75003206393055,"upper_bound":49.84308828503777},"point_estimate":47.955223205886014,"standard_error":0.7691825685527064},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.445586338628917,"upper_bound":7.094673348939047},"point_estimate":5.9803657572573945,"standard_error":0.6876275070374762},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":50.09714753877018,"upper_bound":52.15204187309517},"point_estimate":51.19224382358838,"standard_error":0.5262259634487192},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.803300811515525,"upper_bound":6.438119742565619},"point_estimate":5.670223343505682,"standard_error":0.4172729636594685}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/500/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[6335.0,12670.0,19005.0,25340.0,31675.0,38010.0,44345.0,50680.0,57015.0,63350.0,69685.0,76020.0,82355.0,88690.0,95025.0,101360.0,107695.0,114030.0,120365.0,126700.0,133035.0,139370.0,145705.0,152040.0,158375.0,164710.0,171045.0,177380.0,183715.0,190050.0,196385.0,202720.0,209055.0,215390.0,221725.0,228060.0,234395.0,240730.0,247065.0,253400.0,259735.0,266070.0,272405.0,278740.0,285075.0,291410.0,297745.0,304080.0,310415.0,316750.0,323085.0,329420.0,335755.0,342090.0,348425.0,354760.0,361095.0,367430.0,373765.0,380100.0,386435.0,392770.0,399105.0,405440.0,411775.0,418110.0,424445.0,430780.0,437115.0,443450.0,449785.0,456120.0,462455.0,468790.0,475125.0,481460.0,487795.0,494130.0,500465.0,506800.0,513135.0,519470.0,525805.0,532140.0,538475.0,544810.0,551145.0,557480.0,563815.0,570150.0,576485.0,582820.0,589155.0,595490.0,601825.0,608160.0,614495.0,620830.0,627165.0,633500.0],"times":[209791.0,420082.0,861581.0,1002959.0,1374000.0,2076375.0,1981585.0,2426460.0,3119876.0,2849917.0,2274874.0,4173418.0,4048415.0,3084002.0,4944083.0,4847374.0,3879166.0,4112750.0,5878544.0,5184249.0,5478668.0,7387627.0,6219875.0,6820540.0,7821293.0,6882751.0,7168333.0,8841167.0,8333917.0,7232834.0,10413251.0,9419625.0,8620832.0,10858915.0,10438083.0,9846875.0,9941461.0,11335835.0,11780082.0,11419125.0,12229124.0,12546040.0,12101082.0,14212624.0,13216835.0,13427208.0,15546333.0,13848709.0,13516209.0,16910336.0,15485875.0,14403043.0,14601752.0,17630877.0,15663083.0,15345041.0,17325040.0,17145917.0,16980460.0,18744916.0,16882040.0,18498957.0,20064918.0,18954333.0,18395875.0,21633584.0,20856373.0,19510581.0,23571958.0,22154584.0,20999834.0,21169334.0,24601999.0,23393124.0,22933667.0,24452543.0,25340249.0,25040459.0,27554666.0,24587209.0,26419337.0,28371626.0,27782623.0,25752917.0,30640042.0,29782959.0,28080084.0,29923749.0,31418624.0,30578707.0,31301375.0,31981207.0,32510582.0,31610581.0,34258374.0,32367751.0,34832418.0,36030542.0,34059958.0,34755542.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/500/new/tukey.json ================================================ [20.62458664494281,32.72056229304306,64.97649735464373,77.07247300274398] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/500/report/index.html ================================================ Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/500 - Criterion.rs

Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/500

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 50.097 ns 51.192 ns 52.152 ns
0.5730041 0.5885994 0.5765456
Mean 46.839 ns 47.958 ns 49.042 ns
Std. Dev. 4.8033 ns 5.6702 ns 6.4381 ns
Median 46.750 ns 47.955 ns 49.843 ns
MAD 4.4456 ns 5.9804 ns 7.0947 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −9.2286% −4.4351% +0.1865% (p = 0.08 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/report/index.html ================================================ Import as owned and destroy/FlexStr 0.10 (SharedStr - As is) Summary - Criterion.rs

Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)

Violin Plot

Violin Plot

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

Line Chart

Line Chart

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

Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/0

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/10

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/20

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/100

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/500

PDF of Slope Regression
================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/0/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (SharedStr - Optimized)","value_str":"0","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/0","directory_name":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/0","title":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/0"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/0/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":11.789848306463925,"upper_bound":11.966672492685287},"point_estimate":11.8731086720579,"standard_error":0.045216599917974845},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":11.672473683033903,"upper_bound":11.864965555000914},"point_estimate":11.726651555929736,"standard_error":0.055088741349013946},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.2317457643631268,"upper_bound":0.4194348768451378},"point_estimate":0.2901299283173439,"standard_error":0.046673560508294736},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":11.725634750183204,"upper_bound":11.869397270035094},"point_estimate":11.79453731804242,"standard_error":0.03681304066806461},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.32416545455435175,"upper_bound":0.6036719740847015},"point_estimate":0.4559274849781959,"standard_error":0.07568173193916045}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/0/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[59821.0,119642.0,179463.0,239284.0,299105.0,358926.0,418747.0,478568.0,538389.0,598210.0,658031.0,717852.0,777673.0,837494.0,897315.0,957136.0,1016957.0,1076778.0,1136599.0,1196420.0,1256241.0,1316062.0,1375883.0,1435704.0,1495525.0,1555346.0,1615167.0,1674988.0,1734809.0,1794630.0,1854451.0,1914272.0,1974093.0,2033914.0,2093735.0,2153556.0,2213377.0,2273198.0,2333019.0,2392840.0,2452661.0,2512482.0,2572303.0,2632124.0,2691945.0,2751766.0,2811587.0,2871408.0,2931229.0,2991050.0,3050871.0,3110692.0,3170513.0,3230334.0,3290155.0,3349976.0,3409797.0,3469618.0,3529439.0,3589260.0,3649081.0,3708902.0,3768723.0,3828544.0,3888365.0,3948186.0,4008007.0,4067828.0,4127649.0,4187470.0,4247291.0,4307112.0,4366933.0,4426754.0,4486575.0,4546396.0,4606217.0,4666038.0,4725859.0,4785680.0,4845501.0,4905322.0,4965143.0,5024964.0,5084785.0,5144606.0,5204427.0,5264248.0,5324069.0,5383890.0,5443711.0,5503532.0,5563353.0,5623174.0,5682995.0,5742816.0,5802637.0,5862458.0,5922279.0,5982100.0],"times":[866582.0,1431083.0,2176207.0,3151541.0,3545126.0,4138667.0,4992334.0,5416999.0,6104708.0,6713418.0,7672291.0,8269583.0,9468626.0,10424543.0,11036500.0,11952249.0,12274540.0,12822583.0,13061875.0,13944666.0,16125418.0,15308000.0,17244541.0,16492210.0,17819083.0,18947001.0,20504126.0,21124334.0,19907460.0,21548915.0,22063040.0,24233790.0,23484291.0,24183417.0,23920791.0,24587209.0,26230625.0,26613665.0,27223541.0,27854792.0,28521208.0,30212878.0,30109126.0,30874960.0,31309915.0,32158292.0,33204667.0,32985751.0,33792124.0,35556541.0,37739500.0,36703290.0,36652416.0,39752291.0,38232127.0,41675834.0,40422334.0,41225042.0,40576334.0,41780376.0,41623290.0,42631917.0,43855666.0,44439250.0,45518207.0,46885374.0,46871083.0,47619875.0,47506498.0,47628791.0,48079126.0,53211376.0,53476958.0,53475376.0,55662834.0,54121208.0,56052125.0,55331376.0,58070375.0,54943624.0,59125167.0,56739084.0,57955501.0,59393665.0,59496001.0,59715747.0,60495500.0,61714084.0,61680833.0,63211042.0,65604790.0,63789084.0,65081918.0,65976751.0,66082085.0,68756415.0,67601836.0,72495542.0,68606040.0,68875667.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/0/base/tukey.json ================================================ [10.24438195403427,10.923768709848524,12.735466725353199,13.414853481167452] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/0/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.023490533711422783,"upper_bound":0.005704871947644707},"point_estimate":-0.007520462309735243,"standard_error":0.007469517781172232},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.017596835042226207,"upper_bound":0.0034008499378308044},"point_estimate":-0.008807963580734102,"standard_error":0.005481912310330489}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/0/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (SharedStr - Optimized)","value_str":"0","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/0","directory_name":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/0","title":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/0"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/0/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":11.789848306463925,"upper_bound":11.966672492685287},"point_estimate":11.8731086720579,"standard_error":0.045216599917974845},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":11.672473683033903,"upper_bound":11.864965555000914},"point_estimate":11.726651555929736,"standard_error":0.055088741349013946},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.2317457643631268,"upper_bound":0.4194348768451378},"point_estimate":0.2901299283173439,"standard_error":0.046673560508294736},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":11.725634750183204,"upper_bound":11.869397270035094},"point_estimate":11.79453731804242,"standard_error":0.03681304066806461},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.32416545455435175,"upper_bound":0.6036719740847015},"point_estimate":0.4559274849781959,"standard_error":0.07568173193916045}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/0/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[59821.0,119642.0,179463.0,239284.0,299105.0,358926.0,418747.0,478568.0,538389.0,598210.0,658031.0,717852.0,777673.0,837494.0,897315.0,957136.0,1016957.0,1076778.0,1136599.0,1196420.0,1256241.0,1316062.0,1375883.0,1435704.0,1495525.0,1555346.0,1615167.0,1674988.0,1734809.0,1794630.0,1854451.0,1914272.0,1974093.0,2033914.0,2093735.0,2153556.0,2213377.0,2273198.0,2333019.0,2392840.0,2452661.0,2512482.0,2572303.0,2632124.0,2691945.0,2751766.0,2811587.0,2871408.0,2931229.0,2991050.0,3050871.0,3110692.0,3170513.0,3230334.0,3290155.0,3349976.0,3409797.0,3469618.0,3529439.0,3589260.0,3649081.0,3708902.0,3768723.0,3828544.0,3888365.0,3948186.0,4008007.0,4067828.0,4127649.0,4187470.0,4247291.0,4307112.0,4366933.0,4426754.0,4486575.0,4546396.0,4606217.0,4666038.0,4725859.0,4785680.0,4845501.0,4905322.0,4965143.0,5024964.0,5084785.0,5144606.0,5204427.0,5264248.0,5324069.0,5383890.0,5443711.0,5503532.0,5563353.0,5623174.0,5682995.0,5742816.0,5802637.0,5862458.0,5922279.0,5982100.0],"times":[866582.0,1431083.0,2176207.0,3151541.0,3545126.0,4138667.0,4992334.0,5416999.0,6104708.0,6713418.0,7672291.0,8269583.0,9468626.0,10424543.0,11036500.0,11952249.0,12274540.0,12822583.0,13061875.0,13944666.0,16125418.0,15308000.0,17244541.0,16492210.0,17819083.0,18947001.0,20504126.0,21124334.0,19907460.0,21548915.0,22063040.0,24233790.0,23484291.0,24183417.0,23920791.0,24587209.0,26230625.0,26613665.0,27223541.0,27854792.0,28521208.0,30212878.0,30109126.0,30874960.0,31309915.0,32158292.0,33204667.0,32985751.0,33792124.0,35556541.0,37739500.0,36703290.0,36652416.0,39752291.0,38232127.0,41675834.0,40422334.0,41225042.0,40576334.0,41780376.0,41623290.0,42631917.0,43855666.0,44439250.0,45518207.0,46885374.0,46871083.0,47619875.0,47506498.0,47628791.0,48079126.0,53211376.0,53476958.0,53475376.0,55662834.0,54121208.0,56052125.0,55331376.0,58070375.0,54943624.0,59125167.0,56739084.0,57955501.0,59393665.0,59496001.0,59715747.0,60495500.0,61714084.0,61680833.0,63211042.0,65604790.0,63789084.0,65081918.0,65976751.0,66082085.0,68756415.0,67601836.0,72495542.0,68606040.0,68875667.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/0/new/tukey.json ================================================ [10.24438195403427,10.923768709848524,12.735466725353199,13.414853481167452] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/0/report/index.html ================================================ Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/0 - Criterion.rs

Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/0

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 11.726 ns 11.795 ns 11.869 ns
0.9102143 0.9145561 0.9094354
Mean 11.790 ns 11.873 ns 11.967 ns
Std. Dev. 324.17 ps 455.93 ps 603.67 ps
Median 11.672 ns 11.727 ns 11.865 ns
MAD 231.75 ps 290.13 ps 419.43 ps

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −2.3491% −0.7520% +0.5705% (p = 0.34 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/10/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (SharedStr - Optimized)","value_str":"10","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/10","directory_name":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/10","title":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/10"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/10/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":41.394675639959395,"upper_bound":42.987098417195696},"point_estimate":42.14464494744718,"standard_error":0.4058794686724972},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":39.93452734209411,"upper_bound":43.61012722486511},"point_estimate":42.87137974481037,"standard_error":1.1943596390805837},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.7380526693466654,"upper_bound":5.297098641855851},"point_estimate":4.717451338389043,"standard_error":0.62271076212551},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":43.17620398090479,"upper_bound":44.23509319843152},"point_estimate":43.73707498334884,"standard_error":0.2688409644898111},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.9823119877376794,"upper_bound":5.50428583250578},"point_estimate":4.08105289431033,"standard_error":0.7684223267295737}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/10/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[14154.0,28308.0,42462.0,56616.0,70770.0,84924.0,99078.0,113232.0,127386.0,141540.0,155694.0,169848.0,184002.0,198156.0,212310.0,226464.0,240618.0,254772.0,268926.0,283080.0,297234.0,311388.0,325542.0,339696.0,353850.0,368004.0,382158.0,396312.0,410466.0,424620.0,438774.0,452928.0,467082.0,481236.0,495390.0,509544.0,523698.0,537852.0,552006.0,566160.0,580314.0,594468.0,608622.0,622776.0,636930.0,651084.0,665238.0,679392.0,693546.0,707700.0,721854.0,736008.0,750162.0,764316.0,778470.0,792624.0,806778.0,820932.0,835086.0,849240.0,863394.0,877548.0,891702.0,905856.0,920010.0,934164.0,948318.0,962472.0,976626.0,990780.0,1004934.0,1019088.0,1033242.0,1047396.0,1061550.0,1075704.0,1089858.0,1104012.0,1118166.0,1132320.0,1146474.0,1160628.0,1174782.0,1188936.0,1203090.0,1217244.0,1231398.0,1245552.0,1259706.0,1273860.0,1288014.0,1302168.0,1316322.0,1330476.0,1344630.0,1358784.0,1372938.0,1387092.0,1401246.0,1415400.0],"times":[958334.0,1082042.0,1645750.0,2697500.0,2778000.0,3825708.0,4298791.0,4355834.0,5203001.0,5652333.0,5962500.0,6519084.0,7371623.0,7518957.0,8100166.0,8684834.0,9504709.0,10022125.0,10239833.0,10826001.0,11331458.0,12179083.0,12791958.0,12909418.0,13503000.0,14083000.0,14542043.0,15501542.0,16362126.0,16473625.0,17126084.0,17620081.0,18122540.0,18473085.0,18815542.0,19466500.0,19801708.0,20623708.0,21520915.0,21555083.0,22130292.0,22960124.0,23084543.0,23792917.0,24318876.0,30805958.0,31836833.0,31596583.0,32123043.0,32762914.0,32652668.0,33450420.0,33106625.0,34134167.0,33659623.0,34032459.0,34776585.0,35205248.0,35129583.0,36396959.0,35116084.0,35757793.0,36208377.0,36735585.0,37083376.0,37092708.0,36549667.0,43249999.0,43625207.0,44053125.0,45579668.0,44858210.0,46499957.0,46916209.0,46832208.0,48122624.0,48031001.0,49347915.0,49103626.0,49906333.0,49997877.0,50946501.0,52454373.0,52515791.0,52890291.0,52800292.0,53944790.0,54016832.0,54411333.0,54786586.0,60692834.0,59533252.0,62333957.0,62135874.0,62731124.0,62599998.0,62870958.0,62696376.0,61996166.0,61883540.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/10/base/tukey.json ================================================ [20.42406981145089,29.513347918418898,53.751422870333585,62.84070097730159] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/10/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.019963821983583086,"upper_bound":0.030538065872427977},"point_estimate":0.003855934838305597,"standard_error":0.012808585018790073},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.06586725063779097,"upper_bound":0.08231370511103786},"point_estimate":0.02579080855142646,"standard_error":0.03889228346717171}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/10/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (SharedStr - Optimized)","value_str":"10","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/10","directory_name":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/10","title":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/10"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/10/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":41.394675639959395,"upper_bound":42.987098417195696},"point_estimate":42.14464494744718,"standard_error":0.4058794686724972},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":39.93452734209411,"upper_bound":43.61012722486511},"point_estimate":42.87137974481037,"standard_error":1.1943596390805837},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.7380526693466654,"upper_bound":5.297098641855851},"point_estimate":4.717451338389043,"standard_error":0.62271076212551},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":43.17620398090479,"upper_bound":44.23509319843152},"point_estimate":43.73707498334884,"standard_error":0.2688409644898111},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.9823119877376794,"upper_bound":5.50428583250578},"point_estimate":4.08105289431033,"standard_error":0.7684223267295737}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/10/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[14154.0,28308.0,42462.0,56616.0,70770.0,84924.0,99078.0,113232.0,127386.0,141540.0,155694.0,169848.0,184002.0,198156.0,212310.0,226464.0,240618.0,254772.0,268926.0,283080.0,297234.0,311388.0,325542.0,339696.0,353850.0,368004.0,382158.0,396312.0,410466.0,424620.0,438774.0,452928.0,467082.0,481236.0,495390.0,509544.0,523698.0,537852.0,552006.0,566160.0,580314.0,594468.0,608622.0,622776.0,636930.0,651084.0,665238.0,679392.0,693546.0,707700.0,721854.0,736008.0,750162.0,764316.0,778470.0,792624.0,806778.0,820932.0,835086.0,849240.0,863394.0,877548.0,891702.0,905856.0,920010.0,934164.0,948318.0,962472.0,976626.0,990780.0,1004934.0,1019088.0,1033242.0,1047396.0,1061550.0,1075704.0,1089858.0,1104012.0,1118166.0,1132320.0,1146474.0,1160628.0,1174782.0,1188936.0,1203090.0,1217244.0,1231398.0,1245552.0,1259706.0,1273860.0,1288014.0,1302168.0,1316322.0,1330476.0,1344630.0,1358784.0,1372938.0,1387092.0,1401246.0,1415400.0],"times":[958334.0,1082042.0,1645750.0,2697500.0,2778000.0,3825708.0,4298791.0,4355834.0,5203001.0,5652333.0,5962500.0,6519084.0,7371623.0,7518957.0,8100166.0,8684834.0,9504709.0,10022125.0,10239833.0,10826001.0,11331458.0,12179083.0,12791958.0,12909418.0,13503000.0,14083000.0,14542043.0,15501542.0,16362126.0,16473625.0,17126084.0,17620081.0,18122540.0,18473085.0,18815542.0,19466500.0,19801708.0,20623708.0,21520915.0,21555083.0,22130292.0,22960124.0,23084543.0,23792917.0,24318876.0,30805958.0,31836833.0,31596583.0,32123043.0,32762914.0,32652668.0,33450420.0,33106625.0,34134167.0,33659623.0,34032459.0,34776585.0,35205248.0,35129583.0,36396959.0,35116084.0,35757793.0,36208377.0,36735585.0,37083376.0,37092708.0,36549667.0,43249999.0,43625207.0,44053125.0,45579668.0,44858210.0,46499957.0,46916209.0,46832208.0,48122624.0,48031001.0,49347915.0,49103626.0,49906333.0,49997877.0,50946501.0,52454373.0,52515791.0,52890291.0,52800292.0,53944790.0,54016832.0,54411333.0,54786586.0,60692834.0,59533252.0,62333957.0,62135874.0,62731124.0,62599998.0,62870958.0,62696376.0,61996166.0,61883540.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/10/new/tukey.json ================================================ [20.42406981145089,29.513347918418898,53.751422870333585,62.84070097730159] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/10/report/index.html ================================================ Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/10 - Criterion.rs

Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/10

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 43.176 ns 43.737 ns 44.235 ns
0.6958294 0.7066597 0.6980929
Mean 41.395 ns 42.145 ns 42.987 ns
Std. Dev. 2.9823 ns 4.0811 ns 5.5043 ns
Median 39.935 ns 42.871 ns 43.610 ns
MAD 2.7381 ns 4.7175 ns 5.2971 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −1.9964% +0.3856% +3.0538% (p = 0.76 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/100/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (SharedStr - Optimized)","value_str":"100","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/100","directory_name":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/100","title":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/100"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/100/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":64.45155644263835,"upper_bound":68.42769317703545},"point_estimate":66.16541883865825,"standard_error":1.0248855062019215},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":63.73522390436732,"upper_bound":66.62622193380922},"point_estimate":64.56712870283556,"standard_error":0.6719790866662725},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.7162676958901955,"upper_bound":7.003795453476195},"point_estimate":6.02998075905706,"standard_error":0.5552267436633247},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":66.3078696420902,"upper_bound":73.859340325284},"point_estimate":69.4737995676426,"standard_error":1.9762521511439337},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.800369854888622,"upper_bound":15.895120165954244},"point_estimate":10.29975414040586,"standard_error":3.3786410820852355}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/100/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[7705.0,15410.0,23115.0,30820.0,38525.0,46230.0,53935.0,61640.0,69345.0,77050.0,84755.0,92460.0,100165.0,107870.0,115575.0,123280.0,130985.0,138690.0,146395.0,154100.0,161805.0,169510.0,177215.0,184920.0,192625.0,200330.0,208035.0,215740.0,223445.0,231150.0,238855.0,246560.0,254265.0,261970.0,269675.0,277380.0,285085.0,292790.0,300495.0,308200.0,315905.0,323610.0,331315.0,339020.0,346725.0,354430.0,362135.0,369840.0,377545.0,385250.0,392955.0,400660.0,408365.0,416070.0,423775.0,431480.0,439185.0,446890.0,454595.0,462300.0,470005.0,477710.0,485415.0,493120.0,500825.0,508530.0,516235.0,523940.0,531645.0,539350.0,547055.0,554760.0,562465.0,570170.0,577875.0,585580.0,593285.0,600990.0,608695.0,616400.0,624105.0,631810.0,639515.0,647220.0,654925.0,662630.0,670335.0,678040.0,685745.0,693450.0,701155.0,708860.0,716565.0,724270.0,731975.0,739680.0,747385.0,755090.0,762795.0,770500.0],"times":[444583.0,1073332.0,1321002.0,1751626.0,2702081.0,2671582.0,3175584.0,3431084.0,4013251.0,4396209.0,4752628.0,6602332.0,7018040.0,6901208.0,7157333.0,7500124.0,7527997.0,9088752.0,9423833.0,9894418.0,10547334.0,10676791.0,11225752.0,12769332.0,12833876.0,13056208.0,12718459.0,13025208.0,13143333.0,14661541.0,15124999.0,15867999.0,17309544.0,17971127.0,17776958.0,19937206.0,19132375.0,18881209.0,18728583.0,18635501.0,18340501.0,19815252.0,20076209.0,20409043.0,24668210.0,24442752.0,24750667.0,25628166.0,25793665.0,24912626.0,24854168.0,24666709.0,23757418.0,25387128.0,25558207.0,26182959.0,31892625.0,31721958.0,31387418.0,32107002.0,31396000.0,30882543.0,30447959.0,30381500.0,29969918.0,30241335.0,30541207.0,32243416.0,38193540.0,37571001.0,37928750.0,36725041.0,37083084.0,36535043.0,36834668.0,35164584.0,35086499.0,38158877.0,39395706.0,49266750.0,45578167.0,44895375.0,46391206.0,46805332.0,45631625.0,99041959.0,45635583.0,45265831.0,47395957.0,46663416.0,66713708.0,57546668.0,52992375.0,52380375.0,50152456.0,49923833.0,49807875.0,48553415.0,49080961.0,49460043.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/100/base/tukey.json ================================================ [36.68069344289785,48.82629334701674,81.21455975800043,93.36015966211933] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/100/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.00816219083669363,"upper_bound":0.07554309373480131},"point_estimate":0.03713905300523157,"standard_error":0.016862582111422487},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.00014108471837593814,"upper_bound":0.05700566934635254},"point_estimate":0.021650100658674898,"standard_error":0.013868655551019267}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/100/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (SharedStr - Optimized)","value_str":"100","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/100","directory_name":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/100","title":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/100"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/100/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":64.45155644263835,"upper_bound":68.42769317703545},"point_estimate":66.16541883865825,"standard_error":1.0248855062019215},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":63.73522390436732,"upper_bound":66.62622193380922},"point_estimate":64.56712870283556,"standard_error":0.6719790866662725},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.7162676958901955,"upper_bound":7.003795453476195},"point_estimate":6.02998075905706,"standard_error":0.5552267436633247},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":66.3078696420902,"upper_bound":73.859340325284},"point_estimate":69.4737995676426,"standard_error":1.9762521511439337},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.800369854888622,"upper_bound":15.895120165954244},"point_estimate":10.29975414040586,"standard_error":3.3786410820852355}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/100/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[7705.0,15410.0,23115.0,30820.0,38525.0,46230.0,53935.0,61640.0,69345.0,77050.0,84755.0,92460.0,100165.0,107870.0,115575.0,123280.0,130985.0,138690.0,146395.0,154100.0,161805.0,169510.0,177215.0,184920.0,192625.0,200330.0,208035.0,215740.0,223445.0,231150.0,238855.0,246560.0,254265.0,261970.0,269675.0,277380.0,285085.0,292790.0,300495.0,308200.0,315905.0,323610.0,331315.0,339020.0,346725.0,354430.0,362135.0,369840.0,377545.0,385250.0,392955.0,400660.0,408365.0,416070.0,423775.0,431480.0,439185.0,446890.0,454595.0,462300.0,470005.0,477710.0,485415.0,493120.0,500825.0,508530.0,516235.0,523940.0,531645.0,539350.0,547055.0,554760.0,562465.0,570170.0,577875.0,585580.0,593285.0,600990.0,608695.0,616400.0,624105.0,631810.0,639515.0,647220.0,654925.0,662630.0,670335.0,678040.0,685745.0,693450.0,701155.0,708860.0,716565.0,724270.0,731975.0,739680.0,747385.0,755090.0,762795.0,770500.0],"times":[444583.0,1073332.0,1321002.0,1751626.0,2702081.0,2671582.0,3175584.0,3431084.0,4013251.0,4396209.0,4752628.0,6602332.0,7018040.0,6901208.0,7157333.0,7500124.0,7527997.0,9088752.0,9423833.0,9894418.0,10547334.0,10676791.0,11225752.0,12769332.0,12833876.0,13056208.0,12718459.0,13025208.0,13143333.0,14661541.0,15124999.0,15867999.0,17309544.0,17971127.0,17776958.0,19937206.0,19132375.0,18881209.0,18728583.0,18635501.0,18340501.0,19815252.0,20076209.0,20409043.0,24668210.0,24442752.0,24750667.0,25628166.0,25793665.0,24912626.0,24854168.0,24666709.0,23757418.0,25387128.0,25558207.0,26182959.0,31892625.0,31721958.0,31387418.0,32107002.0,31396000.0,30882543.0,30447959.0,30381500.0,29969918.0,30241335.0,30541207.0,32243416.0,38193540.0,37571001.0,37928750.0,36725041.0,37083084.0,36535043.0,36834668.0,35164584.0,35086499.0,38158877.0,39395706.0,49266750.0,45578167.0,44895375.0,46391206.0,46805332.0,45631625.0,99041959.0,45635583.0,45265831.0,47395957.0,46663416.0,66713708.0,57546668.0,52992375.0,52380375.0,50152456.0,49923833.0,49807875.0,48553415.0,49080961.0,49460043.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/100/new/tukey.json ================================================ [36.68069344289785,48.82629334701674,81.21455975800043,93.36015966211933] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/100/report/index.html ================================================ Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/100 - Criterion.rs

Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/100

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 66.308 ns 69.474 ns 73.859 ns
0.1171756 0.1226911 0.1125275
Mean 64.452 ns 66.165 ns 68.428 ns
Std. Dev. 4.8004 ns 10.300 ns 15.895 ns
Median 63.735 ns 64.567 ns 66.626 ns
MAD 4.7163 ns 6.0300 ns 7.0038 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time +0.8162% +3.7139% +7.5543% (p = 0.02 < 0.05)
Change within noise threshold.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/20/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (SharedStr - Optimized)","value_str":"20","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/20","directory_name":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/20","title":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/20"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/20/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":41.220282428869695,"upper_bound":42.85875074083424},"point_estimate":42.04059490455789,"standard_error":0.41872749799047226},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":41.9175769736318,"upper_bound":43.40806797361007},"point_estimate":43.09645074276631,"standard_error":0.4047352588900555},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.903099169363057,"upper_bound":5.824615468338691},"point_estimate":4.021496846898636,"standard_error":0.7572545673423758},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":43.23628902695392,"upper_bound":44.78601545375596},"point_estimate":44.03295934456171,"standard_error":0.39575536098774233},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.7428474412387427,"upper_bound":4.658378307321447},"point_estimate":4.229012811395098,"standard_error":0.23419501019132655}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/20/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[12553.0,25106.0,37659.0,50212.0,62765.0,75318.0,87871.0,100424.0,112977.0,125530.0,138083.0,150636.0,163189.0,175742.0,188295.0,200848.0,213401.0,225954.0,238507.0,251060.0,263613.0,276166.0,288719.0,301272.0,313825.0,326378.0,338931.0,351484.0,364037.0,376590.0,389143.0,401696.0,414249.0,426802.0,439355.0,451908.0,464461.0,477014.0,489567.0,502120.0,514673.0,527226.0,539779.0,552332.0,564885.0,577438.0,589991.0,602544.0,615097.0,627650.0,640203.0,652756.0,665309.0,677862.0,690415.0,702968.0,715521.0,728074.0,740627.0,753180.0,765733.0,778286.0,790839.0,803392.0,815945.0,828498.0,841051.0,853604.0,866157.0,878710.0,891263.0,903816.0,916369.0,928922.0,941475.0,954028.0,966581.0,979134.0,991687.0,1004240.0,1016793.0,1029346.0,1041899.0,1054452.0,1067005.0,1079558.0,1092111.0,1104664.0,1117217.0,1129770.0,1142323.0,1154876.0,1167429.0,1179982.0,1192535.0,1205088.0,1217641.0,1230194.0,1242747.0,1255300.0],"times":[445752.0,1331125.0,1309959.0,1866668.0,2427169.0,2656790.0,3667208.0,4453584.0,4476541.0,4459124.0,4946207.0,5368333.0,5742752.0,6280583.0,7173166.0,7206874.0,7624168.0,7998167.0,8411874.0,8802958.0,9331541.0,9877917.0,10171208.0,11054834.0,11074875.0,15375501.0,15985957.0,16026501.0,16198958.0,16962416.0,16484584.0,16838123.0,17191917.0,17394751.0,16690751.0,17185084.0,17318957.0,17932251.0,21867499.0,21391375.0,22316792.0,23113918.0,23321418.0,23975665.0,24300293.0,24978751.0,25484623.0,25709835.0,26958041.0,27374251.0,27479084.0,31107041.0,31016544.0,30689208.0,30761002.0,31205833.0,30816958.0,30483622.0,30064085.0,30975208.0,29148083.0,29189916.0,30498665.0,32836126.0,34419001.0,36322460.0,36344415.0,37374461.0,38630958.0,39149877.0,42543458.0,42921167.0,41838584.0,43087832.0,43064249.0,42963126.0,47879916.0,46951668.0,46138251.0,46198334.0,46236544.0,46531207.0,44959750.0,44280916.0,45075751.0,45174917.0,43548707.0,43179793.0,44797624.0,48779039.0,49591917.0,50077748.0,51083625.0,50885124.0,54709416.0,57553706.0,59969751.0,59173208.0,59952959.0,58164249.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/20/base/tukey.json ================================================ [17.244927500495415,27.666423622683663,55.457079948518995,65.87857607070724] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/20/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0236681717363096,"upper_bound":0.03191036211647522},"point_estimate":0.0032281469822643682,"standard_error":0.014183555053782458},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.024299418232219705,"upper_bound":0.044991134818642475},"point_estimate":0.016214445544629363,"standard_error":0.018210180468803412}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/20/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (SharedStr - Optimized)","value_str":"20","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/20","directory_name":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/20","title":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/20"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/20/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":41.220282428869695,"upper_bound":42.85875074083424},"point_estimate":42.04059490455789,"standard_error":0.41872749799047226},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":41.9175769736318,"upper_bound":43.40806797361007},"point_estimate":43.09645074276631,"standard_error":0.4047352588900555},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.903099169363057,"upper_bound":5.824615468338691},"point_estimate":4.021496846898636,"standard_error":0.7572545673423758},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":43.23628902695392,"upper_bound":44.78601545375596},"point_estimate":44.03295934456171,"standard_error":0.39575536098774233},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.7428474412387427,"upper_bound":4.658378307321447},"point_estimate":4.229012811395098,"standard_error":0.23419501019132655}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/20/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[12553.0,25106.0,37659.0,50212.0,62765.0,75318.0,87871.0,100424.0,112977.0,125530.0,138083.0,150636.0,163189.0,175742.0,188295.0,200848.0,213401.0,225954.0,238507.0,251060.0,263613.0,276166.0,288719.0,301272.0,313825.0,326378.0,338931.0,351484.0,364037.0,376590.0,389143.0,401696.0,414249.0,426802.0,439355.0,451908.0,464461.0,477014.0,489567.0,502120.0,514673.0,527226.0,539779.0,552332.0,564885.0,577438.0,589991.0,602544.0,615097.0,627650.0,640203.0,652756.0,665309.0,677862.0,690415.0,702968.0,715521.0,728074.0,740627.0,753180.0,765733.0,778286.0,790839.0,803392.0,815945.0,828498.0,841051.0,853604.0,866157.0,878710.0,891263.0,903816.0,916369.0,928922.0,941475.0,954028.0,966581.0,979134.0,991687.0,1004240.0,1016793.0,1029346.0,1041899.0,1054452.0,1067005.0,1079558.0,1092111.0,1104664.0,1117217.0,1129770.0,1142323.0,1154876.0,1167429.0,1179982.0,1192535.0,1205088.0,1217641.0,1230194.0,1242747.0,1255300.0],"times":[445752.0,1331125.0,1309959.0,1866668.0,2427169.0,2656790.0,3667208.0,4453584.0,4476541.0,4459124.0,4946207.0,5368333.0,5742752.0,6280583.0,7173166.0,7206874.0,7624168.0,7998167.0,8411874.0,8802958.0,9331541.0,9877917.0,10171208.0,11054834.0,11074875.0,15375501.0,15985957.0,16026501.0,16198958.0,16962416.0,16484584.0,16838123.0,17191917.0,17394751.0,16690751.0,17185084.0,17318957.0,17932251.0,21867499.0,21391375.0,22316792.0,23113918.0,23321418.0,23975665.0,24300293.0,24978751.0,25484623.0,25709835.0,26958041.0,27374251.0,27479084.0,31107041.0,31016544.0,30689208.0,30761002.0,31205833.0,30816958.0,30483622.0,30064085.0,30975208.0,29148083.0,29189916.0,30498665.0,32836126.0,34419001.0,36322460.0,36344415.0,37374461.0,38630958.0,39149877.0,42543458.0,42921167.0,41838584.0,43087832.0,43064249.0,42963126.0,47879916.0,46951668.0,46138251.0,46198334.0,46236544.0,46531207.0,44959750.0,44280916.0,45075751.0,45174917.0,43548707.0,43179793.0,44797624.0,48779039.0,49591917.0,50077748.0,51083625.0,50885124.0,54709416.0,57553706.0,59969751.0,59173208.0,59952959.0,58164249.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/20/new/tukey.json ================================================ [17.244927500495415,27.666423622683663,55.457079948518995,65.87857607070724] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/20/report/index.html ================================================ Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/20 - Criterion.rs

Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/20

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 43.236 ns 44.033 ns 44.786 ns
0.6362225 0.6511545 0.6377800
Mean 41.220 ns 42.041 ns 42.859 ns
Std. Dev. 3.7428 ns 4.2290 ns 4.6584 ns
Median 41.918 ns 43.096 ns 43.408 ns
MAD 2.9031 ns 4.0215 ns 5.8246 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −2.3668% +0.3228% +3.1910% (p = 0.83 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/500/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (SharedStr - Optimized)","value_str":"500","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/500","directory_name":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/500","title":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/500"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/500/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":104.40937607569941,"upper_bound":106.72155968264788},"point_estimate":105.61245017872113,"standard_error":0.5907212197813526},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":105.60891662917979,"upper_bound":108.27535710334138},"point_estimate":106.86578318217994,"standard_error":0.711911046751635},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.226539742960324,"upper_bound":5.438056210247827},"point_estimate":4.7425243430620965,"standard_error":0.5950985261929387},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":108.18331884986512,"upper_bound":109.44584172357256},"point_estimate":108.84984974846509,"standard_error":0.3205694576370878},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.397420668037737,"upper_bound":7.293931476652896},"point_estimate":5.943853390975401,"standard_error":0.738423806763839}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/500/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[4446.0,8892.0,13338.0,17784.0,22230.0,26676.0,31122.0,35568.0,40014.0,44460.0,48906.0,53352.0,57798.0,62244.0,66690.0,71136.0,75582.0,80028.0,84474.0,88920.0,93366.0,97812.0,102258.0,106704.0,111150.0,115596.0,120042.0,124488.0,128934.0,133380.0,137826.0,142272.0,146718.0,151164.0,155610.0,160056.0,164502.0,168948.0,173394.0,177840.0,182286.0,186732.0,191178.0,195624.0,200070.0,204516.0,208962.0,213408.0,217854.0,222300.0,226746.0,231192.0,235638.0,240084.0,244530.0,248976.0,253422.0,257868.0,262314.0,266760.0,271206.0,275652.0,280098.0,284544.0,288990.0,293436.0,297882.0,302328.0,306774.0,311220.0,315666.0,320112.0,324558.0,329004.0,333450.0,337896.0,342342.0,346788.0,351234.0,355680.0,360126.0,364572.0,369018.0,373464.0,377910.0,382356.0,386802.0,391248.0,395694.0,400140.0,404586.0,409032.0,413478.0,417924.0,422370.0,426816.0,431262.0,435708.0,440154.0,444600.0],"times":[368208.0,752750.0,1130667.0,1731875.0,1922333.0,2601793.0,3012084.0,3701623.0,3676082.0,4659751.0,5330834.0,5471042.0,6177292.0,6557043.0,7083416.0,7701044.0,8595249.0,8249667.0,9188957.0,9718749.0,9659292.0,10033999.0,10039666.0,10771251.0,11303207.0,12322915.0,12528208.0,12804501.0,13207125.0,13632584.0,14231001.0,14294457.0,15038792.0,15480332.0,16561668.0,16171293.0,16641624.0,16967585.0,17573958.0,18132415.0,18851625.0,19195294.0,19790041.0,20342584.0,20682832.0,22502585.0,23258376.0,23782541.0,23043583.0,23506416.0,23810001.0,24352877.0,26297042.0,24771123.0,26129083.0,26571208.0,26887708.0,27546584.0,28132041.0,29023125.0,29784167.0,30198998.0,29601959.0,30814833.0,31343668.0,31891792.0,32224875.0,32865543.0,33506418.0,34021668.0,34085334.0,33764124.0,35172582.0,35569792.0,36604209.0,38305916.0,37280624.0,37672918.0,38823086.0,39355459.0,38615249.0,40133501.0,40459501.0,40759999.0,40633748.0,42188042.0,42648585.0,43642501.0,43544250.0,43090041.0,44802708.0,46465582.0,46401623.0,45899332.0,46674040.0,47955126.0,47833540.0,47176208.0,47806250.0,50377540.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/500/base/tukey.json ================================================ [83.98201376062161,93.50495501185762,118.89946501515365,128.42240626638966] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/500/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.012274345119784084,"upper_bound":0.026749050911722715},"point_estimate":0.007498907094483087,"standard_error":0.009913960137097722},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.002961898541876451,"upper_bound":0.04455695018104344},"point_estimate":0.021753826433769774,"standard_error":0.01050386933594133}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/500/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.10 (SharedStr - Optimized)","value_str":"500","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/500","directory_name":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/500","title":"Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/500"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/500/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":104.40937607569941,"upper_bound":106.72155968264788},"point_estimate":105.61245017872113,"standard_error":0.5907212197813526},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":105.60891662917979,"upper_bound":108.27535710334138},"point_estimate":106.86578318217994,"standard_error":0.711911046751635},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.226539742960324,"upper_bound":5.438056210247827},"point_estimate":4.7425243430620965,"standard_error":0.5950985261929387},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":108.18331884986512,"upper_bound":109.44584172357256},"point_estimate":108.84984974846509,"standard_error":0.3205694576370878},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.397420668037737,"upper_bound":7.293931476652896},"point_estimate":5.943853390975401,"standard_error":0.738423806763839}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/500/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[4446.0,8892.0,13338.0,17784.0,22230.0,26676.0,31122.0,35568.0,40014.0,44460.0,48906.0,53352.0,57798.0,62244.0,66690.0,71136.0,75582.0,80028.0,84474.0,88920.0,93366.0,97812.0,102258.0,106704.0,111150.0,115596.0,120042.0,124488.0,128934.0,133380.0,137826.0,142272.0,146718.0,151164.0,155610.0,160056.0,164502.0,168948.0,173394.0,177840.0,182286.0,186732.0,191178.0,195624.0,200070.0,204516.0,208962.0,213408.0,217854.0,222300.0,226746.0,231192.0,235638.0,240084.0,244530.0,248976.0,253422.0,257868.0,262314.0,266760.0,271206.0,275652.0,280098.0,284544.0,288990.0,293436.0,297882.0,302328.0,306774.0,311220.0,315666.0,320112.0,324558.0,329004.0,333450.0,337896.0,342342.0,346788.0,351234.0,355680.0,360126.0,364572.0,369018.0,373464.0,377910.0,382356.0,386802.0,391248.0,395694.0,400140.0,404586.0,409032.0,413478.0,417924.0,422370.0,426816.0,431262.0,435708.0,440154.0,444600.0],"times":[368208.0,752750.0,1130667.0,1731875.0,1922333.0,2601793.0,3012084.0,3701623.0,3676082.0,4659751.0,5330834.0,5471042.0,6177292.0,6557043.0,7083416.0,7701044.0,8595249.0,8249667.0,9188957.0,9718749.0,9659292.0,10033999.0,10039666.0,10771251.0,11303207.0,12322915.0,12528208.0,12804501.0,13207125.0,13632584.0,14231001.0,14294457.0,15038792.0,15480332.0,16561668.0,16171293.0,16641624.0,16967585.0,17573958.0,18132415.0,18851625.0,19195294.0,19790041.0,20342584.0,20682832.0,22502585.0,23258376.0,23782541.0,23043583.0,23506416.0,23810001.0,24352877.0,26297042.0,24771123.0,26129083.0,26571208.0,26887708.0,27546584.0,28132041.0,29023125.0,29784167.0,30198998.0,29601959.0,30814833.0,31343668.0,31891792.0,32224875.0,32865543.0,33506418.0,34021668.0,34085334.0,33764124.0,35172582.0,35569792.0,36604209.0,38305916.0,37280624.0,37672918.0,38823086.0,39355459.0,38615249.0,40133501.0,40459501.0,40759999.0,40633748.0,42188042.0,42648585.0,43642501.0,43544250.0,43090041.0,44802708.0,46465582.0,46401623.0,45899332.0,46674040.0,47955126.0,47833540.0,47176208.0,47806250.0,50377540.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/500/new/tukey.json ================================================ [83.98201376062161,93.50495501185762,118.89946501515365,128.42240626638966] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/500/report/index.html ================================================ Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/500 - Criterion.rs

Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/500

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 108.18 ns 108.85 ns 109.45 ns
0.9226203 0.9263360 0.9233628
Mean 104.41 ns 105.61 ns 106.72 ns
Std. Dev. 4.3974 ns 5.9439 ns 7.2939 ns
Median 105.61 ns 106.87 ns 108.28 ns
MAD 3.2265 ns 4.7425 ns 5.4381 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −1.2274% +0.7499% +2.6749% (p = 0.47 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/report/index.html ================================================ Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized) Summary - Criterion.rs

Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)

Violin Plot

Violin Plot

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

Line Chart

Line Chart

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

Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/0

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/10

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/20

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/100

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/500

PDF of Slope Regression
================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/0/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.9 (LocalStr)","value_str":"0","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/0","directory_name":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/0","title":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/0"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/0/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.230036525399176,"upper_bound":2.293190871196964},"point_estimate":2.2605261915116923,"standard_error":0.016106382251181297},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.238277739029143,"upper_bound":2.3305609369933498},"point_estimate":2.308946233205279,"standard_error":0.030719055376754838},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.08514269615600371,"upper_bound":0.21184993994669743},"point_estimate":0.1231680229531777,"standard_error":0.04046885438291038},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.277291249494176,"upper_bound":2.319367356180497},"point_estimate":2.3003993960979936,"standard_error":0.01071075933582796},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.12340125717054208,"upper_bound":0.20685326034772922},"point_estimate":0.16179268067822802,"standard_error":0.022559761879553455}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/0/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[139073.0,278146.0,417219.0,556292.0,695365.0,834438.0,973511.0,1112584.0,1251657.0,1390730.0,1529803.0,1668876.0,1807949.0,1947022.0,2086095.0,2225168.0,2364241.0,2503314.0,2642387.0,2781460.0,2920533.0,3059606.0,3198679.0,3337752.0,3476825.0,3615898.0,3754971.0,3894044.0,4033117.0,4172190.0,4311263.0,4450336.0,4589409.0,4728482.0,4867555.0,5006628.0,5145701.0,5284774.0,5423847.0,5562920.0,5701993.0,5841066.0,5980139.0,6119212.0,6258285.0,6397358.0,6536431.0,6675504.0,6814577.0,6953650.0,7092723.0,7231796.0,7370869.0,7509942.0,7649015.0,7788088.0,7927161.0,8066234.0,8205307.0,8344380.0,8483453.0,8622526.0,8761599.0,8900672.0,9039745.0,9178818.0,9317891.0,9456964.0,9596037.0,9735110.0,9874183.0,10013256.0,10152329.0,10291402.0,10430475.0,10569548.0,10708621.0,10847694.0,10986767.0,11125840.0,11264913.0,11403986.0,11543059.0,11682132.0,11821205.0,11960278.0,12099351.0,12238424.0,12377497.0,12516570.0,12655643.0,12794716.0,12933789.0,13072862.0,13211935.0,13351008.0,13490081.0,13629154.0,13768227.0,13907300.0],"times":[294041.0,572374.0,855458.0,1167669.0,2156876.0,2325249.0,2166417.0,2591083.0,3015584.0,3446542.0,3460457.0,3958001.0,4264750.0,4403873.0,4749209.0,5316541.0,5327208.0,5838582.0,6013126.0,6272166.0,6652750.0,6848248.0,7381583.0,7739749.0,7835373.0,7516916.0,7807667.0,8102625.0,8407627.0,8697250.0,9128832.0,9466916.0,9651001.0,10026457.0,10317003.0,10655041.0,10943625.0,11274584.0,11464416.0,11787084.0,12088750.0,12510044.0,12771125.0,12907584.0,13197418.0,13423585.0,13866792.0,13971627.0,14249835.0,14621002.0,14732708.0,14991833.0,15308875.0,15692581.0,16015166.0,16297170.0,16469249.0,16727539.0,17102792.0,17385083.0,20507166.0,20802126.0,21217002.0,21239001.0,21902793.0,21729084.0,22276249.0,23178458.0,22680915.0,22994583.0,23485000.0,23648418.0,24279458.0,24123999.0,24814542.0,25048459.0,25192125.0,25573793.0,25887582.0,27350252.0,26281833.0,26695168.0,26794209.0,27205125.0,27604292.0,28191876.0,28462002.0,28491624.0,29014584.0,28961498.0,29581334.0,30007999.0,30355541.0,30597372.0,30551126.0,30877375.0,31630043.0,31599333.0,31807291.0,32536085.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/0/base/tukey.json ================================================ [1.381061753974489,1.7468397360615577,2.7222476882937414,3.08802567038081] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/0/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.04165855680995015,"upper_bound":0.012173625810111265},"point_estimate":-0.014132276981773773,"standard_error":0.01375777798507212},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.038474959403052345,"upper_bound":0.057890086422606624},"point_estimate":0.0018226507912151302,"standard_error":0.025145842684989338}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/0/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.9 (LocalStr)","value_str":"0","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/0","directory_name":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/0","title":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/0"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/0/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.230036525399176,"upper_bound":2.293190871196964},"point_estimate":2.2605261915116923,"standard_error":0.016106382251181297},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.238277739029143,"upper_bound":2.3305609369933498},"point_estimate":2.308946233205279,"standard_error":0.030719055376754838},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.08514269615600371,"upper_bound":0.21184993994669743},"point_estimate":0.1231680229531777,"standard_error":0.04046885438291038},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.277291249494176,"upper_bound":2.319367356180497},"point_estimate":2.3003993960979936,"standard_error":0.01071075933582796},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.12340125717054208,"upper_bound":0.20685326034772922},"point_estimate":0.16179268067822802,"standard_error":0.022559761879553455}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/0/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[139073.0,278146.0,417219.0,556292.0,695365.0,834438.0,973511.0,1112584.0,1251657.0,1390730.0,1529803.0,1668876.0,1807949.0,1947022.0,2086095.0,2225168.0,2364241.0,2503314.0,2642387.0,2781460.0,2920533.0,3059606.0,3198679.0,3337752.0,3476825.0,3615898.0,3754971.0,3894044.0,4033117.0,4172190.0,4311263.0,4450336.0,4589409.0,4728482.0,4867555.0,5006628.0,5145701.0,5284774.0,5423847.0,5562920.0,5701993.0,5841066.0,5980139.0,6119212.0,6258285.0,6397358.0,6536431.0,6675504.0,6814577.0,6953650.0,7092723.0,7231796.0,7370869.0,7509942.0,7649015.0,7788088.0,7927161.0,8066234.0,8205307.0,8344380.0,8483453.0,8622526.0,8761599.0,8900672.0,9039745.0,9178818.0,9317891.0,9456964.0,9596037.0,9735110.0,9874183.0,10013256.0,10152329.0,10291402.0,10430475.0,10569548.0,10708621.0,10847694.0,10986767.0,11125840.0,11264913.0,11403986.0,11543059.0,11682132.0,11821205.0,11960278.0,12099351.0,12238424.0,12377497.0,12516570.0,12655643.0,12794716.0,12933789.0,13072862.0,13211935.0,13351008.0,13490081.0,13629154.0,13768227.0,13907300.0],"times":[294041.0,572374.0,855458.0,1167669.0,2156876.0,2325249.0,2166417.0,2591083.0,3015584.0,3446542.0,3460457.0,3958001.0,4264750.0,4403873.0,4749209.0,5316541.0,5327208.0,5838582.0,6013126.0,6272166.0,6652750.0,6848248.0,7381583.0,7739749.0,7835373.0,7516916.0,7807667.0,8102625.0,8407627.0,8697250.0,9128832.0,9466916.0,9651001.0,10026457.0,10317003.0,10655041.0,10943625.0,11274584.0,11464416.0,11787084.0,12088750.0,12510044.0,12771125.0,12907584.0,13197418.0,13423585.0,13866792.0,13971627.0,14249835.0,14621002.0,14732708.0,14991833.0,15308875.0,15692581.0,16015166.0,16297170.0,16469249.0,16727539.0,17102792.0,17385083.0,20507166.0,20802126.0,21217002.0,21239001.0,21902793.0,21729084.0,22276249.0,23178458.0,22680915.0,22994583.0,23485000.0,23648418.0,24279458.0,24123999.0,24814542.0,25048459.0,25192125.0,25573793.0,25887582.0,27350252.0,26281833.0,26695168.0,26794209.0,27205125.0,27604292.0,28191876.0,28462002.0,28491624.0,29014584.0,28961498.0,29581334.0,30007999.0,30355541.0,30597372.0,30551126.0,30877375.0,31630043.0,31599333.0,31807291.0,32536085.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/0/new/tukey.json ================================================ [1.381061753974489,1.7468397360615577,2.7222476882937414,3.08802567038081] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/0/report/index.html ================================================ Import as owned and destroy/FlexStr 0.9 (LocalStr)/0 - Criterion.rs

Import as owned and destroy/FlexStr 0.9 (LocalStr)/0

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 2.2773 ns 2.3004 ns 2.3194 ns
0.7763045 0.7840777 0.7788234
Mean 2.2300 ns 2.2605 ns 2.2932 ns
Std. Dev. 123.40 ps 161.79 ps 206.85 ps
Median 2.2383 ns 2.3089 ns 2.3306 ns
MAD 85.143 ps 123.17 ps 211.85 ps

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −4.1659% −1.4132% +1.2174% (p = 0.34 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/10/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.9 (LocalStr)","value_str":"10","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/10","directory_name":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/10","title":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/10"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/10/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":32.14220124209393,"upper_bound":33.59720540090409},"point_estimate":32.852827556594704,"standard_error":0.37047245489733766},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":31.084090732363315,"upper_bound":34.85198455873963},"point_estimate":33.31921537558806,"standard_error":0.9495216962896752},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.539663066425479,"upper_bound":5.1398525049779495},"point_estimate":4.166250111542805,"standard_error":0.6648030082701187},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":33.71115607392955,"upper_bound":34.85486983493258},"point_estimate":34.29800631347949,"standard_error":0.29268730791400066},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.111469356404919,"upper_bound":4.491345447838969},"point_estimate":3.7274490718265403,"standard_error":0.3734801224081636}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/10/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[16817.0,33634.0,50451.0,67268.0,84085.0,100902.0,117719.0,134536.0,151353.0,168170.0,184987.0,201804.0,218621.0,235438.0,252255.0,269072.0,285889.0,302706.0,319523.0,336340.0,353157.0,369974.0,386791.0,403608.0,420425.0,437242.0,454059.0,470876.0,487693.0,504510.0,521327.0,538144.0,554961.0,571778.0,588595.0,605412.0,622229.0,639046.0,655863.0,672680.0,689497.0,706314.0,723131.0,739948.0,756765.0,773582.0,790399.0,807216.0,824033.0,840850.0,857667.0,874484.0,891301.0,908118.0,924935.0,941752.0,958569.0,975386.0,992203.0,1009020.0,1025837.0,1042654.0,1059471.0,1076288.0,1093105.0,1109922.0,1126739.0,1143556.0,1160373.0,1177190.0,1194007.0,1210824.0,1227641.0,1244458.0,1261275.0,1278092.0,1294909.0,1311726.0,1328543.0,1345360.0,1362177.0,1378994.0,1395811.0,1412628.0,1429445.0,1446262.0,1463079.0,1479896.0,1496713.0,1513530.0,1530347.0,1547164.0,1563981.0,1580798.0,1597615.0,1614432.0,1631249.0,1648066.0,1664883.0,1681700.0],"times":[834251.0,955376.0,1435543.0,2431289.0,2461293.0,3417416.0,3573626.0,3831668.0,4783543.0,4735833.0,5644874.0,5744374.0,6197875.0,6690373.0,7199375.0,7707459.0,8634249.0,8601458.0,9156833.0,10370790.0,9959210.0,10948790.0,11179916.0,11637293.0,11890625.0,12605666.0,12992292.0,13596417.0,13870583.0,14640707.0,15042998.0,15642041.0,15855292.0,16385418.0,17081790.0,17319043.0,17884751.0,18239459.0,26052916.0,26254666.0,25020249.0,25791250.0,25340582.0,26080373.0,26528873.0,26420583.0,26537292.0,26881170.0,27083792.0,27491331.0,27571207.0,27182540.0,27293334.0,27985960.0,27849293.0,33716667.0,28768249.0,35195043.0,35671581.0,36225250.0,37024375.0,37824750.0,38284166.0,38740167.0,39328209.0,39513333.0,40135458.0,40284750.0,40788208.0,41495293.0,41824043.0,42214709.0,42895918.0,43371831.0,43595208.0,50788543.0,48795664.0,50301041.0,49309331.0,48802418.0,48664331.0,50002415.0,50306540.0,49790294.0,48442626.0,49526500.0,48775168.0,49740208.0,47583917.0,49334084.0,48082790.0,48834666.0,48131789.0,47711917.0,54849500.0,57000333.0,57761043.0,58630749.0,59784082.0,60980542.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/10/base/tukey.json ================================================ [9.022168172938045,19.00649055275185,45.63135023225532,55.61567261206912] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/10/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.03053745057471437,"upper_bound":0.03651698284607402},"point_estimate":0.001792758336382816,"standard_error":0.01708792007018898},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0650381877417805,"upper_bound":0.11100508976244657},"point_estimate":0.021042128452789077,"standard_error":0.04548904424945979}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/10/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.9 (LocalStr)","value_str":"10","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/10","directory_name":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/10","title":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/10"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/10/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":32.14220124209393,"upper_bound":33.59720540090409},"point_estimate":32.852827556594704,"standard_error":0.37047245489733766},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":31.084090732363315,"upper_bound":34.85198455873963},"point_estimate":33.31921537558806,"standard_error":0.9495216962896752},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.539663066425479,"upper_bound":5.1398525049779495},"point_estimate":4.166250111542805,"standard_error":0.6648030082701187},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":33.71115607392955,"upper_bound":34.85486983493258},"point_estimate":34.29800631347949,"standard_error":0.29268730791400066},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.111469356404919,"upper_bound":4.491345447838969},"point_estimate":3.7274490718265403,"standard_error":0.3734801224081636}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/10/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[16817.0,33634.0,50451.0,67268.0,84085.0,100902.0,117719.0,134536.0,151353.0,168170.0,184987.0,201804.0,218621.0,235438.0,252255.0,269072.0,285889.0,302706.0,319523.0,336340.0,353157.0,369974.0,386791.0,403608.0,420425.0,437242.0,454059.0,470876.0,487693.0,504510.0,521327.0,538144.0,554961.0,571778.0,588595.0,605412.0,622229.0,639046.0,655863.0,672680.0,689497.0,706314.0,723131.0,739948.0,756765.0,773582.0,790399.0,807216.0,824033.0,840850.0,857667.0,874484.0,891301.0,908118.0,924935.0,941752.0,958569.0,975386.0,992203.0,1009020.0,1025837.0,1042654.0,1059471.0,1076288.0,1093105.0,1109922.0,1126739.0,1143556.0,1160373.0,1177190.0,1194007.0,1210824.0,1227641.0,1244458.0,1261275.0,1278092.0,1294909.0,1311726.0,1328543.0,1345360.0,1362177.0,1378994.0,1395811.0,1412628.0,1429445.0,1446262.0,1463079.0,1479896.0,1496713.0,1513530.0,1530347.0,1547164.0,1563981.0,1580798.0,1597615.0,1614432.0,1631249.0,1648066.0,1664883.0,1681700.0],"times":[834251.0,955376.0,1435543.0,2431289.0,2461293.0,3417416.0,3573626.0,3831668.0,4783543.0,4735833.0,5644874.0,5744374.0,6197875.0,6690373.0,7199375.0,7707459.0,8634249.0,8601458.0,9156833.0,10370790.0,9959210.0,10948790.0,11179916.0,11637293.0,11890625.0,12605666.0,12992292.0,13596417.0,13870583.0,14640707.0,15042998.0,15642041.0,15855292.0,16385418.0,17081790.0,17319043.0,17884751.0,18239459.0,26052916.0,26254666.0,25020249.0,25791250.0,25340582.0,26080373.0,26528873.0,26420583.0,26537292.0,26881170.0,27083792.0,27491331.0,27571207.0,27182540.0,27293334.0,27985960.0,27849293.0,33716667.0,28768249.0,35195043.0,35671581.0,36225250.0,37024375.0,37824750.0,38284166.0,38740167.0,39328209.0,39513333.0,40135458.0,40284750.0,40788208.0,41495293.0,41824043.0,42214709.0,42895918.0,43371831.0,43595208.0,50788543.0,48795664.0,50301041.0,49309331.0,48802418.0,48664331.0,50002415.0,50306540.0,49790294.0,48442626.0,49526500.0,48775168.0,49740208.0,47583917.0,49334084.0,48082790.0,48834666.0,48131789.0,47711917.0,54849500.0,57000333.0,57761043.0,58630749.0,59784082.0,60980542.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/10/new/tukey.json ================================================ [9.022168172938045,19.00649055275185,45.63135023225532,55.61567261206912] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/10/report/index.html ================================================ Import as owned and destroy/FlexStr 0.9 (LocalStr)/10 - Criterion.rs

Import as owned and destroy/FlexStr 0.9 (LocalStr)/10

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 33.711 ns 34.298 ns 34.855 ns
0.6232825 0.6358422 0.6245110
Mean 32.142 ns 32.853 ns 33.597 ns
Std. Dev. 3.1115 ns 3.7274 ns 4.4913 ns
Median 31.084 ns 33.319 ns 34.852 ns
MAD 2.5397 ns 4.1663 ns 5.1399 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −3.0537% +0.1793% +3.6517% (p = 0.92 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/100/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.9 (LocalStr)","value_str":"100","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/100","directory_name":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/100","title":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/100"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/100/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":62.64339702854908,"upper_bound":64.45892981413277},"point_estimate":63.543663375778195,"standard_error":0.46354346385898665},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":61.9361701807229,"upper_bound":64.43044640522876},"point_estimate":63.251548877522026,"standard_error":0.6814851399963953},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.6104246950990793,"upper_bound":5.745273807615821},"point_estimate":4.987099606188937,"standard_error":0.5652831622774553},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":63.6960449163092,"upper_bound":65.75880133396674},"point_estimate":64.71918721442293,"standard_error":0.5265886206945098},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.955194846055947,"upper_bound":5.336133157347368},"point_estimate":4.670962949307606,"standard_error":0.3521537278853598}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/100/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[8500.0,17000.0,25500.0,34000.0,42500.0,51000.0,59500.0,68000.0,76500.0,85000.0,93500.0,102000.0,110500.0,119000.0,127500.0,136000.0,144500.0,153000.0,161500.0,170000.0,178500.0,187000.0,195500.0,204000.0,212500.0,221000.0,229500.0,238000.0,246500.0,255000.0,263500.0,272000.0,280500.0,289000.0,297500.0,306000.0,314500.0,323000.0,331500.0,340000.0,348500.0,357000.0,365500.0,374000.0,382500.0,391000.0,399500.0,408000.0,416500.0,425000.0,433500.0,442000.0,450500.0,459000.0,467500.0,476000.0,484500.0,493000.0,501500.0,510000.0,518500.0,527000.0,535500.0,544000.0,552500.0,561000.0,569500.0,578000.0,586500.0,595000.0,603500.0,612000.0,620500.0,629000.0,637500.0,646000.0,654500.0,663000.0,671500.0,680000.0,688500.0,697000.0,705500.0,714000.0,722500.0,731000.0,739500.0,748000.0,756500.0,765000.0,773500.0,782000.0,790500.0,799000.0,807500.0,816000.0,824500.0,833000.0,841500.0,850000.0],"times":[471750.0,1294082.0,1400624.0,1865794.0,3320459.0,3048041.0,3306584.0,4210291.0,4181418.0,4599126.0,6455042.0,6590668.0,7324792.0,7074709.0,7467333.0,8647000.0,9730999.0,9684751.0,10377792.0,10564625.0,11214625.0,12540042.0,12391293.0,12661209.0,12726333.0,13681042.0,12831124.0,15079710.0,14981874.0,17280209.0,17059543.0,17520208.0,18755750.0,18543416.0,18403708.0,18539582.0,18014124.0,19293040.0,19792289.0,20257419.0,24369710.0,24102958.0,24130878.0,25158458.0,24651499.0,24102666.0,24158251.0,24004958.0,24701460.0,25601043.0,25961000.0,30548168.0,30633707.0,31187502.0,31003584.0,30605124.0,29914208.0,29594706.0,28449499.0,30011417.0,30496416.0,31328624.0,37467377.0,37236249.0,37486419.0,36862958.0,35827707.0,34843459.0,34795709.0,34517374.0,37140960.0,37436332.0,44452542.0,43567624.0,43719001.0,42729250.0,42374459.0,41115210.0,42125083.0,41563334.0,42136251.0,44954625.0,43710167.0,50885459.0,49908959.0,49574168.0,49766166.0,48543959.0,48730791.0,48807458.0,47814833.0,49425584.0,48974835.0,50410957.0,56584959.0,55344625.0,54584293.0,56234125.0,55138624.0,63410041.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/100/base/tukey.json ================================================ [39.408762823160615,49.79726570164116,77.49994004425594,87.88844292273649] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/100/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.00989039388635373,"upper_bound":0.027614055607988613},"point_estimate":0.008910267083878765,"standard_error":0.009558148720654915},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.02144285202591345,"upper_bound":0.03716604106951937},"point_estimate":0.008480638607509139,"standard_error":0.014617192409225412}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/100/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.9 (LocalStr)","value_str":"100","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/100","directory_name":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/100","title":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/100"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/100/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":62.64339702854908,"upper_bound":64.45892981413277},"point_estimate":63.543663375778195,"standard_error":0.46354346385898665},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":61.9361701807229,"upper_bound":64.43044640522876},"point_estimate":63.251548877522026,"standard_error":0.6814851399963953},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.6104246950990793,"upper_bound":5.745273807615821},"point_estimate":4.987099606188937,"standard_error":0.5652831622774553},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":63.6960449163092,"upper_bound":65.75880133396674},"point_estimate":64.71918721442293,"standard_error":0.5265886206945098},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.955194846055947,"upper_bound":5.336133157347368},"point_estimate":4.670962949307606,"standard_error":0.3521537278853598}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/100/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[8500.0,17000.0,25500.0,34000.0,42500.0,51000.0,59500.0,68000.0,76500.0,85000.0,93500.0,102000.0,110500.0,119000.0,127500.0,136000.0,144500.0,153000.0,161500.0,170000.0,178500.0,187000.0,195500.0,204000.0,212500.0,221000.0,229500.0,238000.0,246500.0,255000.0,263500.0,272000.0,280500.0,289000.0,297500.0,306000.0,314500.0,323000.0,331500.0,340000.0,348500.0,357000.0,365500.0,374000.0,382500.0,391000.0,399500.0,408000.0,416500.0,425000.0,433500.0,442000.0,450500.0,459000.0,467500.0,476000.0,484500.0,493000.0,501500.0,510000.0,518500.0,527000.0,535500.0,544000.0,552500.0,561000.0,569500.0,578000.0,586500.0,595000.0,603500.0,612000.0,620500.0,629000.0,637500.0,646000.0,654500.0,663000.0,671500.0,680000.0,688500.0,697000.0,705500.0,714000.0,722500.0,731000.0,739500.0,748000.0,756500.0,765000.0,773500.0,782000.0,790500.0,799000.0,807500.0,816000.0,824500.0,833000.0,841500.0,850000.0],"times":[471750.0,1294082.0,1400624.0,1865794.0,3320459.0,3048041.0,3306584.0,4210291.0,4181418.0,4599126.0,6455042.0,6590668.0,7324792.0,7074709.0,7467333.0,8647000.0,9730999.0,9684751.0,10377792.0,10564625.0,11214625.0,12540042.0,12391293.0,12661209.0,12726333.0,13681042.0,12831124.0,15079710.0,14981874.0,17280209.0,17059543.0,17520208.0,18755750.0,18543416.0,18403708.0,18539582.0,18014124.0,19293040.0,19792289.0,20257419.0,24369710.0,24102958.0,24130878.0,25158458.0,24651499.0,24102666.0,24158251.0,24004958.0,24701460.0,25601043.0,25961000.0,30548168.0,30633707.0,31187502.0,31003584.0,30605124.0,29914208.0,29594706.0,28449499.0,30011417.0,30496416.0,31328624.0,37467377.0,37236249.0,37486419.0,36862958.0,35827707.0,34843459.0,34795709.0,34517374.0,37140960.0,37436332.0,44452542.0,43567624.0,43719001.0,42729250.0,42374459.0,41115210.0,42125083.0,41563334.0,42136251.0,44954625.0,43710167.0,50885459.0,49908959.0,49574168.0,49766166.0,48543959.0,48730791.0,48807458.0,47814833.0,49425584.0,48974835.0,50410957.0,56584959.0,55344625.0,54584293.0,56234125.0,55138624.0,63410041.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/100/new/tukey.json ================================================ [39.408762823160615,49.79726570164116,77.49994004425594,87.88844292273649] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/100/report/index.html ================================================ Import as owned and destroy/FlexStr 0.9 (LocalStr)/100 - Criterion.rs

Import as owned and destroy/FlexStr 0.9 (LocalStr)/100

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 63.696 ns 64.719 ns 65.759 ns
0.7581993 0.7698348 0.7578275
Mean 62.643 ns 63.544 ns 64.459 ns
Std. Dev. 3.9552 ns 4.6710 ns 5.3361 ns
Median 61.936 ns 63.252 ns 64.430 ns
MAD 3.6104 ns 4.9871 ns 5.7453 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.9890% +0.8910% +2.7614% (p = 0.36 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/20/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.9 (LocalStr)","value_str":"20","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/20","directory_name":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/20","title":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/20"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/20/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":35.4081060766326,"upper_bound":36.98664447650408},"point_estimate":36.18151112069723,"standard_error":0.40213423690297795},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":35.470943157111975,"upper_bound":37.33692924556884},"point_estimate":36.57116573993636,"standard_error":0.47034314409397115},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.8564831616246367,"upper_bound":5.142047934540606},"point_estimate":4.240442286751758,"standard_error":0.5963002428847185},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":36.505036021877814,"upper_bound":38.097610052915144},"point_estimate":37.30005550927275,"standard_error":0.40544537671302777},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.2485838126122575,"upper_bound":4.990781065659196},"point_estimate":4.033172863881475,"standard_error":0.4695121725587691}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/20/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[14503.0,29006.0,43509.0,58012.0,72515.0,87018.0,101521.0,116024.0,130527.0,145030.0,159533.0,174036.0,188539.0,203042.0,217545.0,232048.0,246551.0,261054.0,275557.0,290060.0,304563.0,319066.0,333569.0,348072.0,362575.0,377078.0,391581.0,406084.0,420587.0,435090.0,449593.0,464096.0,478599.0,493102.0,507605.0,522108.0,536611.0,551114.0,565617.0,580120.0,594623.0,609126.0,623629.0,638132.0,652635.0,667138.0,681641.0,696144.0,710647.0,725150.0,739653.0,754156.0,768659.0,783162.0,797665.0,812168.0,826671.0,841174.0,855677.0,870180.0,884683.0,899186.0,913689.0,928192.0,942695.0,957198.0,971701.0,986204.0,1000707.0,1015210.0,1029713.0,1044216.0,1058719.0,1073222.0,1087725.0,1102228.0,1116731.0,1131234.0,1145737.0,1160240.0,1174743.0,1189246.0,1203749.0,1218252.0,1232755.0,1247258.0,1261761.0,1276264.0,1290767.0,1305270.0,1319773.0,1334276.0,1348779.0,1363282.0,1377785.0,1392288.0,1406791.0,1421294.0,1435797.0,1450300.0],"times":[807040.0,872540.0,1334793.0,2118251.0,2281210.0,3327501.0,3100877.0,4018332.0,3935668.0,4417877.0,4821831.0,5286207.0,6350251.0,6260334.0,6641707.0,6929667.0,7919753.0,7927333.0,8937292.0,8736208.0,9205333.0,9734749.0,13143167.0,14124081.0,13753584.0,14038125.0,13673084.0,14095001.0,14252833.0,14471125.0,14679541.0,15170458.0,17869417.0,18481710.0,19279501.0,18923998.0,20075458.0,20513043.0,20769085.0,21320916.0,21892456.0,22413793.0,22816374.0,26122999.0,26558083.0,25900542.0,26322249.0,25286624.0,25367333.0,25590374.0,25856625.0,24915792.0,25260166.0,24896499.0,24868497.0,30631249.0,30989376.0,32094835.0,32977251.0,32703834.0,35831039.0,36174542.0,37709750.0,36689627.0,36775501.0,37419291.0,39988958.0,39355542.0,39670040.0,38913123.0,38368748.0,37463666.0,37018250.0,37318166.0,36158249.0,35733167.0,36137125.0,41353251.0,40640372.0,41394665.0,44736750.0,45133457.0,49321126.0,52001209.0,52029333.0,52143878.0,51519207.0,50795335.0,54223499.0,53193875.0,52462375.0,51338333.0,51297208.0,49945750.0,49712583.0,48256626.0,47673209.0,46836002.0,47963085.0,52096250.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/20/base/tukey.json ================================================ [16.391436823950308,24.704095353096307,46.871184764152304,55.1838432932983] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/20/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.066770846348462,"upper_bound":0.012967844516665798},"point_estimate":-0.02447678803468445,"standard_error":0.020366615284190943},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.052455570667133314,"upper_bound":0.02128010736549757},"point_estimate":-0.010481857489007984,"standard_error":0.018230981571370743}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/20/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.9 (LocalStr)","value_str":"20","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/20","directory_name":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/20","title":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/20"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/20/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":35.4081060766326,"upper_bound":36.98664447650408},"point_estimate":36.18151112069723,"standard_error":0.40213423690297795},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":35.470943157111975,"upper_bound":37.33692924556884},"point_estimate":36.57116573993636,"standard_error":0.47034314409397115},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.8564831616246367,"upper_bound":5.142047934540606},"point_estimate":4.240442286751758,"standard_error":0.5963002428847185},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":36.505036021877814,"upper_bound":38.097610052915144},"point_estimate":37.30005550927275,"standard_error":0.40544537671302777},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.2485838126122575,"upper_bound":4.990781065659196},"point_estimate":4.033172863881475,"standard_error":0.4695121725587691}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/20/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[14503.0,29006.0,43509.0,58012.0,72515.0,87018.0,101521.0,116024.0,130527.0,145030.0,159533.0,174036.0,188539.0,203042.0,217545.0,232048.0,246551.0,261054.0,275557.0,290060.0,304563.0,319066.0,333569.0,348072.0,362575.0,377078.0,391581.0,406084.0,420587.0,435090.0,449593.0,464096.0,478599.0,493102.0,507605.0,522108.0,536611.0,551114.0,565617.0,580120.0,594623.0,609126.0,623629.0,638132.0,652635.0,667138.0,681641.0,696144.0,710647.0,725150.0,739653.0,754156.0,768659.0,783162.0,797665.0,812168.0,826671.0,841174.0,855677.0,870180.0,884683.0,899186.0,913689.0,928192.0,942695.0,957198.0,971701.0,986204.0,1000707.0,1015210.0,1029713.0,1044216.0,1058719.0,1073222.0,1087725.0,1102228.0,1116731.0,1131234.0,1145737.0,1160240.0,1174743.0,1189246.0,1203749.0,1218252.0,1232755.0,1247258.0,1261761.0,1276264.0,1290767.0,1305270.0,1319773.0,1334276.0,1348779.0,1363282.0,1377785.0,1392288.0,1406791.0,1421294.0,1435797.0,1450300.0],"times":[807040.0,872540.0,1334793.0,2118251.0,2281210.0,3327501.0,3100877.0,4018332.0,3935668.0,4417877.0,4821831.0,5286207.0,6350251.0,6260334.0,6641707.0,6929667.0,7919753.0,7927333.0,8937292.0,8736208.0,9205333.0,9734749.0,13143167.0,14124081.0,13753584.0,14038125.0,13673084.0,14095001.0,14252833.0,14471125.0,14679541.0,15170458.0,17869417.0,18481710.0,19279501.0,18923998.0,20075458.0,20513043.0,20769085.0,21320916.0,21892456.0,22413793.0,22816374.0,26122999.0,26558083.0,25900542.0,26322249.0,25286624.0,25367333.0,25590374.0,25856625.0,24915792.0,25260166.0,24896499.0,24868497.0,30631249.0,30989376.0,32094835.0,32977251.0,32703834.0,35831039.0,36174542.0,37709750.0,36689627.0,36775501.0,37419291.0,39988958.0,39355542.0,39670040.0,38913123.0,38368748.0,37463666.0,37018250.0,37318166.0,36158249.0,35733167.0,36137125.0,41353251.0,40640372.0,41394665.0,44736750.0,45133457.0,49321126.0,52001209.0,52029333.0,52143878.0,51519207.0,50795335.0,54223499.0,53193875.0,52462375.0,51338333.0,51297208.0,49945750.0,49712583.0,48256626.0,47673209.0,46836002.0,47963085.0,52096250.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/20/new/tukey.json ================================================ [16.391436823950308,24.704095353096307,46.871184764152304,55.1838432932983] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/20/report/index.html ================================================ Import as owned and destroy/FlexStr 0.9 (LocalStr)/20 - Criterion.rs

Import as owned and destroy/FlexStr 0.9 (LocalStr)/20

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 36.505 ns 37.300 ns 38.098 ns
0.4724159 0.4890466 0.4723133
Mean 35.408 ns 36.182 ns 36.987 ns
Std. Dev. 3.2486 ns 4.0332 ns 4.9908 ns
Median 35.471 ns 36.571 ns 37.337 ns
MAD 2.8565 ns 4.2404 ns 5.1420 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −6.6771% −2.4477% +1.2968% (p = 0.26 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/500/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.9 (LocalStr)","value_str":"500","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/500","directory_name":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/500","title":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/500"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/500/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":102.80918493611402,"upper_bound":105.36762135071118},"point_estimate":104.12167326845379,"standard_error":0.6509209912721251},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":103.70318207318783,"upper_bound":105.2850448641203},"point_estimate":104.389088293919,"standard_error":0.4544209074432965},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.073745801789074,"upper_bound":6.5663983724513235},"point_estimate":4.989618806613474,"standard_error":0.9254669446427741},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":106.51979406156018,"upper_bound":109.10940003214462},"point_estimate":107.85426229467919,"standard_error":0.6604822241197827},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.814782189249138,"upper_bound":8.10453429615963},"point_estimate":6.528843560350775,"standard_error":0.8422558771980987}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/500/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[4932.0,9864.0,14796.0,19728.0,24660.0,29592.0,34524.0,39456.0,44388.0,49320.0,54252.0,59184.0,64116.0,69048.0,73980.0,78912.0,83844.0,88776.0,93708.0,98640.0,103572.0,108504.0,113436.0,118368.0,123300.0,128232.0,133164.0,138096.0,143028.0,147960.0,152892.0,157824.0,162756.0,167688.0,172620.0,177552.0,182484.0,187416.0,192348.0,197280.0,202212.0,207144.0,212076.0,217008.0,221940.0,226872.0,231804.0,236736.0,241668.0,246600.0,251532.0,256464.0,261396.0,266328.0,271260.0,276192.0,281124.0,286056.0,290988.0,295920.0,300852.0,305784.0,310716.0,315648.0,320580.0,325512.0,330444.0,335376.0,340308.0,345240.0,350172.0,355104.0,360036.0,364968.0,369900.0,374832.0,379764.0,384696.0,389628.0,394560.0,399492.0,404424.0,409356.0,414288.0,419220.0,424152.0,429084.0,434016.0,438948.0,443880.0,448812.0,453744.0,458676.0,463608.0,468540.0,473472.0,478404.0,483336.0,488268.0,493200.0],"times":[409083.0,777291.0,1416999.0,1553834.0,2544501.0,3035667.0,3592417.0,3731999.0,4636291.0,5390789.0,5859334.0,5992705.0,6191585.0,6750208.0,7384376.0,7687208.0,8119958.0,9357625.0,9383583.0,9946583.0,10176542.0,11230791.0,12248917.0,12305124.0,12153000.0,13275664.0,13872333.0,14151123.0,14262790.0,14687417.0,15287000.0,15973376.0,16208873.0,16797876.0,17315373.0,18209499.0,18765627.0,19410000.0,19746249.0,20504332.0,20929670.0,21756375.0,22277584.0,23121958.0,23337208.0,23896916.0,24526874.0,25601666.0,24977250.0,25613541.0,26213916.0,27227750.0,27130290.0,27813001.0,28361793.0,28819750.0,27511876.0,30039418.0,30799208.0,31307666.0,29323042.0,32153209.0,32713748.0,33260794.0,31683290.0,33795499.0,33616710.0,35196710.0,33056873.0,35849710.0,37662043.0,37807794.0,35822665.0,39069043.0,40368500.0,39989748.0,38916166.0,41159624.0,42609665.0,45106250.0,50427959.0,44153457.0,44852208.0,45393164.0,45365293.0,47542125.0,47867249.0,47920375.0,46459332.0,48780750.0,49901960.0,50804875.0,49050126.0,51826999.0,52443666.0,52408124.0,52552709.0,54370250.0,55896375.0,56536999.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/500/base/tukey.json ================================================ [81.48752966244167,91.3021881381957,117.47461074020643,127.28926921596045] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/500/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.02960864367502689,"upper_bound":0.03076787430260181},"point_estimate":0.003941900569855328,"standard_error":0.015510209240430888},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.0029068538392882566,"upper_bound":0.02100879534708361},"point_estimate":0.009610635780182397,"standard_error":0.005011020517388033}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/500/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.9 (LocalStr)","value_str":"500","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/500","directory_name":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/500","title":"Import as owned and destroy/FlexStr 0.9 (LocalStr)/500"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/500/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":102.80918493611402,"upper_bound":105.36762135071118},"point_estimate":104.12167326845379,"standard_error":0.6509209912721251},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":103.70318207318783,"upper_bound":105.2850448641203},"point_estimate":104.389088293919,"standard_error":0.4544209074432965},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.073745801789074,"upper_bound":6.5663983724513235},"point_estimate":4.989618806613474,"standard_error":0.9254669446427741},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":106.51979406156018,"upper_bound":109.10940003214462},"point_estimate":107.85426229467919,"standard_error":0.6604822241197827},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.814782189249138,"upper_bound":8.10453429615963},"point_estimate":6.528843560350775,"standard_error":0.8422558771980987}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/500/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[4932.0,9864.0,14796.0,19728.0,24660.0,29592.0,34524.0,39456.0,44388.0,49320.0,54252.0,59184.0,64116.0,69048.0,73980.0,78912.0,83844.0,88776.0,93708.0,98640.0,103572.0,108504.0,113436.0,118368.0,123300.0,128232.0,133164.0,138096.0,143028.0,147960.0,152892.0,157824.0,162756.0,167688.0,172620.0,177552.0,182484.0,187416.0,192348.0,197280.0,202212.0,207144.0,212076.0,217008.0,221940.0,226872.0,231804.0,236736.0,241668.0,246600.0,251532.0,256464.0,261396.0,266328.0,271260.0,276192.0,281124.0,286056.0,290988.0,295920.0,300852.0,305784.0,310716.0,315648.0,320580.0,325512.0,330444.0,335376.0,340308.0,345240.0,350172.0,355104.0,360036.0,364968.0,369900.0,374832.0,379764.0,384696.0,389628.0,394560.0,399492.0,404424.0,409356.0,414288.0,419220.0,424152.0,429084.0,434016.0,438948.0,443880.0,448812.0,453744.0,458676.0,463608.0,468540.0,473472.0,478404.0,483336.0,488268.0,493200.0],"times":[409083.0,777291.0,1416999.0,1553834.0,2544501.0,3035667.0,3592417.0,3731999.0,4636291.0,5390789.0,5859334.0,5992705.0,6191585.0,6750208.0,7384376.0,7687208.0,8119958.0,9357625.0,9383583.0,9946583.0,10176542.0,11230791.0,12248917.0,12305124.0,12153000.0,13275664.0,13872333.0,14151123.0,14262790.0,14687417.0,15287000.0,15973376.0,16208873.0,16797876.0,17315373.0,18209499.0,18765627.0,19410000.0,19746249.0,20504332.0,20929670.0,21756375.0,22277584.0,23121958.0,23337208.0,23896916.0,24526874.0,25601666.0,24977250.0,25613541.0,26213916.0,27227750.0,27130290.0,27813001.0,28361793.0,28819750.0,27511876.0,30039418.0,30799208.0,31307666.0,29323042.0,32153209.0,32713748.0,33260794.0,31683290.0,33795499.0,33616710.0,35196710.0,33056873.0,35849710.0,37662043.0,37807794.0,35822665.0,39069043.0,40368500.0,39989748.0,38916166.0,41159624.0,42609665.0,45106250.0,50427959.0,44153457.0,44852208.0,45393164.0,45365293.0,47542125.0,47867249.0,47920375.0,46459332.0,48780750.0,49901960.0,50804875.0,49050126.0,51826999.0,52443666.0,52408124.0,52552709.0,54370250.0,55896375.0,56536999.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/500/new/tukey.json ================================================ [81.48752966244167,91.3021881381957,117.47461074020643,127.28926921596045] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/500/report/index.html ================================================ Import as owned and destroy/FlexStr 0.9 (LocalStr)/500 - Criterion.rs

Import as owned and destroy/FlexStr 0.9 (LocalStr)/500

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 106.52 ns 107.85 ns 109.11 ns
0.7993478 0.8099020 0.8005513
Mean 102.81 ns 104.12 ns 105.37 ns
Std. Dev. 4.8148 ns 6.5288 ns 8.1045 ns
Median 103.70 ns 104.39 ns 105.29 ns
MAD 3.0737 ns 4.9896 ns 6.5664 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −2.9609% +0.3942% +3.0768% (p = 0.83 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (LocalStr)/report/index.html ================================================ Import as owned and destroy/FlexStr 0.9 (LocalStr) Summary - Criterion.rs

Import as owned and destroy/FlexStr 0.9 (LocalStr)

Violin Plot

Violin Plot

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

Line Chart

Line Chart

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

Import as owned and destroy/FlexStr 0.9 (LocalStr)/0

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.9 (LocalStr)/10

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.9 (LocalStr)/20

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.9 (LocalStr)/100

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.9 (LocalStr)/500

PDF of Slope Regression
================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/0/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.9 (SharedStr)","value_str":"0","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/0","directory_name":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/0","title":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/0"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/0/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.381477048739123,"upper_bound":2.4588380402978056},"point_estimate":2.4180463804432666,"standard_error":0.019837796468343334},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.3159871567200994,"upper_bound":2.479753870825443},"point_estimate":2.445089671712541,"standard_error":0.0445333160377881},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.10998504390771698,"upper_bound":0.2231740338633625},"point_estimate":0.18390114402830277,"standard_error":0.029763987951311747},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.4232086831233244,"upper_bound":2.469055068598798},"point_estimate":2.4480732139110315,"standard_error":0.01170460524816769},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.13841166901842136,"upper_bound":0.25677314806795054},"point_estimate":0.19905664499411255,"standard_error":0.030711646411715077}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/0/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[136771.0,273542.0,410313.0,547084.0,683855.0,820626.0,957397.0,1094168.0,1230939.0,1367710.0,1504481.0,1641252.0,1778023.0,1914794.0,2051565.0,2188336.0,2325107.0,2461878.0,2598649.0,2735420.0,2872191.0,3008962.0,3145733.0,3282504.0,3419275.0,3556046.0,3692817.0,3829588.0,3966359.0,4103130.0,4239901.0,4376672.0,4513443.0,4650214.0,4786985.0,4923756.0,5060527.0,5197298.0,5334069.0,5470840.0,5607611.0,5744382.0,5881153.0,6017924.0,6154695.0,6291466.0,6428237.0,6565008.0,6701779.0,6838550.0,6975321.0,7112092.0,7248863.0,7385634.0,7522405.0,7659176.0,7795947.0,7932718.0,8069489.0,8206260.0,8343031.0,8479802.0,8616573.0,8753344.0,8890115.0,9026886.0,9163657.0,9300428.0,9437199.0,9573970.0,9710741.0,9847512.0,9984283.0,10121054.0,10257825.0,10394596.0,10531367.0,10668138.0,10804909.0,10941680.0,11078451.0,11215222.0,11351993.0,11488764.0,11625535.0,11762306.0,11899077.0,12035848.0,12172619.0,12309390.0,12446161.0,12582932.0,12719703.0,12856474.0,12993245.0,13130016.0,13266787.0,13403558.0,13540329.0,13677100.0],"times":[310540.0,910085.0,888167.0,1211041.0,2305208.0,1908127.0,2422789.0,2969459.0,3607752.0,3149167.0,3596624.0,4236499.0,4642499.0,4452124.0,5088377.0,5300166.0,5416252.0,6147708.0,6204582.0,6439707.0,6942628.0,7330875.0,7896083.0,8332667.0,8412083.0,7833333.0,8232085.0,8443711.0,8824584.0,9106874.0,9413164.0,9767834.0,10250001.0,10639919.0,10890499.0,11270292.0,11569249.0,11936042.0,12231708.0,12508165.0,12619169.0,12888791.0,13243500.0,13597958.0,13953623.0,14337291.0,14593165.0,14856667.0,15130708.0,15338958.0,15618209.0,15813249.0,16028250.0,16344251.0,16474167.0,17020959.0,17379375.0,17678543.0,17990751.0,18268919.0,18375457.0,22393249.0,21958418.0,22320916.0,22903374.0,23021543.0,23817749.0,23664582.0,23834790.0,24392334.0,24469708.0,24806917.0,25691540.0,25489710.0,26149210.0,26431501.0,26657749.0,27331501.0,27634041.0,27843165.0,27746583.0,28345498.0,28154750.0,28487832.0,28919832.0,29219250.0,29547333.0,29850876.0,30034086.0,30441125.0,30853043.0,31177540.0,32023083.0,31679584.0,32249458.0,32559208.0,32934376.0,32665208.0,33229205.0,33551627.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/0/base/tukey.json ================================================ [1.4725428773504685,1.8658269175264468,2.9145843579957225,3.3078683981717005] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/0/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.017359813669932462,"upper_bound":0.03137943918133801},"point_estimate":0.007665465977398922,"standard_error":0.012336298698336965},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.037620518786308454,"upper_bound":0.0784070436323081},"point_estimate":0.03585815138538351,"standard_error":0.029392027589580084}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/0/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.9 (SharedStr)","value_str":"0","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/0","directory_name":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/0","title":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/0"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/0/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.381477048739123,"upper_bound":2.4588380402978056},"point_estimate":2.4180463804432666,"standard_error":0.019837796468343334},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.3159871567200994,"upper_bound":2.479753870825443},"point_estimate":2.445089671712541,"standard_error":0.0445333160377881},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.10998504390771698,"upper_bound":0.2231740338633625},"point_estimate":0.18390114402830277,"standard_error":0.029763987951311747},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.4232086831233244,"upper_bound":2.469055068598798},"point_estimate":2.4480732139110315,"standard_error":0.01170460524816769},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.13841166901842136,"upper_bound":0.25677314806795054},"point_estimate":0.19905664499411255,"standard_error":0.030711646411715077}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/0/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[136771.0,273542.0,410313.0,547084.0,683855.0,820626.0,957397.0,1094168.0,1230939.0,1367710.0,1504481.0,1641252.0,1778023.0,1914794.0,2051565.0,2188336.0,2325107.0,2461878.0,2598649.0,2735420.0,2872191.0,3008962.0,3145733.0,3282504.0,3419275.0,3556046.0,3692817.0,3829588.0,3966359.0,4103130.0,4239901.0,4376672.0,4513443.0,4650214.0,4786985.0,4923756.0,5060527.0,5197298.0,5334069.0,5470840.0,5607611.0,5744382.0,5881153.0,6017924.0,6154695.0,6291466.0,6428237.0,6565008.0,6701779.0,6838550.0,6975321.0,7112092.0,7248863.0,7385634.0,7522405.0,7659176.0,7795947.0,7932718.0,8069489.0,8206260.0,8343031.0,8479802.0,8616573.0,8753344.0,8890115.0,9026886.0,9163657.0,9300428.0,9437199.0,9573970.0,9710741.0,9847512.0,9984283.0,10121054.0,10257825.0,10394596.0,10531367.0,10668138.0,10804909.0,10941680.0,11078451.0,11215222.0,11351993.0,11488764.0,11625535.0,11762306.0,11899077.0,12035848.0,12172619.0,12309390.0,12446161.0,12582932.0,12719703.0,12856474.0,12993245.0,13130016.0,13266787.0,13403558.0,13540329.0,13677100.0],"times":[310540.0,910085.0,888167.0,1211041.0,2305208.0,1908127.0,2422789.0,2969459.0,3607752.0,3149167.0,3596624.0,4236499.0,4642499.0,4452124.0,5088377.0,5300166.0,5416252.0,6147708.0,6204582.0,6439707.0,6942628.0,7330875.0,7896083.0,8332667.0,8412083.0,7833333.0,8232085.0,8443711.0,8824584.0,9106874.0,9413164.0,9767834.0,10250001.0,10639919.0,10890499.0,11270292.0,11569249.0,11936042.0,12231708.0,12508165.0,12619169.0,12888791.0,13243500.0,13597958.0,13953623.0,14337291.0,14593165.0,14856667.0,15130708.0,15338958.0,15618209.0,15813249.0,16028250.0,16344251.0,16474167.0,17020959.0,17379375.0,17678543.0,17990751.0,18268919.0,18375457.0,22393249.0,21958418.0,22320916.0,22903374.0,23021543.0,23817749.0,23664582.0,23834790.0,24392334.0,24469708.0,24806917.0,25691540.0,25489710.0,26149210.0,26431501.0,26657749.0,27331501.0,27634041.0,27843165.0,27746583.0,28345498.0,28154750.0,28487832.0,28919832.0,29219250.0,29547333.0,29850876.0,30034086.0,30441125.0,30853043.0,31177540.0,32023083.0,31679584.0,32249458.0,32559208.0,32934376.0,32665208.0,33229205.0,33551627.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/0/new/tukey.json ================================================ [1.4725428773504685,1.8658269175264468,2.9145843579957225,3.3078683981717005] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/0/report/index.html ================================================ Import as owned and destroy/FlexStr 0.9 (SharedStr)/0 - Criterion.rs

Import as owned and destroy/FlexStr 0.9 (SharedStr)/0

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 2.4232 ns 2.4481 ns 2.4691 ns
0.7607002 0.7688076 0.7630170
Mean 2.3815 ns 2.4180 ns 2.4588 ns
Std. Dev. 138.41 ps 199.06 ps 256.77 ps
Median 2.3160 ns 2.4451 ns 2.4798 ns
MAD 109.99 ps 183.90 ps 223.17 ps

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −1.7360% +0.7665% +3.1379% (p = 0.53 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/10/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.9 (SharedStr)","value_str":"10","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/10","directory_name":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/10","title":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/10"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/10/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":31.728386872719593,"upper_bound":33.22351877339673},"point_estimate":32.45559380245438,"standard_error":0.381315942046424},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":30.395984944986857,"upper_bound":33.73660565344518},"point_estimate":31.70847269391804,"standard_error":0.8757872763664815},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.8643776637289107,"upper_bound":5.127736490649734},"point_estimate":4.649880659951262,"standard_error":0.6323908635583724},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":33.12725603986998,"upper_bound":34.4373100439948},"point_estimate":33.78212033355849,"standard_error":0.3339922057158904},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.1527830062827342,"upper_bound":4.654066284716856},"point_estimate":3.8254189421897555,"standard_error":0.4093956456155638}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/10/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[15909.0,31818.0,47727.0,63636.0,79545.0,95454.0,111363.0,127272.0,143181.0,159090.0,174999.0,190908.0,206817.0,222726.0,238635.0,254544.0,270453.0,286362.0,302271.0,318180.0,334089.0,349998.0,365907.0,381816.0,397725.0,413634.0,429543.0,445452.0,461361.0,477270.0,493179.0,509088.0,524997.0,540906.0,556815.0,572724.0,588633.0,604542.0,620451.0,636360.0,652269.0,668178.0,684087.0,699996.0,715905.0,731814.0,747723.0,763632.0,779541.0,795450.0,811359.0,827268.0,843177.0,859086.0,874995.0,890904.0,906813.0,922722.0,938631.0,954540.0,970449.0,986358.0,1002267.0,1018176.0,1034085.0,1049994.0,1065903.0,1081812.0,1097721.0,1113630.0,1129539.0,1145448.0,1161357.0,1177266.0,1193175.0,1209084.0,1224993.0,1240902.0,1256811.0,1272720.0,1288629.0,1304538.0,1320447.0,1336356.0,1352265.0,1368174.0,1384083.0,1399992.0,1415901.0,1431810.0,1447719.0,1463628.0,1479537.0,1495446.0,1511355.0,1527264.0,1543173.0,1559082.0,1574991.0,1590900.0],"times":[800167.0,903541.0,1358749.0,1834708.0,2246584.0,2744790.0,3221418.0,4173959.0,4368750.0,4638415.0,5063793.0,5880751.0,5892956.0,6359585.0,6820126.0,7283499.0,8197457.0,8103582.0,8877831.0,9040750.0,9484748.0,10121875.0,10785793.0,10788083.0,11300041.0,12026542.0,12373790.0,12798624.0,13215791.0,13699127.0,14141166.0,14546793.0,14884917.0,15453750.0,15902458.0,16743334.0,16919373.0,17145001.0,17696418.0,18354167.0,25663750.0,26325167.0,25987833.0,26117917.0,26347751.0,26032000.0,26744665.0,26750372.0,26260291.0,26933207.0,26901457.0,27138042.0,26811957.0,27248083.0,27736833.0,27618085.0,27614874.0,28037623.0,27854499.0,28421833.0,35764959.0,36565334.0,35850708.0,36765793.0,36784916.0,37286958.0,38301456.0,38494501.0,38911543.0,39452957.0,40246793.0,40323417.0,40707707.0,41445417.0,41600958.0,42341834.0,42863250.0,43000166.0,43524333.0,43837958.0,50030293.0,49892958.0,50527210.0,50443208.0,48147542.0,49134877.0,49267916.0,49277082.0,48538583.0,49899375.0,48841125.0,47564206.0,47950167.0,48471917.0,47724083.0,47354584.0,48434293.0,47389833.0,47433001.0,48820084.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/10/base/tukey.json ================================================ [9.003532808875896,18.91435926475694,45.34322981377305,55.254056269654086] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/10/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.08460968040274967,"upper_bound":0.00804856398815605},"point_estimate":-0.03765460940523058,"standard_error":0.023641772306301337},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.09964991159535863,"upper_bound":0.06290260379749668},"point_estimate":-0.03184512567825193,"standard_error":0.04240485282590046}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/10/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.9 (SharedStr)","value_str":"10","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/10","directory_name":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/10","title":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/10"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/10/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":31.728386872719593,"upper_bound":33.22351877339673},"point_estimate":32.45559380245438,"standard_error":0.381315942046424},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":30.395984944986857,"upper_bound":33.73660565344518},"point_estimate":31.70847269391804,"standard_error":0.8757872763664815},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.8643776637289107,"upper_bound":5.127736490649734},"point_estimate":4.649880659951262,"standard_error":0.6323908635583724},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":33.12725603986998,"upper_bound":34.4373100439948},"point_estimate":33.78212033355849,"standard_error":0.3339922057158904},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.1527830062827342,"upper_bound":4.654066284716856},"point_estimate":3.8254189421897555,"standard_error":0.4093956456155638}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/10/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[15909.0,31818.0,47727.0,63636.0,79545.0,95454.0,111363.0,127272.0,143181.0,159090.0,174999.0,190908.0,206817.0,222726.0,238635.0,254544.0,270453.0,286362.0,302271.0,318180.0,334089.0,349998.0,365907.0,381816.0,397725.0,413634.0,429543.0,445452.0,461361.0,477270.0,493179.0,509088.0,524997.0,540906.0,556815.0,572724.0,588633.0,604542.0,620451.0,636360.0,652269.0,668178.0,684087.0,699996.0,715905.0,731814.0,747723.0,763632.0,779541.0,795450.0,811359.0,827268.0,843177.0,859086.0,874995.0,890904.0,906813.0,922722.0,938631.0,954540.0,970449.0,986358.0,1002267.0,1018176.0,1034085.0,1049994.0,1065903.0,1081812.0,1097721.0,1113630.0,1129539.0,1145448.0,1161357.0,1177266.0,1193175.0,1209084.0,1224993.0,1240902.0,1256811.0,1272720.0,1288629.0,1304538.0,1320447.0,1336356.0,1352265.0,1368174.0,1384083.0,1399992.0,1415901.0,1431810.0,1447719.0,1463628.0,1479537.0,1495446.0,1511355.0,1527264.0,1543173.0,1559082.0,1574991.0,1590900.0],"times":[800167.0,903541.0,1358749.0,1834708.0,2246584.0,2744790.0,3221418.0,4173959.0,4368750.0,4638415.0,5063793.0,5880751.0,5892956.0,6359585.0,6820126.0,7283499.0,8197457.0,8103582.0,8877831.0,9040750.0,9484748.0,10121875.0,10785793.0,10788083.0,11300041.0,12026542.0,12373790.0,12798624.0,13215791.0,13699127.0,14141166.0,14546793.0,14884917.0,15453750.0,15902458.0,16743334.0,16919373.0,17145001.0,17696418.0,18354167.0,25663750.0,26325167.0,25987833.0,26117917.0,26347751.0,26032000.0,26744665.0,26750372.0,26260291.0,26933207.0,26901457.0,27138042.0,26811957.0,27248083.0,27736833.0,27618085.0,27614874.0,28037623.0,27854499.0,28421833.0,35764959.0,36565334.0,35850708.0,36765793.0,36784916.0,37286958.0,38301456.0,38494501.0,38911543.0,39452957.0,40246793.0,40323417.0,40707707.0,41445417.0,41600958.0,42341834.0,42863250.0,43000166.0,43524333.0,43837958.0,50030293.0,49892958.0,50527210.0,50443208.0,48147542.0,49134877.0,49267916.0,49277082.0,48538583.0,49899375.0,48841125.0,47564206.0,47950167.0,48471917.0,47724083.0,47354584.0,48434293.0,47389833.0,47433001.0,48820084.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/10/new/tukey.json ================================================ [9.003532808875896,18.91435926475694,45.34322981377305,55.254056269654086] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/10/report/index.html ================================================ Import as owned and destroy/FlexStr 0.9 (SharedStr)/10 - Criterion.rs

Import as owned and destroy/FlexStr 0.9 (SharedStr)/10

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 33.127 ns 33.782 ns 34.437 ns
0.4167658 0.4304004 0.4167527
Mean 31.728 ns 32.456 ns 33.224 ns
Std. Dev. 3.1528 ns 3.8254 ns 4.6541 ns
Median 30.396 ns 31.708 ns 33.737 ns
MAD 2.8644 ns 4.6499 ns 5.1277 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −8.4610% −3.7655% +0.8049% (p = 0.13 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/100/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.9 (SharedStr)","value_str":"100","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/100","directory_name":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/100","title":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/100"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/100/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":61.13533833158814,"upper_bound":62.92536050718777},"point_estimate":62.02865730456268,"standard_error":0.4560774374970495},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":60.78691807301433,"upper_bound":62.70426909785323},"point_estimate":61.49183077795145,"standard_error":0.4981562559251687},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.000267371190253,"upper_bound":5.881264594727211},"point_estimate":4.4232883240530185,"standard_error":0.7275081926128233},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":61.892018611082406,"upper_bound":63.66741732691464},"point_estimate":62.77063641733545,"standard_error":0.45312643803491226},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.872649852639923,"upper_bound":5.286249808074371},"point_estimate":4.580457831267838,"standard_error":0.36289456279833565}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/100/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[7854.0,15708.0,23562.0,31416.0,39270.0,47124.0,54978.0,62832.0,70686.0,78540.0,86394.0,94248.0,102102.0,109956.0,117810.0,125664.0,133518.0,141372.0,149226.0,157080.0,164934.0,172788.0,180642.0,188496.0,196350.0,204204.0,212058.0,219912.0,227766.0,235620.0,243474.0,251328.0,259182.0,267036.0,274890.0,282744.0,290598.0,298452.0,306306.0,314160.0,322014.0,329868.0,337722.0,345576.0,353430.0,361284.0,369138.0,376992.0,384846.0,392700.0,400554.0,408408.0,416262.0,424116.0,431970.0,439824.0,447678.0,455532.0,463386.0,471240.0,479094.0,486948.0,494802.0,502656.0,510510.0,518364.0,526218.0,534072.0,541926.0,549780.0,557634.0,565488.0,573342.0,581196.0,589050.0,596904.0,604758.0,612612.0,620466.0,628320.0,636174.0,644028.0,651882.0,659736.0,667590.0,675444.0,683298.0,691152.0,699006.0,706860.0,714714.0,722568.0,730422.0,738276.0,746130.0,753984.0,761838.0,769692.0,777546.0,785400.0],"times":[430667.0,1234085.0,1255208.0,1699500.0,2681875.0,2544290.0,3179582.0,3331458.0,4289918.0,4187249.0,5136876.0,6645668.0,6907082.0,6683124.0,7106209.0,7124874.0,7325959.0,8759041.0,9476749.0,10274583.0,10148748.0,10503250.0,11025584.0,12405334.0,12784958.0,12475042.0,13172583.0,12484375.0,12501959.0,14070585.0,14567625.0,14992084.0,16780042.0,17561123.0,17397708.0,18093543.0,18181333.0,18199375.0,18322665.0,17794041.0,18862419.0,19303793.0,20251999.0,23190664.0,23989835.0,24748999.0,24589749.0,24546916.0,24744293.0,24583332.0,24102542.0,22680749.0,24133333.0,26051209.0,26349292.0,30759333.0,30163750.0,30075625.0,30760041.0,30205836.0,29712086.0,28985791.0,28858792.0,28105290.0,29106209.0,30599667.0,30214040.0,37569960.0,36675876.0,36684293.0,36116916.0,35389666.0,34886914.0,33998209.0,33761959.0,33545291.0,36540000.0,36949335.0,43344542.0,42771625.0,42154501.0,41094126.0,41140540.0,41009002.0,42003750.0,41134502.0,40845751.0,42502709.0,42980623.0,42717833.0,49687583.0,48413502.0,49009125.0,48834209.0,47396749.0,47750623.0,47876085.0,47323626.0,47245957.0,48401834.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/100/base/tukey.json ================================================ [42.47312439091873,50.99093896949609,73.70511117903573,82.2229257576131] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/100/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.008277998967468062,"upper_bound":0.03315697302314179},"point_estimate":0.011335255207823858,"standard_error":0.010649154943376161},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.008951742491169368,"upper_bound":0.03686717928137823},"point_estimate":0.008034144612043326,"standard_error":0.01186151460845192}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/100/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.9 (SharedStr)","value_str":"100","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/100","directory_name":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/100","title":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/100"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/100/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":61.13533833158814,"upper_bound":62.92536050718777},"point_estimate":62.02865730456268,"standard_error":0.4560774374970495},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":60.78691807301433,"upper_bound":62.70426909785323},"point_estimate":61.49183077795145,"standard_error":0.4981562559251687},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.000267371190253,"upper_bound":5.881264594727211},"point_estimate":4.4232883240530185,"standard_error":0.7275081926128233},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":61.892018611082406,"upper_bound":63.66741732691464},"point_estimate":62.77063641733545,"standard_error":0.45312643803491226},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.872649852639923,"upper_bound":5.286249808074371},"point_estimate":4.580457831267838,"standard_error":0.36289456279833565}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/100/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[7854.0,15708.0,23562.0,31416.0,39270.0,47124.0,54978.0,62832.0,70686.0,78540.0,86394.0,94248.0,102102.0,109956.0,117810.0,125664.0,133518.0,141372.0,149226.0,157080.0,164934.0,172788.0,180642.0,188496.0,196350.0,204204.0,212058.0,219912.0,227766.0,235620.0,243474.0,251328.0,259182.0,267036.0,274890.0,282744.0,290598.0,298452.0,306306.0,314160.0,322014.0,329868.0,337722.0,345576.0,353430.0,361284.0,369138.0,376992.0,384846.0,392700.0,400554.0,408408.0,416262.0,424116.0,431970.0,439824.0,447678.0,455532.0,463386.0,471240.0,479094.0,486948.0,494802.0,502656.0,510510.0,518364.0,526218.0,534072.0,541926.0,549780.0,557634.0,565488.0,573342.0,581196.0,589050.0,596904.0,604758.0,612612.0,620466.0,628320.0,636174.0,644028.0,651882.0,659736.0,667590.0,675444.0,683298.0,691152.0,699006.0,706860.0,714714.0,722568.0,730422.0,738276.0,746130.0,753984.0,761838.0,769692.0,777546.0,785400.0],"times":[430667.0,1234085.0,1255208.0,1699500.0,2681875.0,2544290.0,3179582.0,3331458.0,4289918.0,4187249.0,5136876.0,6645668.0,6907082.0,6683124.0,7106209.0,7124874.0,7325959.0,8759041.0,9476749.0,10274583.0,10148748.0,10503250.0,11025584.0,12405334.0,12784958.0,12475042.0,13172583.0,12484375.0,12501959.0,14070585.0,14567625.0,14992084.0,16780042.0,17561123.0,17397708.0,18093543.0,18181333.0,18199375.0,18322665.0,17794041.0,18862419.0,19303793.0,20251999.0,23190664.0,23989835.0,24748999.0,24589749.0,24546916.0,24744293.0,24583332.0,24102542.0,22680749.0,24133333.0,26051209.0,26349292.0,30759333.0,30163750.0,30075625.0,30760041.0,30205836.0,29712086.0,28985791.0,28858792.0,28105290.0,29106209.0,30599667.0,30214040.0,37569960.0,36675876.0,36684293.0,36116916.0,35389666.0,34886914.0,33998209.0,33761959.0,33545291.0,36540000.0,36949335.0,43344542.0,42771625.0,42154501.0,41094126.0,41140540.0,41009002.0,42003750.0,41134502.0,40845751.0,42502709.0,42980623.0,42717833.0,49687583.0,48413502.0,49009125.0,48834209.0,47396749.0,47750623.0,47876085.0,47323626.0,47245957.0,48401834.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/100/new/tukey.json ================================================ [42.47312439091873,50.99093896949609,73.70511117903573,82.2229257576131] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/100/report/index.html ================================================ Import as owned and destroy/FlexStr 0.9 (SharedStr)/100 - Criterion.rs

Import as owned and destroy/FlexStr 0.9 (SharedStr)/100

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 61.892 ns 62.771 ns 63.667 ns
0.6559550 0.6686538 0.6554350
Mean 61.135 ns 62.029 ns 62.925 ns
Std. Dev. 3.8726 ns 4.5805 ns 5.2862 ns
Median 60.787 ns 61.492 ns 62.704 ns
MAD 3.0003 ns 4.4233 ns 5.8813 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.8278% +1.1335% +3.3157% (p = 0.30 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/20/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.9 (SharedStr)","value_str":"20","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/20","directory_name":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/20","title":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/20"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/20/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":35.62869891012077,"upper_bound":37.21640623430225},"point_estimate":36.400598078110924,"standard_error":0.403196383869325},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":35.61324437504436,"upper_bound":37.312710195255164},"point_estimate":36.74446670322017,"standard_error":0.4084221020726835},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.870076096231797,"upper_bound":4.744552542115047},"point_estimate":3.835619718625966,"standard_error":0.47137845915764887},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":36.997620662836574,"upper_bound":38.401368141580896},"point_estimate":37.710406190299686,"standard_error":0.3576412701390378},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.159123611767248,"upper_bound":5.1546505790613875},"point_estimate":4.049791201694487,"standard_error":0.5509136223084241}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/20/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[14089.0,28178.0,42267.0,56356.0,70445.0,84534.0,98623.0,112712.0,126801.0,140890.0,154979.0,169068.0,183157.0,197246.0,211335.0,225424.0,239513.0,253602.0,267691.0,281780.0,295869.0,309958.0,324047.0,338136.0,352225.0,366314.0,380403.0,394492.0,408581.0,422670.0,436759.0,450848.0,464937.0,479026.0,493115.0,507204.0,521293.0,535382.0,549471.0,563560.0,577649.0,591738.0,605827.0,619916.0,634005.0,648094.0,662183.0,676272.0,690361.0,704450.0,718539.0,732628.0,746717.0,760806.0,774895.0,788984.0,803073.0,817162.0,831251.0,845340.0,859429.0,873518.0,887607.0,901696.0,915785.0,929874.0,943963.0,958052.0,972141.0,986230.0,1000319.0,1014408.0,1028497.0,1042586.0,1056675.0,1070764.0,1084853.0,1098942.0,1113031.0,1127120.0,1141209.0,1155298.0,1169387.0,1183476.0,1197565.0,1211654.0,1225743.0,1239832.0,1253921.0,1268010.0,1282099.0,1296188.0,1310277.0,1324366.0,1338455.0,1352544.0,1366633.0,1380722.0,1394811.0,1408900.0],"times":[812625.0,847667.0,1271334.0,2149793.0,2373209.0,2822081.0,3442832.0,3450084.0,3874252.0,4677543.0,5198958.0,5182874.0,5605959.0,6044708.0,6516542.0,6891540.0,7322459.0,7916084.0,8096166.0,8635290.0,9279623.0,9946045.0,13588166.0,13241960.0,13377413.0,13759292.0,14475125.0,14148999.0,14084415.0,14242040.0,14270167.0,14433792.0,14636166.0,17870500.0,18849622.0,18977252.0,19863125.0,20269165.0,20341001.0,21022251.0,21301584.0,21772835.0,22289457.0,22704834.0,23100208.0,27268333.0,26585291.0,26765584.0,27075206.0,26100333.0,26368332.0,25956792.0,25808125.0,26268750.0,25854166.0,25017502.0,28115209.0,29257333.0,29603545.0,29745293.0,30342376.0,33102500.0,36510041.0,36575251.0,36638790.0,37427000.0,37402583.0,37558084.0,40477084.0,39045915.0,39011500.0,37682499.0,37995581.0,37611791.0,36704582.0,36559875.0,35816210.0,35441249.0,37771543.0,40932209.0,41748624.0,42959958.0,42881209.0,45260417.0,47085751.0,52377959.0,51771625.0,50356499.0,51550625.0,51568373.0,53077416.0,53148252.0,52093292.0,50964500.0,50112084.0,50747417.0,48539706.0,52879417.0,54360791.0,48042123.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/20/base/tukey.json ================================================ [17.67280238967404,25.662985280422806,46.970139655752845,54.960322546501615] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/20/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.023918908859197396,"upper_bound":0.03699453836132418},"point_estimate":0.005965685148533018,"standard_error":0.015588497304246381},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.03429660589422845,"upper_bound":0.032381629332976836},"point_estimate":-0.0033061466665268435,"standard_error":0.015773926803734063}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/20/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.9 (SharedStr)","value_str":"20","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/20","directory_name":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/20","title":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/20"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/20/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":35.62869891012077,"upper_bound":37.21640623430225},"point_estimate":36.400598078110924,"standard_error":0.403196383869325},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":35.61324437504436,"upper_bound":37.312710195255164},"point_estimate":36.74446670322017,"standard_error":0.4084221020726835},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.870076096231797,"upper_bound":4.744552542115047},"point_estimate":3.835619718625966,"standard_error":0.47137845915764887},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":36.997620662836574,"upper_bound":38.401368141580896},"point_estimate":37.710406190299686,"standard_error":0.3576412701390378},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.159123611767248,"upper_bound":5.1546505790613875},"point_estimate":4.049791201694487,"standard_error":0.5509136223084241}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/20/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[14089.0,28178.0,42267.0,56356.0,70445.0,84534.0,98623.0,112712.0,126801.0,140890.0,154979.0,169068.0,183157.0,197246.0,211335.0,225424.0,239513.0,253602.0,267691.0,281780.0,295869.0,309958.0,324047.0,338136.0,352225.0,366314.0,380403.0,394492.0,408581.0,422670.0,436759.0,450848.0,464937.0,479026.0,493115.0,507204.0,521293.0,535382.0,549471.0,563560.0,577649.0,591738.0,605827.0,619916.0,634005.0,648094.0,662183.0,676272.0,690361.0,704450.0,718539.0,732628.0,746717.0,760806.0,774895.0,788984.0,803073.0,817162.0,831251.0,845340.0,859429.0,873518.0,887607.0,901696.0,915785.0,929874.0,943963.0,958052.0,972141.0,986230.0,1000319.0,1014408.0,1028497.0,1042586.0,1056675.0,1070764.0,1084853.0,1098942.0,1113031.0,1127120.0,1141209.0,1155298.0,1169387.0,1183476.0,1197565.0,1211654.0,1225743.0,1239832.0,1253921.0,1268010.0,1282099.0,1296188.0,1310277.0,1324366.0,1338455.0,1352544.0,1366633.0,1380722.0,1394811.0,1408900.0],"times":[812625.0,847667.0,1271334.0,2149793.0,2373209.0,2822081.0,3442832.0,3450084.0,3874252.0,4677543.0,5198958.0,5182874.0,5605959.0,6044708.0,6516542.0,6891540.0,7322459.0,7916084.0,8096166.0,8635290.0,9279623.0,9946045.0,13588166.0,13241960.0,13377413.0,13759292.0,14475125.0,14148999.0,14084415.0,14242040.0,14270167.0,14433792.0,14636166.0,17870500.0,18849622.0,18977252.0,19863125.0,20269165.0,20341001.0,21022251.0,21301584.0,21772835.0,22289457.0,22704834.0,23100208.0,27268333.0,26585291.0,26765584.0,27075206.0,26100333.0,26368332.0,25956792.0,25808125.0,26268750.0,25854166.0,25017502.0,28115209.0,29257333.0,29603545.0,29745293.0,30342376.0,33102500.0,36510041.0,36575251.0,36638790.0,37427000.0,37402583.0,37558084.0,40477084.0,39045915.0,39011500.0,37682499.0,37995581.0,37611791.0,36704582.0,36559875.0,35816210.0,35441249.0,37771543.0,40932209.0,41748624.0,42959958.0,42881209.0,45260417.0,47085751.0,52377959.0,51771625.0,50356499.0,51550625.0,51568373.0,53077416.0,53148252.0,52093292.0,50964500.0,50112084.0,50747417.0,48539706.0,52879417.0,54360791.0,48042123.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/20/new/tukey.json ================================================ [17.67280238967404,25.662985280422806,46.970139655752845,54.960322546501615] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/20/report/index.html ================================================ Import as owned and destroy/FlexStr 0.9 (SharedStr)/20 - Criterion.rs

Import as owned and destroy/FlexStr 0.9 (SharedStr)/20

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 36.998 ns 37.710 ns 38.401 ns
0.4549490 0.4707389 0.4558710
Mean 35.629 ns 36.401 ns 37.216 ns
Std. Dev. 3.1591 ns 4.0498 ns 5.1547 ns
Median 35.613 ns 36.744 ns 37.313 ns
MAD 2.8701 ns 3.8356 ns 4.7446 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −2.3919% +0.5966% +3.6995% (p = 0.70 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/500/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.9 (SharedStr)","value_str":"500","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/500","directory_name":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/500","title":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/500"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/500/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":100.47294654617056,"upper_bound":102.87098957173014},"point_estimate":101.72742466346106,"standard_error":0.6125866755045651},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":102.26390683761925,"upper_bound":104.21194779672277},"point_estimate":103.54442733996387,"standard_error":0.49959485066060383},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.1236193230477793,"upper_bound":5.745567725872732},"point_estimate":4.156794041144598,"standard_error":0.6524847490769501},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":104.22950187610992,"upper_bound":105.5766065552291},"point_estimate":104.93481384874207,"standard_error":0.34330502520530853},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.579360607443471,"upper_bound":7.524743759824804},"point_estimate":6.148063611305268,"standard_error":0.7557623895542523}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/500/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[4516.0,9032.0,13548.0,18064.0,22580.0,27096.0,31612.0,36128.0,40644.0,45160.0,49676.0,54192.0,58708.0,63224.0,67740.0,72256.0,76772.0,81288.0,85804.0,90320.0,94836.0,99352.0,103868.0,108384.0,112900.0,117416.0,121932.0,126448.0,130964.0,135480.0,139996.0,144512.0,149028.0,153544.0,158060.0,162576.0,167092.0,171608.0,176124.0,180640.0,185156.0,189672.0,194188.0,198704.0,203220.0,207736.0,212252.0,216768.0,221284.0,225800.0,230316.0,234832.0,239348.0,243864.0,248380.0,252896.0,257412.0,261928.0,266444.0,270960.0,275476.0,279992.0,284508.0,289024.0,293540.0,298056.0,302572.0,307088.0,311604.0,316120.0,320636.0,325152.0,329668.0,334184.0,338700.0,343216.0,347732.0,352248.0,356764.0,361280.0,365796.0,370312.0,374828.0,379344.0,383860.0,388376.0,392892.0,397408.0,401924.0,406440.0,410956.0,415472.0,419988.0,424504.0,429020.0,433536.0,438052.0,442568.0,447084.0,451600.0],"times":[360917.0,709333.0,1072874.0,1616335.0,1884168.0,2676710.0,3388250.0,3760959.0,3709460.0,4226791.0,4770499.0,5292378.0,5470582.0,5885290.0,6664457.0,7057123.0,7583580.0,7627708.0,8691791.0,9467582.0,9523083.0,9680000.0,10018334.0,11228543.0,11611582.0,11894167.0,11958085.0,12483043.0,12980916.0,14861667.0,14513502.0,15075918.0,15622791.0,16151457.0,15943708.0,15938584.0,17155542.0,17762332.0,18776876.0,17174294.0,18923625.0,20092669.0,19089666.0,19513456.0,20481832.0,21518040.0,21398335.0,22502042.0,22083457.0,22051835.0,22666499.0,23846123.0,24221375.0,23991039.0,25852375.0,26742249.0,27108999.0,26272999.0,28311209.0,27928665.0,28171252.0,28751377.0,29567331.0,31138624.0,30678542.0,32554712.0,31523126.0,32057998.0,32732293.0,33107915.0,32286416.0,33510375.0,34485874.0,35180958.0,35331000.0,36830751.0,36805167.0,37613292.0,39301292.0,38907710.0,38854334.0,39522374.0,39941584.0,39689123.0,40622334.0,39970166.0,40574999.0,42975959.0,42907081.0,42803376.0,42632832.0,43820417.0,46273541.0,43780873.0,44679708.0,46890457.0,47441960.0,46561916.0,48459835.0,48373581.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/500/base/tukey.json ================================================ [79.00311375101097,88.88435658252293,115.2343374665548,125.11558029806676] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/500/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.002972069778628744,"upper_bound":0.031214744788593197},"point_estimate":0.014036022786678481,"standard_error":0.008715419334192785},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.005098357278062959,"upper_bound":0.03607922354248738},"point_estimate":0.021181488591605513,"standard_error":0.007405863249045624}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/500/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"FlexStr 0.9 (SharedStr)","value_str":"500","throughput":null,"full_id":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/500","directory_name":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/500","title":"Import as owned and destroy/FlexStr 0.9 (SharedStr)/500"} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/500/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":100.47294654617056,"upper_bound":102.87098957173014},"point_estimate":101.72742466346106,"standard_error":0.6125866755045651},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":102.26390683761925,"upper_bound":104.21194779672277},"point_estimate":103.54442733996387,"standard_error":0.49959485066060383},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.1236193230477793,"upper_bound":5.745567725872732},"point_estimate":4.156794041144598,"standard_error":0.6524847490769501},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":104.22950187610992,"upper_bound":105.5766065552291},"point_estimate":104.93481384874207,"standard_error":0.34330502520530853},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.579360607443471,"upper_bound":7.524743759824804},"point_estimate":6.148063611305268,"standard_error":0.7557623895542523}} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/500/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[4516.0,9032.0,13548.0,18064.0,22580.0,27096.0,31612.0,36128.0,40644.0,45160.0,49676.0,54192.0,58708.0,63224.0,67740.0,72256.0,76772.0,81288.0,85804.0,90320.0,94836.0,99352.0,103868.0,108384.0,112900.0,117416.0,121932.0,126448.0,130964.0,135480.0,139996.0,144512.0,149028.0,153544.0,158060.0,162576.0,167092.0,171608.0,176124.0,180640.0,185156.0,189672.0,194188.0,198704.0,203220.0,207736.0,212252.0,216768.0,221284.0,225800.0,230316.0,234832.0,239348.0,243864.0,248380.0,252896.0,257412.0,261928.0,266444.0,270960.0,275476.0,279992.0,284508.0,289024.0,293540.0,298056.0,302572.0,307088.0,311604.0,316120.0,320636.0,325152.0,329668.0,334184.0,338700.0,343216.0,347732.0,352248.0,356764.0,361280.0,365796.0,370312.0,374828.0,379344.0,383860.0,388376.0,392892.0,397408.0,401924.0,406440.0,410956.0,415472.0,419988.0,424504.0,429020.0,433536.0,438052.0,442568.0,447084.0,451600.0],"times":[360917.0,709333.0,1072874.0,1616335.0,1884168.0,2676710.0,3388250.0,3760959.0,3709460.0,4226791.0,4770499.0,5292378.0,5470582.0,5885290.0,6664457.0,7057123.0,7583580.0,7627708.0,8691791.0,9467582.0,9523083.0,9680000.0,10018334.0,11228543.0,11611582.0,11894167.0,11958085.0,12483043.0,12980916.0,14861667.0,14513502.0,15075918.0,15622791.0,16151457.0,15943708.0,15938584.0,17155542.0,17762332.0,18776876.0,17174294.0,18923625.0,20092669.0,19089666.0,19513456.0,20481832.0,21518040.0,21398335.0,22502042.0,22083457.0,22051835.0,22666499.0,23846123.0,24221375.0,23991039.0,25852375.0,26742249.0,27108999.0,26272999.0,28311209.0,27928665.0,28171252.0,28751377.0,29567331.0,31138624.0,30678542.0,32554712.0,31523126.0,32057998.0,32732293.0,33107915.0,32286416.0,33510375.0,34485874.0,35180958.0,35331000.0,36830751.0,36805167.0,37613292.0,39301292.0,38907710.0,38854334.0,39522374.0,39941584.0,39689123.0,40622334.0,39970166.0,40574999.0,42975959.0,42907081.0,42803376.0,42632832.0,43820417.0,46273541.0,43780873.0,44679708.0,46890457.0,47441960.0,46561916.0,48459835.0,48373581.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/500/new/tukey.json ================================================ [79.00311375101097,88.88435658252293,115.2343374665548,125.11558029806676] ================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/500/report/index.html ================================================ Import as owned and destroy/FlexStr 0.9 (SharedStr)/500 - Criterion.rs

Import as owned and destroy/FlexStr 0.9 (SharedStr)/500

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 104.23 ns 104.93 ns 105.58 ns
0.9053744 0.9100360 0.9061728
Mean 100.47 ns 101.73 ns 102.87 ns
Std. Dev. 4.5794 ns 6.1481 ns 7.5247 ns
Median 102.26 ns 103.54 ns 104.21 ns
MAD 3.1236 ns 4.1568 ns 5.7456 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.2972% +1.4036% +3.1215% (p = 0.11 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/FlexStr 0.9 (SharedStr)/report/index.html ================================================ Import as owned and destroy/FlexStr 0.9 (SharedStr) Summary - Criterion.rs

Import as owned and destroy/FlexStr 0.9 (SharedStr)

Violin Plot

Violin Plot

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

Line Chart

Line Chart

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

Import as owned and destroy/FlexStr 0.9 (SharedStr)/0

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.9 (SharedStr)/10

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.9 (SharedStr)/20

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.9 (SharedStr)/100

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.9 (SharedStr)/500

PDF of Slope Regression
================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/0/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"InlineFlexStr 0.1 (InlineStr)","value_str":"0","throughput":null,"full_id":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/0","directory_name":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/0","title":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/0"} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/0/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7.251258353021665,"upper_bound":7.439443851757329},"point_estimate":7.324448437324584,"standard_error":0.05086588143814554},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7.183683868765958,"upper_bound":7.265368025182118},"point_estimate":7.1918019916586085,"standard_error":0.0186782140930602},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.030423999124320412,"upper_bound":0.12871352300157987},"point_estimate":0.04890576209338276,"standard_error":0.02410815102788063},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7.186439074889523,"upper_bound":7.2581568588453855},"point_estimate":7.21305844529285,"standard_error":0.019467864025873218},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.12836959117501545,"upper_bound":0.8502573463856848},"point_estimate":0.513688867042218,"standard_error":0.2385485231094198}} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/0/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[84603.0,169206.0,253809.0,338412.0,423015.0,507618.0,592221.0,676824.0,761427.0,846030.0,930633.0,1015236.0,1099839.0,1184442.0,1269045.0,1353648.0,1438251.0,1522854.0,1607457.0,1692060.0,1776663.0,1861266.0,1945869.0,2030472.0,2115075.0,2199678.0,2284281.0,2368884.0,2453487.0,2538090.0,2622693.0,2707296.0,2791899.0,2876502.0,2961105.0,3045708.0,3130311.0,3214914.0,3299517.0,3384120.0,3468723.0,3553326.0,3637929.0,3722532.0,3807135.0,3891738.0,3976341.0,4060944.0,4145547.0,4230150.0,4314753.0,4399356.0,4483959.0,4568562.0,4653165.0,4737768.0,4822371.0,4906974.0,4991577.0,5076180.0,5160783.0,5245386.0,5329989.0,5414592.0,5499195.0,5583798.0,5668401.0,5753004.0,5837607.0,5922210.0,6006813.0,6091416.0,6176019.0,6260622.0,6345225.0,6429828.0,6514431.0,6599034.0,6683637.0,6768240.0,6852843.0,6937446.0,7022049.0,7106652.0,7191255.0,7275858.0,7360461.0,7445064.0,7529667.0,7614270.0,7698873.0,7783476.0,7868079.0,7952682.0,8037285.0,8121888.0,8206491.0,8291094.0,8375697.0,8460300.0],"times":[1024416.0,1209416.0,1811917.0,2550625.0,3125707.0,3975044.0,4734500.0,4941835.0,5590916.0,6490458.0,6815166.0,7407709.0,8275709.0,8673083.0,10318169.0,9865334.0,10558332.0,11356749.0,11834540.0,12252627.0,12995708.0,13889168.0,14498711.0,14789460.0,15497291.0,16246959.0,16987752.0,17334751.0,18041042.0,18397125.0,19241750.0,19960957.0,20299166.0,20929292.0,21721084.0,22329416.0,22858750.0,23718125.0,24181959.0,25194085.0,25470666.0,25488002.0,26044541.0,26682000.0,27259126.0,27894498.0,28519876.0,29166374.0,29738164.0,30372624.0,31024499.0,31587500.0,32193000.0,32843125.0,33461709.0,34036209.0,34708458.0,35265250.0,35866333.0,36546960.0,37103458.0,37727083.0,38288956.0,38883542.0,39479291.0,40084416.0,41408583.0,41474749.0,41865249.0,42498748.0,43100251.0,43716583.0,44379666.0,44973540.0,45510998.0,46162625.0,46720874.0,47260251.0,47908873.0,48819085.0,49333043.0,49661458.0,50254876.0,50887584.0,51562750.0,52159418.0,53476458.0,53337375.0,53952167.0,54815917.0,55183334.0,55612334.0,57271708.0,57174584.0,57462167.0,58146958.0,58759584.0,59287916.0,60059042.0,66343875.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/0/base/tukey.json ================================================ [6.701140697646534,6.936799253738615,7.565222069984165,7.800880626076246] ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/0/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.022205529437447625,"upper_bound":0.012012975924330876},"point_estimate":-0.005919413874838186,"standard_error":0.00856799066354067},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.018241786716137187,"upper_bound":0.005002314845885758},"point_estimate":-0.004836710325759386,"standard_error":0.004815816602310718}} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/0/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"InlineFlexStr 0.1 (InlineStr)","value_str":"0","throughput":null,"full_id":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/0","directory_name":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/0","title":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/0"} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/0/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7.251258353021665,"upper_bound":7.439443851757329},"point_estimate":7.324448437324584,"standard_error":0.05086588143814554},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7.183683868765958,"upper_bound":7.265368025182118},"point_estimate":7.1918019916586085,"standard_error":0.0186782140930602},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.030423999124320412,"upper_bound":0.12871352300157987},"point_estimate":0.04890576209338276,"standard_error":0.02410815102788063},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7.186439074889523,"upper_bound":7.2581568588453855},"point_estimate":7.21305844529285,"standard_error":0.019467864025873218},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.12836959117501545,"upper_bound":0.8502573463856848},"point_estimate":0.513688867042218,"standard_error":0.2385485231094198}} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/0/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[84603.0,169206.0,253809.0,338412.0,423015.0,507618.0,592221.0,676824.0,761427.0,846030.0,930633.0,1015236.0,1099839.0,1184442.0,1269045.0,1353648.0,1438251.0,1522854.0,1607457.0,1692060.0,1776663.0,1861266.0,1945869.0,2030472.0,2115075.0,2199678.0,2284281.0,2368884.0,2453487.0,2538090.0,2622693.0,2707296.0,2791899.0,2876502.0,2961105.0,3045708.0,3130311.0,3214914.0,3299517.0,3384120.0,3468723.0,3553326.0,3637929.0,3722532.0,3807135.0,3891738.0,3976341.0,4060944.0,4145547.0,4230150.0,4314753.0,4399356.0,4483959.0,4568562.0,4653165.0,4737768.0,4822371.0,4906974.0,4991577.0,5076180.0,5160783.0,5245386.0,5329989.0,5414592.0,5499195.0,5583798.0,5668401.0,5753004.0,5837607.0,5922210.0,6006813.0,6091416.0,6176019.0,6260622.0,6345225.0,6429828.0,6514431.0,6599034.0,6683637.0,6768240.0,6852843.0,6937446.0,7022049.0,7106652.0,7191255.0,7275858.0,7360461.0,7445064.0,7529667.0,7614270.0,7698873.0,7783476.0,7868079.0,7952682.0,8037285.0,8121888.0,8206491.0,8291094.0,8375697.0,8460300.0],"times":[1024416.0,1209416.0,1811917.0,2550625.0,3125707.0,3975044.0,4734500.0,4941835.0,5590916.0,6490458.0,6815166.0,7407709.0,8275709.0,8673083.0,10318169.0,9865334.0,10558332.0,11356749.0,11834540.0,12252627.0,12995708.0,13889168.0,14498711.0,14789460.0,15497291.0,16246959.0,16987752.0,17334751.0,18041042.0,18397125.0,19241750.0,19960957.0,20299166.0,20929292.0,21721084.0,22329416.0,22858750.0,23718125.0,24181959.0,25194085.0,25470666.0,25488002.0,26044541.0,26682000.0,27259126.0,27894498.0,28519876.0,29166374.0,29738164.0,30372624.0,31024499.0,31587500.0,32193000.0,32843125.0,33461709.0,34036209.0,34708458.0,35265250.0,35866333.0,36546960.0,37103458.0,37727083.0,38288956.0,38883542.0,39479291.0,40084416.0,41408583.0,41474749.0,41865249.0,42498748.0,43100251.0,43716583.0,44379666.0,44973540.0,45510998.0,46162625.0,46720874.0,47260251.0,47908873.0,48819085.0,49333043.0,49661458.0,50254876.0,50887584.0,51562750.0,52159418.0,53476458.0,53337375.0,53952167.0,54815917.0,55183334.0,55612334.0,57271708.0,57174584.0,57462167.0,58146958.0,58759584.0,59287916.0,60059042.0,66343875.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/0/new/tukey.json ================================================ [6.701140697646534,6.936799253738615,7.565222069984165,7.800880626076246] ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/0/report/index.html ================================================ Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/0 - Criterion.rs

Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/0

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 7.1864 ns 7.2131 ns 7.2582 ns
0.9693377 0.9706216 0.9669455
Mean 7.2513 ns 7.3244 ns 7.4394 ns
Std. Dev. 128.37 ps 513.69 ps 850.26 ps
Median 7.1837 ns 7.1918 ns 7.2654 ns
MAD 30.424 ps 48.906 ps 128.71 ps

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −2.2206% −0.5919% +1.2013% (p = 0.54 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/10/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"InlineFlexStr 0.1 (InlineStr)","value_str":"10","throughput":null,"full_id":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/10","directory_name":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/10","title":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/10"} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/10/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":34.79441554388005,"upper_bound":36.284235980817904},"point_estimate":35.510833522789554,"standard_error":0.3800123305529685},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":33.9394538190149,"upper_bound":37.03558298867861},"point_estimate":35.31847186440393,"standard_error":0.8635925501538483},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.0637375591217983,"upper_bound":4.955771530637717},"point_estimate":4.506313631126542,"standard_error":0.5125140333583857},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":36.10984777969444,"upper_bound":37.331199411473264},"point_estimate":36.72993922831236,"standard_error":0.3121450660747379},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.030002488629462,"upper_bound":4.833488594256678},"point_estimate":3.8242788875504226,"standard_error":0.5100776910289498}} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/10/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[15958.0,31916.0,47874.0,63832.0,79790.0,95748.0,111706.0,127664.0,143622.0,159580.0,175538.0,191496.0,207454.0,223412.0,239370.0,255328.0,271286.0,287244.0,303202.0,319160.0,335118.0,351076.0,367034.0,382992.0,398950.0,414908.0,430866.0,446824.0,462782.0,478740.0,494698.0,510656.0,526614.0,542572.0,558530.0,574488.0,590446.0,606404.0,622362.0,638320.0,654278.0,670236.0,686194.0,702152.0,718110.0,734068.0,750026.0,765984.0,781942.0,797900.0,813858.0,829816.0,845774.0,861732.0,877690.0,893648.0,909606.0,925564.0,941522.0,957480.0,973438.0,989396.0,1005354.0,1021312.0,1037270.0,1053228.0,1069186.0,1085144.0,1101102.0,1117060.0,1133018.0,1148976.0,1164934.0,1180892.0,1196850.0,1212808.0,1228766.0,1244724.0,1260682.0,1276640.0,1292598.0,1308556.0,1324514.0,1340472.0,1356430.0,1372388.0,1388346.0,1404304.0,1420262.0,1436220.0,1452178.0,1468136.0,1484094.0,1500052.0,1516010.0,1531968.0,1547926.0,1563884.0,1579842.0,1595800.0],"times":[888042.0,995457.0,1496541.0,2445456.0,2491169.0,3546083.0,3976956.0,4342124.0,4485084.0,5532251.0,5477291.0,6096373.0,7058832.0,7153748.0,7516915.0,8054625.0,8560039.0,9474916.0,9608542.0,9955544.0,10489916.0,10997417.0,11887708.0,11988290.0,12520251.0,13378000.0,13716043.0,14030165.0,14575125.0,15661501.0,15770083.0,16043459.0,16689625.0,17051001.0,17639541.0,18261375.0,18799416.0,19146252.0,19515124.0,20116499.0,27440209.0,28386250.0,27641250.0,27784165.0,27566376.0,28584375.0,28212625.0,28205086.0,29778874.0,28774207.0,29514542.0,29052291.0,29132958.0,29644960.0,28992873.0,29776335.0,29710416.0,29817834.0,32614373.0,36488416.0,37662917.0,38643373.0,38843165.0,39925667.0,40479416.0,39159706.0,40425459.0,42255000.0,42079456.0,41799918.0,42852418.0,43961623.0,44230665.0,44612335.0,45480834.0,46485084.0,46553124.0,47439290.0,46754501.0,47226126.0,53987959.0,54003582.0,53375166.0,53230582.0,52736333.0,53661750.0,53045834.0,53421668.0,53492167.0,53686000.0,52519667.0,53233208.0,53059833.0,52554251.0,52602249.0,53187001.0,52283999.0,52354625.0,51407250.0,58719750.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/10/base/tukey.json ================================================ [13.011168276840671,22.423108597881047,47.52161612065539,56.93355644169577] ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/10/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.022010844592474932,"upper_bound":0.03543656013742059},"point_estimate":0.006111652655413691,"standard_error":0.014598056657434551},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.05642716393641023,"upper_bound":0.08160308327385285},"point_estimate":0.010781426192513877,"standard_error":0.035524018040099616}} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/10/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"InlineFlexStr 0.1 (InlineStr)","value_str":"10","throughput":null,"full_id":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/10","directory_name":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/10","title":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/10"} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/10/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":34.79441554388005,"upper_bound":36.284235980817904},"point_estimate":35.510833522789554,"standard_error":0.3800123305529685},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":33.9394538190149,"upper_bound":37.03558298867861},"point_estimate":35.31847186440393,"standard_error":0.8635925501538483},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.0637375591217983,"upper_bound":4.955771530637717},"point_estimate":4.506313631126542,"standard_error":0.5125140333583857},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":36.10984777969444,"upper_bound":37.331199411473264},"point_estimate":36.72993922831236,"standard_error":0.3121450660747379},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.030002488629462,"upper_bound":4.833488594256678},"point_estimate":3.8242788875504226,"standard_error":0.5100776910289498}} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/10/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[15958.0,31916.0,47874.0,63832.0,79790.0,95748.0,111706.0,127664.0,143622.0,159580.0,175538.0,191496.0,207454.0,223412.0,239370.0,255328.0,271286.0,287244.0,303202.0,319160.0,335118.0,351076.0,367034.0,382992.0,398950.0,414908.0,430866.0,446824.0,462782.0,478740.0,494698.0,510656.0,526614.0,542572.0,558530.0,574488.0,590446.0,606404.0,622362.0,638320.0,654278.0,670236.0,686194.0,702152.0,718110.0,734068.0,750026.0,765984.0,781942.0,797900.0,813858.0,829816.0,845774.0,861732.0,877690.0,893648.0,909606.0,925564.0,941522.0,957480.0,973438.0,989396.0,1005354.0,1021312.0,1037270.0,1053228.0,1069186.0,1085144.0,1101102.0,1117060.0,1133018.0,1148976.0,1164934.0,1180892.0,1196850.0,1212808.0,1228766.0,1244724.0,1260682.0,1276640.0,1292598.0,1308556.0,1324514.0,1340472.0,1356430.0,1372388.0,1388346.0,1404304.0,1420262.0,1436220.0,1452178.0,1468136.0,1484094.0,1500052.0,1516010.0,1531968.0,1547926.0,1563884.0,1579842.0,1595800.0],"times":[888042.0,995457.0,1496541.0,2445456.0,2491169.0,3546083.0,3976956.0,4342124.0,4485084.0,5532251.0,5477291.0,6096373.0,7058832.0,7153748.0,7516915.0,8054625.0,8560039.0,9474916.0,9608542.0,9955544.0,10489916.0,10997417.0,11887708.0,11988290.0,12520251.0,13378000.0,13716043.0,14030165.0,14575125.0,15661501.0,15770083.0,16043459.0,16689625.0,17051001.0,17639541.0,18261375.0,18799416.0,19146252.0,19515124.0,20116499.0,27440209.0,28386250.0,27641250.0,27784165.0,27566376.0,28584375.0,28212625.0,28205086.0,29778874.0,28774207.0,29514542.0,29052291.0,29132958.0,29644960.0,28992873.0,29776335.0,29710416.0,29817834.0,32614373.0,36488416.0,37662917.0,38643373.0,38843165.0,39925667.0,40479416.0,39159706.0,40425459.0,42255000.0,42079456.0,41799918.0,42852418.0,43961623.0,44230665.0,44612335.0,45480834.0,46485084.0,46553124.0,47439290.0,46754501.0,47226126.0,53987959.0,54003582.0,53375166.0,53230582.0,52736333.0,53661750.0,53045834.0,53421668.0,53492167.0,53686000.0,52519667.0,53233208.0,53059833.0,52554251.0,52602249.0,53187001.0,52283999.0,52354625.0,51407250.0,58719750.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/10/new/tukey.json ================================================ [13.011168276840671,22.423108597881047,47.52161612065539,56.93355644169577] ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/10/report/index.html ================================================ Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/10 - Criterion.rs

Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/10

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 36.110 ns 36.730 ns 37.331 ns
0.5896054 0.6032005 0.5904013
Mean 34.794 ns 35.511 ns 36.284 ns
Std. Dev. 3.0300 ns 3.8243 ns 4.8335 ns
Median 33.939 ns 35.318 ns 37.036 ns
MAD 3.0637 ns 4.5063 ns 4.9558 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −2.2011% +0.6112% +3.5437% (p = 0.67 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/100/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"InlineFlexStr 0.1 (InlineStr)","value_str":"100","throughput":null,"full_id":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/100","directory_name":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/100","title":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/100"} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/100/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":36.52259361854252,"upper_bound":38.221711985463465},"point_estimate":37.38515006694002,"standard_error":0.43130946514270985},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":36.53382527217794,"upper_bound":38.87596906613797},"point_estimate":37.731033677647275,"standard_error":0.4985305818576538},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.011476893617172,"upper_bound":5.6781187491405},"point_estimate":4.607634585260368,"standard_error":0.7090224888926004},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":38.40603808539562,"upper_bound":39.86768625217825},"point_estimate":39.14735473580421,"standard_error":0.3722929567907313},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.678336476843178,"upper_bound":4.929478859334827},"point_estimate":4.337489414995687,"standard_error":0.31888916908912307}} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/100/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[11376.0,22752.0,34128.0,45504.0,56880.0,68256.0,79632.0,91008.0,102384.0,113760.0,125136.0,136512.0,147888.0,159264.0,170640.0,182016.0,193392.0,204768.0,216144.0,227520.0,238896.0,250272.0,261648.0,273024.0,284400.0,295776.0,307152.0,318528.0,329904.0,341280.0,352656.0,364032.0,375408.0,386784.0,398160.0,409536.0,420912.0,432288.0,443664.0,455040.0,466416.0,477792.0,489168.0,500544.0,511920.0,523296.0,534672.0,546048.0,557424.0,568800.0,580176.0,591552.0,602928.0,614304.0,625680.0,637056.0,648432.0,659808.0,671184.0,682560.0,693936.0,705312.0,716688.0,728064.0,739440.0,750816.0,762192.0,773568.0,784944.0,796320.0,807696.0,819072.0,830448.0,841824.0,853200.0,864576.0,875952.0,887328.0,898704.0,910080.0,921456.0,932832.0,944208.0,955584.0,966960.0,978336.0,989712.0,1001088.0,1012464.0,1023840.0,1035216.0,1046592.0,1057968.0,1069344.0,1080720.0,1092096.0,1103472.0,1114848.0,1126224.0,1137600.0],"times":[295833.0,971541.0,858500.0,1146498.0,1847209.0,2052582.0,2303168.0,3275543.0,4250458.0,3965042.0,3979916.0,5232916.0,6115580.0,5954458.0,6142333.0,6302376.0,7653457.0,7425376.0,7163791.0,6758168.0,8487583.0,9151999.0,10436334.0,10315627.0,11116209.0,11202249.0,9851377.0,9542500.0,11190206.0,11513958.0,15136251.0,15127584.0,14862251.0,13956043.0,13734377.0,12755875.0,13849083.0,14248084.0,18416500.0,18584293.0,18942082.0,17744958.0,16616625.0,15435001.0,17118500.0,17225251.0,23166918.0,22509833.0,22322166.0,20978958.0,19306999.0,18597915.0,20950541.0,22442875.0,27813251.0,26798001.0,25290125.0,24529710.0,24502917.0,23163581.0,25616667.0,25529792.0,30989960.0,30733750.0,30616335.0,28220043.0,28718792.0,27679374.0,28656836.0,30661498.0,35252458.0,34712626.0,34500290.0,34130625.0,33644125.0,31301543.0,31725999.0,31900083.0,41010748.0,37798542.0,38720875.0,36862708.0,36707001.0,34902751.0,36608000.0,37093540.0,43271293.0,42754167.0,42013709.0,39129748.0,40529832.0,39102627.0,41624541.0,40404042.0,47956751.0,45668916.0,46851916.0,44137709.0,44871416.0,42993168.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/100/base/tukey.json ================================================ [16.05973605575626,25.38854176255292,50.26535698067734,59.594162687474] ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/100/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.030878759199775216,"upper_bound":0.03233947227798043},"point_estimate":0.0004609658653553783,"standard_error":0.016063286933022152},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.03506905477378919,"upper_bound":0.040951737538649},"point_estimate":0.0033402171590826146,"standard_error":0.018964032067161067}} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/100/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"InlineFlexStr 0.1 (InlineStr)","value_str":"100","throughput":null,"full_id":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/100","directory_name":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/100","title":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/100"} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/100/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":36.52259361854252,"upper_bound":38.221711985463465},"point_estimate":37.38515006694002,"standard_error":0.43130946514270985},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":36.53382527217794,"upper_bound":38.87596906613797},"point_estimate":37.731033677647275,"standard_error":0.4985305818576538},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.011476893617172,"upper_bound":5.6781187491405},"point_estimate":4.607634585260368,"standard_error":0.7090224888926004},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":38.40603808539562,"upper_bound":39.86768625217825},"point_estimate":39.14735473580421,"standard_error":0.3722929567907313},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.678336476843178,"upper_bound":4.929478859334827},"point_estimate":4.337489414995687,"standard_error":0.31888916908912307}} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/100/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[11376.0,22752.0,34128.0,45504.0,56880.0,68256.0,79632.0,91008.0,102384.0,113760.0,125136.0,136512.0,147888.0,159264.0,170640.0,182016.0,193392.0,204768.0,216144.0,227520.0,238896.0,250272.0,261648.0,273024.0,284400.0,295776.0,307152.0,318528.0,329904.0,341280.0,352656.0,364032.0,375408.0,386784.0,398160.0,409536.0,420912.0,432288.0,443664.0,455040.0,466416.0,477792.0,489168.0,500544.0,511920.0,523296.0,534672.0,546048.0,557424.0,568800.0,580176.0,591552.0,602928.0,614304.0,625680.0,637056.0,648432.0,659808.0,671184.0,682560.0,693936.0,705312.0,716688.0,728064.0,739440.0,750816.0,762192.0,773568.0,784944.0,796320.0,807696.0,819072.0,830448.0,841824.0,853200.0,864576.0,875952.0,887328.0,898704.0,910080.0,921456.0,932832.0,944208.0,955584.0,966960.0,978336.0,989712.0,1001088.0,1012464.0,1023840.0,1035216.0,1046592.0,1057968.0,1069344.0,1080720.0,1092096.0,1103472.0,1114848.0,1126224.0,1137600.0],"times":[295833.0,971541.0,858500.0,1146498.0,1847209.0,2052582.0,2303168.0,3275543.0,4250458.0,3965042.0,3979916.0,5232916.0,6115580.0,5954458.0,6142333.0,6302376.0,7653457.0,7425376.0,7163791.0,6758168.0,8487583.0,9151999.0,10436334.0,10315627.0,11116209.0,11202249.0,9851377.0,9542500.0,11190206.0,11513958.0,15136251.0,15127584.0,14862251.0,13956043.0,13734377.0,12755875.0,13849083.0,14248084.0,18416500.0,18584293.0,18942082.0,17744958.0,16616625.0,15435001.0,17118500.0,17225251.0,23166918.0,22509833.0,22322166.0,20978958.0,19306999.0,18597915.0,20950541.0,22442875.0,27813251.0,26798001.0,25290125.0,24529710.0,24502917.0,23163581.0,25616667.0,25529792.0,30989960.0,30733750.0,30616335.0,28220043.0,28718792.0,27679374.0,28656836.0,30661498.0,35252458.0,34712626.0,34500290.0,34130625.0,33644125.0,31301543.0,31725999.0,31900083.0,41010748.0,37798542.0,38720875.0,36862708.0,36707001.0,34902751.0,36608000.0,37093540.0,43271293.0,42754167.0,42013709.0,39129748.0,40529832.0,39102627.0,41624541.0,40404042.0,47956751.0,45668916.0,46851916.0,44137709.0,44871416.0,42993168.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/100/new/tukey.json ================================================ [16.05973605575626,25.38854176255292,50.26535698067734,59.594162687474] ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/100/report/index.html ================================================ Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/100 - Criterion.rs

Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/100

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 38.406 ns 39.147 ns 39.868 ns
0.4861221 0.4996165 0.4868560
Mean 36.523 ns 37.385 ns 38.222 ns
Std. Dev. 3.6783 ns 4.3375 ns 4.9295 ns
Median 36.534 ns 37.731 ns 38.876 ns
MAD 3.0115 ns 4.6076 ns 5.6781 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −3.0879% +0.0461% +3.2339% (p = 0.98 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/20/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"InlineFlexStr 0.1 (InlineStr)","value_str":"20","throughput":null,"full_id":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/20","directory_name":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/20","title":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/20"} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/20/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":36.74496588883076,"upper_bound":38.32890294486678},"point_estimate":37.5179306082909,"standard_error":0.4024504290269697},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":37.17072584376545,"upper_bound":38.41391847618801},"point_estimate":37.95593456713475,"standard_error":0.3365565940548534},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.705776461927957,"upper_bound":5.098215306798602},"point_estimate":4.047355293199363,"standard_error":0.5729998661071557},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":37.9767311142299,"upper_bound":39.40980451419369},"point_estimate":38.69877850351364,"standard_error":0.36583697056573594},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.2091197171014025,"upper_bound":5.09753415324587},"point_estimate":4.0537910556318755,"standard_error":0.5151943900791771}} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/20/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[14151.0,28302.0,42453.0,56604.0,70755.0,84906.0,99057.0,113208.0,127359.0,141510.0,155661.0,169812.0,183963.0,198114.0,212265.0,226416.0,240567.0,254718.0,268869.0,283020.0,297171.0,311322.0,325473.0,339624.0,353775.0,367926.0,382077.0,396228.0,410379.0,424530.0,438681.0,452832.0,466983.0,481134.0,495285.0,509436.0,523587.0,537738.0,551889.0,566040.0,580191.0,594342.0,608493.0,622644.0,636795.0,650946.0,665097.0,679248.0,693399.0,707550.0,721701.0,735852.0,750003.0,764154.0,778305.0,792456.0,806607.0,820758.0,834909.0,849060.0,863211.0,877362.0,891513.0,905664.0,919815.0,933966.0,948117.0,962268.0,976419.0,990570.0,1004721.0,1018872.0,1033023.0,1047174.0,1061325.0,1075476.0,1089627.0,1103778.0,1117929.0,1132080.0,1146231.0,1160382.0,1174533.0,1188684.0,1202835.0,1216986.0,1231137.0,1245288.0,1259439.0,1273590.0,1287741.0,1301892.0,1316043.0,1330194.0,1344345.0,1358496.0,1372647.0,1386798.0,1400949.0,1415100.0],"times":[821624.0,886375.0,1330000.0,2171794.0,2296875.0,2730750.0,3148624.0,4739914.0,4543666.0,4506208.0,4931249.0,5341959.0,5858669.0,6309333.0,6698375.0,7264585.0,7740833.0,8668459.0,8513833.0,8918960.0,9432666.0,10257540.0,13982709.0,13370501.0,13958664.0,14178707.0,14543334.0,14495166.0,14592374.0,14740417.0,14811708.0,15193168.0,15400252.0,19182084.0,19118708.0,19164750.0,20037915.0,20623958.0,20551625.0,21661209.0,21599249.0,22547625.0,23157999.0,23611710.0,23745917.0,27923917.0,27895833.0,27517583.0,28249792.0,27074374.0,26446458.0,27190958.0,26107582.0,25966708.0,26414416.0,27846252.0,31571461.0,31061668.0,32000291.0,32452414.0,34243417.0,33756209.0,37379749.0,38107834.0,37434751.0,38151833.0,39481416.0,40389001.0,42047917.0,40483500.0,40806585.0,39944626.0,40760125.0,40959043.0,38417793.0,37872499.0,37560249.0,37422625.0,41478250.0,42572667.0,44141834.0,45268793.0,43854375.0,44942376.0,46582793.0,53211210.0,52396460.0,53319084.0,52075458.0,53433791.0,55210875.0,52827126.0,53386126.0,53154168.0,51911416.0,51588542.0,50309457.0,50055917.0,49365832.0,48580874.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/20/base/tukey.json ================================================ [18.068690747858582,26.252166240611192,48.07476755461815,56.25824304737076] ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/20/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.026105252079156833,"upper_bound":0.029707167923714285},"point_estimate":0.0006410881561400572,"standard_error":0.014252227764877992},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.025381894707738217,"upper_bound":0.03193292530773273},"point_estimate":-0.002867014713570093,"standard_error":0.014021848037524254}} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/20/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"InlineFlexStr 0.1 (InlineStr)","value_str":"20","throughput":null,"full_id":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/20","directory_name":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/20","title":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/20"} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/20/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":36.74496588883076,"upper_bound":38.32890294486678},"point_estimate":37.5179306082909,"standard_error":0.4024504290269697},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":37.17072584376545,"upper_bound":38.41391847618801},"point_estimate":37.95593456713475,"standard_error":0.3365565940548534},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.705776461927957,"upper_bound":5.098215306798602},"point_estimate":4.047355293199363,"standard_error":0.5729998661071557},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":37.9767311142299,"upper_bound":39.40980451419369},"point_estimate":38.69877850351364,"standard_error":0.36583697056573594},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.2091197171014025,"upper_bound":5.09753415324587},"point_estimate":4.0537910556318755,"standard_error":0.5151943900791771}} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/20/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[14151.0,28302.0,42453.0,56604.0,70755.0,84906.0,99057.0,113208.0,127359.0,141510.0,155661.0,169812.0,183963.0,198114.0,212265.0,226416.0,240567.0,254718.0,268869.0,283020.0,297171.0,311322.0,325473.0,339624.0,353775.0,367926.0,382077.0,396228.0,410379.0,424530.0,438681.0,452832.0,466983.0,481134.0,495285.0,509436.0,523587.0,537738.0,551889.0,566040.0,580191.0,594342.0,608493.0,622644.0,636795.0,650946.0,665097.0,679248.0,693399.0,707550.0,721701.0,735852.0,750003.0,764154.0,778305.0,792456.0,806607.0,820758.0,834909.0,849060.0,863211.0,877362.0,891513.0,905664.0,919815.0,933966.0,948117.0,962268.0,976419.0,990570.0,1004721.0,1018872.0,1033023.0,1047174.0,1061325.0,1075476.0,1089627.0,1103778.0,1117929.0,1132080.0,1146231.0,1160382.0,1174533.0,1188684.0,1202835.0,1216986.0,1231137.0,1245288.0,1259439.0,1273590.0,1287741.0,1301892.0,1316043.0,1330194.0,1344345.0,1358496.0,1372647.0,1386798.0,1400949.0,1415100.0],"times":[821624.0,886375.0,1330000.0,2171794.0,2296875.0,2730750.0,3148624.0,4739914.0,4543666.0,4506208.0,4931249.0,5341959.0,5858669.0,6309333.0,6698375.0,7264585.0,7740833.0,8668459.0,8513833.0,8918960.0,9432666.0,10257540.0,13982709.0,13370501.0,13958664.0,14178707.0,14543334.0,14495166.0,14592374.0,14740417.0,14811708.0,15193168.0,15400252.0,19182084.0,19118708.0,19164750.0,20037915.0,20623958.0,20551625.0,21661209.0,21599249.0,22547625.0,23157999.0,23611710.0,23745917.0,27923917.0,27895833.0,27517583.0,28249792.0,27074374.0,26446458.0,27190958.0,26107582.0,25966708.0,26414416.0,27846252.0,31571461.0,31061668.0,32000291.0,32452414.0,34243417.0,33756209.0,37379749.0,38107834.0,37434751.0,38151833.0,39481416.0,40389001.0,42047917.0,40483500.0,40806585.0,39944626.0,40760125.0,40959043.0,38417793.0,37872499.0,37560249.0,37422625.0,41478250.0,42572667.0,44141834.0,45268793.0,43854375.0,44942376.0,46582793.0,53211210.0,52396460.0,53319084.0,52075458.0,53433791.0,55210875.0,52827126.0,53386126.0,53154168.0,51911416.0,51588542.0,50309457.0,50055917.0,49365832.0,48580874.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/20/new/tukey.json ================================================ [18.068690747858582,26.252166240611192,48.07476755461815,56.25824304737076] ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/20/report/index.html ================================================ Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/20 - Criterion.rs

Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/20

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 37.977 ns 38.699 ns 39.410 ns
0.4482295 0.4646594 0.4487101
Mean 36.745 ns 37.518 ns 38.329 ns
Std. Dev. 3.2091 ns 4.0538 ns 5.0975 ns
Median 37.171 ns 37.956 ns 38.414 ns
MAD 2.7058 ns 4.0474 ns 5.0982 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −2.6105% +0.0641% +2.9707% (p = 0.96 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/500/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"InlineFlexStr 0.1 (InlineStr)","value_str":"500","throughput":null,"full_id":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/500","directory_name":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/500","title":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/500"} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/500/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":46.54620997579402,"upper_bound":49.325518515466044},"point_estimate":47.929151951649686,"standard_error":0.7096666832202052},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":45.717959478336404,"upper_bound":49.53980277524903},"point_estimate":47.68882191362735,"standard_error":1.0949315696939912},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":5.727338885628799,"upper_bound":8.997021340010305},"point_estimate":7.579829130653172,"standard_error":0.8162541407820334},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":51.40857082910687,"upper_bound":54.52624648924225},"point_estimate":53.054500919411,"standard_error":0.796920162059359},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":6.178520515688743,"upper_bound":8.0180362701597},"point_estimate":7.146676038255786,"standard_error":0.4708522796093928}} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/500/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[6553.0,13106.0,19659.0,26212.0,32765.0,39318.0,45871.0,52424.0,58977.0,65530.0,72083.0,78636.0,85189.0,91742.0,98295.0,104848.0,111401.0,117954.0,124507.0,131060.0,137613.0,144166.0,150719.0,157272.0,163825.0,170378.0,176931.0,183484.0,190037.0,196590.0,203143.0,209696.0,216249.0,222802.0,229355.0,235908.0,242461.0,249014.0,255567.0,262120.0,268673.0,275226.0,281779.0,288332.0,294885.0,301438.0,307991.0,314544.0,321097.0,327650.0,334203.0,340756.0,347309.0,353862.0,360415.0,366968.0,373521.0,380074.0,386627.0,393180.0,399733.0,406286.0,412839.0,419392.0,425945.0,432498.0,439051.0,445604.0,452157.0,458710.0,465263.0,471816.0,478369.0,484922.0,491475.0,498028.0,504581.0,511134.0,517687.0,524240.0,530793.0,537346.0,543899.0,550452.0,557005.0,563558.0,570111.0,576664.0,583217.0,589770.0,596323.0,602876.0,609429.0,615982.0,622535.0,629088.0,635641.0,642194.0,648747.0,655300.0],"times":[201666.0,390375.0,817125.0,962124.0,1370746.0,1871208.0,1838750.0,2396961.0,2599666.0,2791375.0,2923167.0,3890542.0,3439711.0,3292667.0,4785751.0,4299000.0,3750375.0,5917706.0,5150582.0,5530209.0,7132210.0,5757958.0,6244544.0,8307414.0,7185460.0,6263500.0,8784751.0,8101708.0,7002292.0,10407416.0,9135168.0,7696460.0,11385334.0,10161459.0,9037293.0,12014541.0,11115043.0,10187415.0,12804916.0,12525668.0,11327167.0,11012832.0,13584125.0,12145791.0,12380833.0,15753125.0,13599291.0,13708917.0,14517670.0,14784211.0,14286499.0,15578669.0,15851957.0,15328459.0,17069705.0,17090792.0,16909209.0,18828791.0,17062251.0,18362958.0,19577750.0,17765626.0,19403458.0,21068417.0,20808874.0,21141793.0,22563042.0,21812168.0,20766124.0,24867168.0,23321918.0,22174083.0,27341623.0,25222459.0,24015041.0,28614583.0,27001501.0,25850292.0,28684916.0,28433623.0,27240543.0,28286540.0,30845875.0,30224208.0,29607251.0,31034583.0,31018334.0,30548165.0,32672501.0,34095333.0,34411709.0,36172001.0,34893916.0,34706000.0,40004167.0,39763583.0,38375083.0,39296458.0,39838041.0,39680958.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/500/base/tukey.json ================================================ [12.286636901823137,27.498419055933066,68.06317146689288,83.27495362100281] ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/500/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.03270806869155489,"upper_bound":0.05680563335197464},"point_estimate":0.01153418259201544,"standard_error":0.022767374879005518},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.04772450746031143,"upper_bound":0.04815982983526079},"point_estimate":-0.0003218383367994404,"standard_error":0.025775905210734494}} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/500/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"InlineFlexStr 0.1 (InlineStr)","value_str":"500","throughput":null,"full_id":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/500","directory_name":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/500","title":"Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/500"} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/500/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":46.54620997579402,"upper_bound":49.325518515466044},"point_estimate":47.929151951649686,"standard_error":0.7096666832202052},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":45.717959478336404,"upper_bound":49.53980277524903},"point_estimate":47.68882191362735,"standard_error":1.0949315696939912},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":5.727338885628799,"upper_bound":8.997021340010305},"point_estimate":7.579829130653172,"standard_error":0.8162541407820334},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":51.40857082910687,"upper_bound":54.52624648924225},"point_estimate":53.054500919411,"standard_error":0.796920162059359},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":6.178520515688743,"upper_bound":8.0180362701597},"point_estimate":7.146676038255786,"standard_error":0.4708522796093928}} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/500/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[6553.0,13106.0,19659.0,26212.0,32765.0,39318.0,45871.0,52424.0,58977.0,65530.0,72083.0,78636.0,85189.0,91742.0,98295.0,104848.0,111401.0,117954.0,124507.0,131060.0,137613.0,144166.0,150719.0,157272.0,163825.0,170378.0,176931.0,183484.0,190037.0,196590.0,203143.0,209696.0,216249.0,222802.0,229355.0,235908.0,242461.0,249014.0,255567.0,262120.0,268673.0,275226.0,281779.0,288332.0,294885.0,301438.0,307991.0,314544.0,321097.0,327650.0,334203.0,340756.0,347309.0,353862.0,360415.0,366968.0,373521.0,380074.0,386627.0,393180.0,399733.0,406286.0,412839.0,419392.0,425945.0,432498.0,439051.0,445604.0,452157.0,458710.0,465263.0,471816.0,478369.0,484922.0,491475.0,498028.0,504581.0,511134.0,517687.0,524240.0,530793.0,537346.0,543899.0,550452.0,557005.0,563558.0,570111.0,576664.0,583217.0,589770.0,596323.0,602876.0,609429.0,615982.0,622535.0,629088.0,635641.0,642194.0,648747.0,655300.0],"times":[201666.0,390375.0,817125.0,962124.0,1370746.0,1871208.0,1838750.0,2396961.0,2599666.0,2791375.0,2923167.0,3890542.0,3439711.0,3292667.0,4785751.0,4299000.0,3750375.0,5917706.0,5150582.0,5530209.0,7132210.0,5757958.0,6244544.0,8307414.0,7185460.0,6263500.0,8784751.0,8101708.0,7002292.0,10407416.0,9135168.0,7696460.0,11385334.0,10161459.0,9037293.0,12014541.0,11115043.0,10187415.0,12804916.0,12525668.0,11327167.0,11012832.0,13584125.0,12145791.0,12380833.0,15753125.0,13599291.0,13708917.0,14517670.0,14784211.0,14286499.0,15578669.0,15851957.0,15328459.0,17069705.0,17090792.0,16909209.0,18828791.0,17062251.0,18362958.0,19577750.0,17765626.0,19403458.0,21068417.0,20808874.0,21141793.0,22563042.0,21812168.0,20766124.0,24867168.0,23321918.0,22174083.0,27341623.0,25222459.0,24015041.0,28614583.0,27001501.0,25850292.0,28684916.0,28433623.0,27240543.0,28286540.0,30845875.0,30224208.0,29607251.0,31034583.0,31018334.0,30548165.0,32672501.0,34095333.0,34411709.0,36172001.0,34893916.0,34706000.0,40004167.0,39763583.0,38375083.0,39296458.0,39838041.0,39680958.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/500/new/tukey.json ================================================ [12.286636901823137,27.498419055933066,68.06317146689288,83.27495362100281] ================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/500/report/index.html ================================================ Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/500 - Criterion.rs

Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/500

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 51.409 ns 53.055 ns 54.526 ns
0.4656375 0.4827120 0.4689627
Mean 46.546 ns 47.929 ns 49.326 ns
Std. Dev. 6.1785 ns 7.1467 ns 8.0180 ns
Median 45.718 ns 47.689 ns 49.540 ns
MAD 5.7273 ns 7.5798 ns 8.9970 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −3.2708% +1.1534% +5.6806% (p = 0.62 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/report/index.html ================================================ Import as owned and destroy/InlineFlexStr 0.1 (InlineStr) Summary - Criterion.rs

Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)

Violin Plot

Violin Plot

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

Line Chart

Line Chart

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

Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/0

PDF of Slope Regression

Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/10

PDF of Slope Regression

Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/20

PDF of Slope Regression

Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/100

PDF of Slope Regression

Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/500

PDF of Slope Regression
================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/0/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Rc","value_str":"0","throughput":null,"full_id":"Import as owned and destroy/Rc/0","directory_name":"Import as owned and destroy/Rc_str_/0","title":"Import as owned and destroy/Rc/0"} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/0/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":24.54286338615167,"upper_bound":24.65101970526463},"point_estimate":24.593094153432812,"standard_error":0.027506531172970375},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":24.483012291931104,"upper_bound":24.587153835668943},"point_estimate":24.512038722358213,"standard_error":0.025945482097245655},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.13812310177621126,"upper_bound":0.23476344785334471},"point_estimate":0.18344596093347354,"standard_error":0.023145571320929422},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":24.54120789972577,"upper_bound":24.622608356176087},"point_estimate":24.580976388525972,"standard_error":0.020799423639189015},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.17407579880212964,"upper_bound":0.38184465991673855},"point_estimate":0.27606821587438507,"standard_error":0.056008118614581805}} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/0/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[33845.0,67690.0,101535.0,135380.0,169225.0,203070.0,236915.0,270760.0,304605.0,338450.0,372295.0,406140.0,439985.0,473830.0,507675.0,541520.0,575365.0,609210.0,643055.0,676900.0,710745.0,744590.0,778435.0,812280.0,846125.0,879970.0,913815.0,947660.0,981505.0,1015350.0,1049195.0,1083040.0,1116885.0,1150730.0,1184575.0,1218420.0,1252265.0,1286110.0,1319955.0,1353800.0,1387645.0,1421490.0,1455335.0,1489180.0,1523025.0,1556870.0,1590715.0,1624560.0,1658405.0,1692250.0,1726095.0,1759940.0,1793785.0,1827630.0,1861475.0,1895320.0,1929165.0,1963010.0,1996855.0,2030700.0,2064545.0,2098390.0,2132235.0,2166080.0,2199925.0,2233770.0,2267615.0,2301460.0,2335305.0,2369150.0,2402995.0,2436840.0,2470685.0,2504530.0,2538375.0,2572220.0,2606065.0,2639910.0,2673755.0,2707600.0,2741445.0,2775290.0,2809135.0,2842980.0,2876825.0,2910670.0,2944515.0,2978360.0,3012205.0,3046050.0,3079895.0,3113740.0,3147585.0,3181430.0,3215275.0,3249120.0,3282965.0,3316810.0,3350655.0,3384500.0],"times":[891085.0,1672836.0,2458877.0,3455582.0,4261584.0,5073833.0,5862335.0,6734959.0,7418042.0,8288457.0,9210790.0,9948958.0,10730376.0,11718918.0,12454957.0,13263251.0,14022752.0,14823874.0,15761584.0,16775000.0,17523209.0,18184167.0,19077543.0,19866249.0,20611165.0,21775082.0,22361833.0,23442457.0,23916916.0,24711169.0,25590540.0,26419417.0,27378874.0,28466500.0,29277666.0,29705625.0,30587207.0,31530416.0,32276540.0,32989959.0,33842667.0,34656250.0,35549374.0,36742584.0,37180916.0,38485708.0,39182832.0,39595208.0,40501166.0,42046914.0,42104001.0,43506127.0,44186541.0,45050167.0,45363207.0,47719128.0,47044876.0,47994751.0,48758083.0,49600290.0,50205707.0,51417000.0,52315708.0,53012958.0,54119292.0,54710417.0,55740373.0,58018667.0,57522333.0,57776501.0,59097459.0,59608750.0,61632041.0,61503127.0,62287876.0,62866792.0,63797333.0,65750749.0,66107709.0,66227042.0,67830875.0,68150377.0,69115293.0,69888084.0,70137166.0,71714959.0,72544877.0,73435000.0,73723999.0,74608789.0,75822917.0,76037209.0,77942623.0,78118458.0,79593459.0,80248708.0,80329210.0,81205500.0,83056875.0,82955291.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/0/base/tukey.json ================================================ [23.545493065489275,23.983620627678683,25.151960793517098,25.590088355706502] ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/0/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.004373679465354679,"upper_bound":0.004888693008841759},"point_estimate":0.0007235830050367209,"standard_error":0.0023808986692182253},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0006365407943281776,"upper_bound":0.004337071274351345},"point_estimate":0.001568840824666129,"standard_error":0.0012896182051722542}} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/0/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Rc","value_str":"0","throughput":null,"full_id":"Import as owned and destroy/Rc/0","directory_name":"Import as owned and destroy/Rc_str_/0","title":"Import as owned and destroy/Rc/0"} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/0/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":24.54286338615167,"upper_bound":24.65101970526463},"point_estimate":24.593094153432812,"standard_error":0.027506531172970375},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":24.483012291931104,"upper_bound":24.587153835668943},"point_estimate":24.512038722358213,"standard_error":0.025945482097245655},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.13812310177621126,"upper_bound":0.23476344785334471},"point_estimate":0.18344596093347354,"standard_error":0.023145571320929422},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":24.54120789972577,"upper_bound":24.622608356176087},"point_estimate":24.580976388525972,"standard_error":0.020799423639189015},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.17407579880212964,"upper_bound":0.38184465991673855},"point_estimate":0.27606821587438507,"standard_error":0.056008118614581805}} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/0/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[33845.0,67690.0,101535.0,135380.0,169225.0,203070.0,236915.0,270760.0,304605.0,338450.0,372295.0,406140.0,439985.0,473830.0,507675.0,541520.0,575365.0,609210.0,643055.0,676900.0,710745.0,744590.0,778435.0,812280.0,846125.0,879970.0,913815.0,947660.0,981505.0,1015350.0,1049195.0,1083040.0,1116885.0,1150730.0,1184575.0,1218420.0,1252265.0,1286110.0,1319955.0,1353800.0,1387645.0,1421490.0,1455335.0,1489180.0,1523025.0,1556870.0,1590715.0,1624560.0,1658405.0,1692250.0,1726095.0,1759940.0,1793785.0,1827630.0,1861475.0,1895320.0,1929165.0,1963010.0,1996855.0,2030700.0,2064545.0,2098390.0,2132235.0,2166080.0,2199925.0,2233770.0,2267615.0,2301460.0,2335305.0,2369150.0,2402995.0,2436840.0,2470685.0,2504530.0,2538375.0,2572220.0,2606065.0,2639910.0,2673755.0,2707600.0,2741445.0,2775290.0,2809135.0,2842980.0,2876825.0,2910670.0,2944515.0,2978360.0,3012205.0,3046050.0,3079895.0,3113740.0,3147585.0,3181430.0,3215275.0,3249120.0,3282965.0,3316810.0,3350655.0,3384500.0],"times":[891085.0,1672836.0,2458877.0,3455582.0,4261584.0,5073833.0,5862335.0,6734959.0,7418042.0,8288457.0,9210790.0,9948958.0,10730376.0,11718918.0,12454957.0,13263251.0,14022752.0,14823874.0,15761584.0,16775000.0,17523209.0,18184167.0,19077543.0,19866249.0,20611165.0,21775082.0,22361833.0,23442457.0,23916916.0,24711169.0,25590540.0,26419417.0,27378874.0,28466500.0,29277666.0,29705625.0,30587207.0,31530416.0,32276540.0,32989959.0,33842667.0,34656250.0,35549374.0,36742584.0,37180916.0,38485708.0,39182832.0,39595208.0,40501166.0,42046914.0,42104001.0,43506127.0,44186541.0,45050167.0,45363207.0,47719128.0,47044876.0,47994751.0,48758083.0,49600290.0,50205707.0,51417000.0,52315708.0,53012958.0,54119292.0,54710417.0,55740373.0,58018667.0,57522333.0,57776501.0,59097459.0,59608750.0,61632041.0,61503127.0,62287876.0,62866792.0,63797333.0,65750749.0,66107709.0,66227042.0,67830875.0,68150377.0,69115293.0,69888084.0,70137166.0,71714959.0,72544877.0,73435000.0,73723999.0,74608789.0,75822917.0,76037209.0,77942623.0,78118458.0,79593459.0,80248708.0,80329210.0,81205500.0,83056875.0,82955291.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/0/new/tukey.json ================================================ [23.545493065489275,23.983620627678683,25.151960793517098,25.590088355706502] ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/0/report/index.html ================================================ Import as owned and destroy/Rc<str>/0 - Criterion.rs

Import as owned and destroy/Rc<str>/0

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 24.541 ns 24.581 ns 24.623 ns
0.9931353 0.9934958 0.9931007
Mean 24.543 ns 24.593 ns 24.651 ns
Std. Dev. 174.08 ps 276.07 ps 381.84 ps
Median 24.483 ns 24.512 ns 24.587 ns
MAD 138.12 ps 183.45 ps 234.76 ps

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.4374% +0.0724% +0.4889% (p = 0.79 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/10/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Rc","value_str":"10","throughput":null,"full_id":"Import as owned and destroy/Rc/10","directory_name":"Import as owned and destroy/Rc_str_/10","title":"Import as owned and destroy/Rc/10"} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/10/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":53.056023492884286,"upper_bound":54.46141955304666},"point_estimate":53.75017238124202,"standard_error":0.3590694976641455},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":51.229908308213865,"upper_bound":54.00395374542981},"point_estimate":52.35664790899518,"standard_error":0.7170999627349235},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1.6542959787715408,"upper_bound":4.887155929767602},"point_estimate":3.2141849111660488,"standard_error":0.8854971052356692},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":54.72079962731003,"upper_bound":55.999323588077374},"point_estimate":55.40826383487982,"standard_error":0.3260964900853763},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.181505716153943,"upper_bound":3.9669638803549874},"point_estimate":3.6024113584113637,"standard_error":0.20038292813499894}} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/10/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[11761.0,23522.0,35283.0,47044.0,58805.0,70566.0,82327.0,94088.0,105849.0,117610.0,129371.0,141132.0,152893.0,164654.0,176415.0,188176.0,199937.0,211698.0,223459.0,235220.0,246981.0,258742.0,270503.0,282264.0,294025.0,305786.0,317547.0,329308.0,341069.0,352830.0,364591.0,376352.0,388113.0,399874.0,411635.0,423396.0,435157.0,446918.0,458679.0,470440.0,482201.0,493962.0,505723.0,517484.0,529245.0,541006.0,552767.0,564528.0,576289.0,588050.0,599811.0,611572.0,623333.0,635094.0,646855.0,658616.0,670377.0,682138.0,693899.0,705660.0,717421.0,729182.0,740943.0,752704.0,764465.0,776226.0,787987.0,799748.0,811509.0,823270.0,835031.0,846792.0,858553.0,870314.0,882075.0,893836.0,905597.0,917358.0,929119.0,940880.0,952641.0,964402.0,976163.0,987924.0,999685.0,1011446.0,1023207.0,1034968.0,1046729.0,1058490.0,1070251.0,1082012.0,1093773.0,1105534.0,1117295.0,1129056.0,1140817.0,1152578.0,1164339.0,1176100.0],"times":[602124.0,1251292.0,2126669.0,2819542.0,3563125.0,4475167.0,4268877.0,4711000.0,5378625.0,6083708.0,6538833.0,7080041.0,7784876.0,8289501.0,8959917.0,9951958.0,9980206.0,10695127.0,11740333.0,11854916.0,12498917.0,13014625.0,13899334.0,14381250.0,14741501.0,15396539.0,16146169.0,16677376.0,17041583.0,17720001.0,18690083.0,19284085.0,19395960.0,20211167.0,20580789.0,21177584.0,21900291.0,22986208.0,23478793.0,23735707.0,24495626.0,25614791.0,25437998.0,25929502.0,26744374.0,27344626.0,27732541.0,28531832.0,29032541.0,29590333.0,30545834.0,30705208.0,31708041.0,31724709.0,40690250.0,39714626.0,40328794.0,40023250.0,40900501.0,41129835.0,42189708.0,42272958.0,42228332.0,42345665.0,42564998.0,43030374.0,43451585.0,44294333.0,45326833.0,44459835.0,45257710.0,46540834.0,45711375.0,46448958.0,46964667.0,46970959.0,46941834.0,48013125.0,49243584.0,49278415.0,49335170.0,55747290.0,56403044.0,56329707.0,58381540.0,59301085.0,58726751.0,59394961.0,59734042.0,60105791.0,60830544.0,62078084.0,62817208.0,62716625.0,64158253.0,65038750.0,65592083.0,65874375.0,65278584.0,67610042.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/10/base/tukey.json ================================================ [30.90386508756557,40.72328763237812,66.90841441854491,76.72783696335745] ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/10/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.04336828314219618,"upper_bound":-0.007585055528504313},"point_estimate":-0.026078621476560482,"standard_error":0.009214083559988723},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.07112178664277713,"upper_bound":0.008394401938937363},"point_estimate":-0.029373339340682092,"standard_error":0.019466397803865165}} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/10/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Rc","value_str":"10","throughput":null,"full_id":"Import as owned and destroy/Rc/10","directory_name":"Import as owned and destroy/Rc_str_/10","title":"Import as owned and destroy/Rc/10"} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/10/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":53.056023492884286,"upper_bound":54.46141955304666},"point_estimate":53.75017238124202,"standard_error":0.3590694976641455},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":51.229908308213865,"upper_bound":54.00395374542981},"point_estimate":52.35664790899518,"standard_error":0.7170999627349235},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1.6542959787715408,"upper_bound":4.887155929767602},"point_estimate":3.2141849111660488,"standard_error":0.8854971052356692},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":54.72079962731003,"upper_bound":55.999323588077374},"point_estimate":55.40826383487982,"standard_error":0.3260964900853763},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.181505716153943,"upper_bound":3.9669638803549874},"point_estimate":3.6024113584113637,"standard_error":0.20038292813499894}} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/10/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[11761.0,23522.0,35283.0,47044.0,58805.0,70566.0,82327.0,94088.0,105849.0,117610.0,129371.0,141132.0,152893.0,164654.0,176415.0,188176.0,199937.0,211698.0,223459.0,235220.0,246981.0,258742.0,270503.0,282264.0,294025.0,305786.0,317547.0,329308.0,341069.0,352830.0,364591.0,376352.0,388113.0,399874.0,411635.0,423396.0,435157.0,446918.0,458679.0,470440.0,482201.0,493962.0,505723.0,517484.0,529245.0,541006.0,552767.0,564528.0,576289.0,588050.0,599811.0,611572.0,623333.0,635094.0,646855.0,658616.0,670377.0,682138.0,693899.0,705660.0,717421.0,729182.0,740943.0,752704.0,764465.0,776226.0,787987.0,799748.0,811509.0,823270.0,835031.0,846792.0,858553.0,870314.0,882075.0,893836.0,905597.0,917358.0,929119.0,940880.0,952641.0,964402.0,976163.0,987924.0,999685.0,1011446.0,1023207.0,1034968.0,1046729.0,1058490.0,1070251.0,1082012.0,1093773.0,1105534.0,1117295.0,1129056.0,1140817.0,1152578.0,1164339.0,1176100.0],"times":[602124.0,1251292.0,2126669.0,2819542.0,3563125.0,4475167.0,4268877.0,4711000.0,5378625.0,6083708.0,6538833.0,7080041.0,7784876.0,8289501.0,8959917.0,9951958.0,9980206.0,10695127.0,11740333.0,11854916.0,12498917.0,13014625.0,13899334.0,14381250.0,14741501.0,15396539.0,16146169.0,16677376.0,17041583.0,17720001.0,18690083.0,19284085.0,19395960.0,20211167.0,20580789.0,21177584.0,21900291.0,22986208.0,23478793.0,23735707.0,24495626.0,25614791.0,25437998.0,25929502.0,26744374.0,27344626.0,27732541.0,28531832.0,29032541.0,29590333.0,30545834.0,30705208.0,31708041.0,31724709.0,40690250.0,39714626.0,40328794.0,40023250.0,40900501.0,41129835.0,42189708.0,42272958.0,42228332.0,42345665.0,42564998.0,43030374.0,43451585.0,44294333.0,45326833.0,44459835.0,45257710.0,46540834.0,45711375.0,46448958.0,46964667.0,46970959.0,46941834.0,48013125.0,49243584.0,49278415.0,49335170.0,55747290.0,56403044.0,56329707.0,58381540.0,59301085.0,58726751.0,59394961.0,59734042.0,60105791.0,60830544.0,62078084.0,62817208.0,62716625.0,64158253.0,65038750.0,65592083.0,65874375.0,65278584.0,67610042.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/10/new/tukey.json ================================================ [30.90386508756557,40.72328763237812,66.90841441854491,76.72783696335745] ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/10/report/index.html ================================================ Import as owned and destroy/Rc<str>/10 - Criterion.rs

Import as owned and destroy/Rc<str>/10

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 54.721 ns 55.408 ns 55.999 ns
0.7459517 0.7560599 0.7485618
Mean 53.056 ns 53.750 ns 54.461 ns
Std. Dev. 3.1815 ns 3.6024 ns 3.9670 ns
Median 51.230 ns 52.357 ns 54.004 ns
MAD 1.6543 ns 3.2142 ns 4.8872 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −4.3368% −2.6079% −0.7585% (p = 0.01 < 0.05)
Change within noise threshold.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/100/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Rc","value_str":"100","throughput":null,"full_id":"Import as owned and destroy/Rc/100","directory_name":"Import as owned and destroy/Rc_str_/100","title":"Import as owned and destroy/Rc/100"} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/100/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":61.565419264758496,"upper_bound":63.28389325900981},"point_estimate":62.41693408919857,"standard_error":0.4376746943141229},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":61.291642092846914,"upper_bound":63.59362691149212},"point_estimate":62.51199215759358,"standard_error":0.6304642887032212},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.453061792177449,"upper_bound":5.411907844141861},"point_estimate":4.753563102814072,"standard_error":0.4963415579518197},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":62.49919538228156,"upper_bound":64.08185343643775},"point_estimate":63.30080431318207,"standard_error":0.403868007813921},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.7162819381033074,"upper_bound":5.080158631527956},"point_estimate":4.407040623206113,"standard_error":0.3491309504213553}} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/100/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[8632.0,17264.0,25896.0,34528.0,43160.0,51792.0,60424.0,69056.0,77688.0,86320.0,94952.0,103584.0,112216.0,120848.0,129480.0,138112.0,146744.0,155376.0,164008.0,172640.0,181272.0,189904.0,198536.0,207168.0,215800.0,224432.0,233064.0,241696.0,250328.0,258960.0,267592.0,276224.0,284856.0,293488.0,302120.0,310752.0,319384.0,328016.0,336648.0,345280.0,353912.0,362544.0,371176.0,379808.0,388440.0,397072.0,405704.0,414336.0,422968.0,431600.0,440232.0,448864.0,457496.0,466128.0,474760.0,483392.0,492024.0,500656.0,509288.0,517920.0,526552.0,535184.0,543816.0,552448.0,561080.0,569712.0,578344.0,586976.0,595608.0,604240.0,612872.0,621504.0,630136.0,638768.0,647400.0,656032.0,664664.0,673296.0,681928.0,690560.0,699192.0,707824.0,716456.0,725088.0,733720.0,742352.0,750984.0,759616.0,768248.0,776880.0,785512.0,794144.0,802776.0,811408.0,820040.0,828672.0,837304.0,845936.0,854568.0,863200.0],"times":[469832.0,1341042.0,1391918.0,1858956.0,2777916.0,3410377.0,3258166.0,3686208.0,4160998.0,4605874.0,6823542.0,6543538.0,7052209.0,7388873.0,7652331.0,8783043.0,9270749.0,9757208.0,10522914.0,10683499.0,10980876.0,12250835.0,12411043.0,12477748.0,12474084.0,13083125.0,13962752.0,14555043.0,15938126.0,17109999.0,17331417.0,18926876.0,18509125.0,18249210.0,18165541.0,18144462.0,18021915.0,19296540.0,19820791.0,23226541.0,23803750.0,23917834.0,24387543.0,24178624.0,23837001.0,23853918.0,22948250.0,23994208.0,24984708.0,25000126.0,30916792.0,30009501.0,30313208.0,30714710.0,29988209.0,29121207.0,28493499.0,28725751.0,29422833.0,30087542.0,36342834.0,37105289.0,36011084.0,36183790.0,35959333.0,34918584.0,34290582.0,33640501.0,36298084.0,36493249.0,36972834.0,43457168.0,42814626.0,41952500.0,41559290.0,40630249.0,42206250.0,41524042.0,40144081.0,42747832.0,42748874.0,43149416.0,48561836.0,48310583.0,48549248.0,48230624.0,47941375.0,49119793.0,46946375.0,45950209.0,48357958.0,49642875.0,54992707.0,54321334.0,54089123.0,55092210.0,54368002.0,53104667.0,54133461.0,53181124.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/100/base/tukey.json ================================================ [39.96874182626678,49.61187716614006,75.32690473913547,84.97004007900875] ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/100/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.047096866172274945,"upper_bound":0.011887501738440899},"point_estimate":-0.016637843346696712,"standard_error":0.015023043257937723},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.023578097977171253,"upper_bound":0.027511250515668273},"point_estimate":0.004161959831638695,"standard_error":0.013128346620204116}} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/100/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Rc","value_str":"100","throughput":null,"full_id":"Import as owned and destroy/Rc/100","directory_name":"Import as owned and destroy/Rc_str_/100","title":"Import as owned and destroy/Rc/100"} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/100/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":61.565419264758496,"upper_bound":63.28389325900981},"point_estimate":62.41693408919857,"standard_error":0.4376746943141229},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":61.291642092846914,"upper_bound":63.59362691149212},"point_estimate":62.51199215759358,"standard_error":0.6304642887032212},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.453061792177449,"upper_bound":5.411907844141861},"point_estimate":4.753563102814072,"standard_error":0.4963415579518197},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":62.49919538228156,"upper_bound":64.08185343643775},"point_estimate":63.30080431318207,"standard_error":0.403868007813921},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.7162819381033074,"upper_bound":5.080158631527956},"point_estimate":4.407040623206113,"standard_error":0.3491309504213553}} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/100/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[8632.0,17264.0,25896.0,34528.0,43160.0,51792.0,60424.0,69056.0,77688.0,86320.0,94952.0,103584.0,112216.0,120848.0,129480.0,138112.0,146744.0,155376.0,164008.0,172640.0,181272.0,189904.0,198536.0,207168.0,215800.0,224432.0,233064.0,241696.0,250328.0,258960.0,267592.0,276224.0,284856.0,293488.0,302120.0,310752.0,319384.0,328016.0,336648.0,345280.0,353912.0,362544.0,371176.0,379808.0,388440.0,397072.0,405704.0,414336.0,422968.0,431600.0,440232.0,448864.0,457496.0,466128.0,474760.0,483392.0,492024.0,500656.0,509288.0,517920.0,526552.0,535184.0,543816.0,552448.0,561080.0,569712.0,578344.0,586976.0,595608.0,604240.0,612872.0,621504.0,630136.0,638768.0,647400.0,656032.0,664664.0,673296.0,681928.0,690560.0,699192.0,707824.0,716456.0,725088.0,733720.0,742352.0,750984.0,759616.0,768248.0,776880.0,785512.0,794144.0,802776.0,811408.0,820040.0,828672.0,837304.0,845936.0,854568.0,863200.0],"times":[469832.0,1341042.0,1391918.0,1858956.0,2777916.0,3410377.0,3258166.0,3686208.0,4160998.0,4605874.0,6823542.0,6543538.0,7052209.0,7388873.0,7652331.0,8783043.0,9270749.0,9757208.0,10522914.0,10683499.0,10980876.0,12250835.0,12411043.0,12477748.0,12474084.0,13083125.0,13962752.0,14555043.0,15938126.0,17109999.0,17331417.0,18926876.0,18509125.0,18249210.0,18165541.0,18144462.0,18021915.0,19296540.0,19820791.0,23226541.0,23803750.0,23917834.0,24387543.0,24178624.0,23837001.0,23853918.0,22948250.0,23994208.0,24984708.0,25000126.0,30916792.0,30009501.0,30313208.0,30714710.0,29988209.0,29121207.0,28493499.0,28725751.0,29422833.0,30087542.0,36342834.0,37105289.0,36011084.0,36183790.0,35959333.0,34918584.0,34290582.0,33640501.0,36298084.0,36493249.0,36972834.0,43457168.0,42814626.0,41952500.0,41559290.0,40630249.0,42206250.0,41524042.0,40144081.0,42747832.0,42748874.0,43149416.0,48561836.0,48310583.0,48549248.0,48230624.0,47941375.0,49119793.0,46946375.0,45950209.0,48357958.0,49642875.0,54992707.0,54321334.0,54089123.0,55092210.0,54368002.0,53104667.0,54133461.0,53181124.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/100/new/tukey.json ================================================ [39.96874182626678,49.61187716614006,75.32690473913547,84.97004007900875] ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/100/report/index.html ================================================ Import as owned and destroy/Rc<str>/100 - Criterion.rs

Import as owned and destroy/Rc<str>/100

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 62.499 ns 63.301 ns 64.082 ns
0.6919610 0.7038983 0.6925558
Mean 61.565 ns 62.417 ns 63.284 ns
Std. Dev. 3.7163 ns 4.4070 ns 5.0802 ns
Median 61.292 ns 62.512 ns 63.594 ns
MAD 3.4531 ns 4.7536 ns 5.4119 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −4.7097% −1.6638% +1.1888% (p = 0.29 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/20/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Rc","value_str":"20","throughput":null,"full_id":"Import as owned and destroy/Rc/20","directory_name":"Import as owned and destroy/Rc_str_/20","title":"Import as owned and destroy/Rc/20"} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/20/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":58.09508059904306,"upper_bound":59.519597596970414},"point_estimate":58.80367066509432,"standard_error":0.3638408779885765},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":58.45476231985123,"upper_bound":59.77199700698474},"point_estimate":59.335612199246725,"standard_error":0.33463591204376775},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.686657023034039,"upper_bound":5.155658898579058},"point_estimate":4.023708459597181,"standard_error":0.6480863558750758},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":59.65557489655121,"upper_bound":60.947672640998675},"point_estimate":60.30521320129265,"standard_error":0.32943687578379754},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.1484814643899743,"upper_bound":4.142694379091332},"point_estimate":3.653488994354,"standard_error":0.25375658011440116}} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/20/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[10755.0,21510.0,32265.0,43020.0,53775.0,64530.0,75285.0,86040.0,96795.0,107550.0,118305.0,129060.0,139815.0,150570.0,161325.0,172080.0,182835.0,193590.0,204345.0,215100.0,225855.0,236610.0,247365.0,258120.0,268875.0,279630.0,290385.0,301140.0,311895.0,322650.0,333405.0,344160.0,354915.0,365670.0,376425.0,387180.0,397935.0,408690.0,419445.0,430200.0,440955.0,451710.0,462465.0,473220.0,483975.0,494730.0,505485.0,516240.0,526995.0,537750.0,548505.0,559260.0,570015.0,580770.0,591525.0,602280.0,613035.0,623790.0,634545.0,645300.0,656055.0,666810.0,677565.0,688320.0,699075.0,709830.0,720585.0,731340.0,742095.0,752850.0,763605.0,774360.0,785115.0,795870.0,806625.0,817380.0,828135.0,838890.0,849645.0,860400.0,871155.0,881910.0,892665.0,903420.0,914175.0,924930.0,935685.0,946440.0,957195.0,967950.0,978705.0,989460.0,1000215.0,1010970.0,1021725.0,1032480.0,1043235.0,1053990.0,1064745.0,1075500.0],"times":[576790.0,1498166.0,1707167.0,2806207.0,2959000.0,3550709.0,4090166.0,5089418.0,5168000.0,5702210.0,6381416.0,7045707.0,7546706.0,8209417.0,9469082.0,9244084.0,9959498.0,10486665.0,11014044.0,11631001.0,12614791.0,13007833.0,13196042.0,13791250.0,14493666.0,15397957.0,15742667.0,16300499.0,16822335.0,20595001.0,20863251.0,21831666.0,21702252.0,22300708.0,22640001.0,23050501.0,23687333.0,23743042.0,23765750.0,23983211.0,24625791.0,25749541.0,25653665.0,26389960.0,29843628.0,30154917.0,30074709.0,31403418.0,32051667.0,32346710.0,32676792.0,33471209.0,34340416.0,34704251.0,35264169.0,36444499.0,36355711.0,37253374.0,37626583.0,41164250.0,40612250.0,41749707.0,41654501.0,41953585.0,42660001.0,42421249.0,44432750.0,51017752.0,44039125.0,43257250.0,43503790.0,43546125.0,43324874.0,44395793.0,47568957.0,47930000.0,49541500.0,48588333.0,50458957.0,50093875.0,51250417.0,51757457.0,57408875.0,57566541.0,57243543.0,57426961.0,58221832.0,59200542.0,59266958.0,62822209.0,62221666.0,62091833.0,62930876.0,61358167.0,62651293.0,62359835.0,62385043.0,62179999.0,61778586.0,63806083.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/20/base/tukey.json ================================================ [38.43390643841849,46.91665110452867,69.53730354748915,78.02004821359932] ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/20/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.02133398821070776,"upper_bound":0.013037305615249717},"point_estimate":-0.003902683323973699,"standard_error":0.008779866231938223},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.026257995920550004,"upper_bound":0.019399262363624326},"point_estimate":-0.010674584459401837,"standard_error":0.01142881720523971}} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/20/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Rc","value_str":"20","throughput":null,"full_id":"Import as owned and destroy/Rc/20","directory_name":"Import as owned and destroy/Rc_str_/20","title":"Import as owned and destroy/Rc/20"} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/20/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":58.09508059904306,"upper_bound":59.519597596970414},"point_estimate":58.80367066509432,"standard_error":0.3638408779885765},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":58.45476231985123,"upper_bound":59.77199700698474},"point_estimate":59.335612199246725,"standard_error":0.33463591204376775},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.686657023034039,"upper_bound":5.155658898579058},"point_estimate":4.023708459597181,"standard_error":0.6480863558750758},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":59.65557489655121,"upper_bound":60.947672640998675},"point_estimate":60.30521320129265,"standard_error":0.32943687578379754},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.1484814643899743,"upper_bound":4.142694379091332},"point_estimate":3.653488994354,"standard_error":0.25375658011440116}} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/20/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[10755.0,21510.0,32265.0,43020.0,53775.0,64530.0,75285.0,86040.0,96795.0,107550.0,118305.0,129060.0,139815.0,150570.0,161325.0,172080.0,182835.0,193590.0,204345.0,215100.0,225855.0,236610.0,247365.0,258120.0,268875.0,279630.0,290385.0,301140.0,311895.0,322650.0,333405.0,344160.0,354915.0,365670.0,376425.0,387180.0,397935.0,408690.0,419445.0,430200.0,440955.0,451710.0,462465.0,473220.0,483975.0,494730.0,505485.0,516240.0,526995.0,537750.0,548505.0,559260.0,570015.0,580770.0,591525.0,602280.0,613035.0,623790.0,634545.0,645300.0,656055.0,666810.0,677565.0,688320.0,699075.0,709830.0,720585.0,731340.0,742095.0,752850.0,763605.0,774360.0,785115.0,795870.0,806625.0,817380.0,828135.0,838890.0,849645.0,860400.0,871155.0,881910.0,892665.0,903420.0,914175.0,924930.0,935685.0,946440.0,957195.0,967950.0,978705.0,989460.0,1000215.0,1010970.0,1021725.0,1032480.0,1043235.0,1053990.0,1064745.0,1075500.0],"times":[576790.0,1498166.0,1707167.0,2806207.0,2959000.0,3550709.0,4090166.0,5089418.0,5168000.0,5702210.0,6381416.0,7045707.0,7546706.0,8209417.0,9469082.0,9244084.0,9959498.0,10486665.0,11014044.0,11631001.0,12614791.0,13007833.0,13196042.0,13791250.0,14493666.0,15397957.0,15742667.0,16300499.0,16822335.0,20595001.0,20863251.0,21831666.0,21702252.0,22300708.0,22640001.0,23050501.0,23687333.0,23743042.0,23765750.0,23983211.0,24625791.0,25749541.0,25653665.0,26389960.0,29843628.0,30154917.0,30074709.0,31403418.0,32051667.0,32346710.0,32676792.0,33471209.0,34340416.0,34704251.0,35264169.0,36444499.0,36355711.0,37253374.0,37626583.0,41164250.0,40612250.0,41749707.0,41654501.0,41953585.0,42660001.0,42421249.0,44432750.0,51017752.0,44039125.0,43257250.0,43503790.0,43546125.0,43324874.0,44395793.0,47568957.0,47930000.0,49541500.0,48588333.0,50458957.0,50093875.0,51250417.0,51757457.0,57408875.0,57566541.0,57243543.0,57426961.0,58221832.0,59200542.0,59266958.0,62822209.0,62221666.0,62091833.0,62930876.0,61358167.0,62651293.0,62359835.0,62385043.0,62179999.0,61778586.0,63806083.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/20/new/tukey.json ================================================ [38.43390643841849,46.91665110452867,69.53730354748915,78.02004821359932] ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/20/report/index.html ================================================ Import as owned and destroy/Rc<str>/20 - Criterion.rs

Import as owned and destroy/Rc<str>/20

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 59.656 ns 60.305 ns 60.948 ns
0.7671211 0.7771681 0.7673391
Mean 58.095 ns 58.804 ns 59.520 ns
Std. Dev. 3.1485 ns 3.6535 ns 4.1427 ns
Median 58.455 ns 59.336 ns 59.772 ns
MAD 2.6867 ns 4.0237 ns 5.1557 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −2.1334% −0.3903% +1.3037% (p = 0.67 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/500/base/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Rc","value_str":"500","throughput":null,"full_id":"Import as owned and destroy/Rc/500","directory_name":"Import as owned and destroy/Rc_str_/500","title":"Import as owned and destroy/Rc/500"} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/500/base/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":100.71435356281668,"upper_bound":103.1371664951926},"point_estimate":101.979578968978,"standard_error":0.6186417032457118},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":101.60721306672527,"upper_bound":103.98355813599716},"point_estimate":102.90072511535926,"standard_error":0.6228461443682634},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.348100228984747,"upper_bound":5.824611969207249},"point_estimate":4.929161557629918,"standard_error":0.6645533703928693},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":104.34020307154701,"upper_bound":106.15660953638087},"point_estimate":105.30515064040962,"standard_error":0.4631386178803381},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.523330334465586,"upper_bound":7.657483659731688},"point_estimate":6.183442535582376,"standard_error":0.8009739022739261}} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/500/base/sample.json ================================================ {"sampling_mode":"Linear","iters":[4551.0,9102.0,13653.0,18204.0,22755.0,27306.0,31857.0,36408.0,40959.0,45510.0,50061.0,54612.0,59163.0,63714.0,68265.0,72816.0,77367.0,81918.0,86469.0,91020.0,95571.0,100122.0,104673.0,109224.0,113775.0,118326.0,122877.0,127428.0,131979.0,136530.0,141081.0,145632.0,150183.0,154734.0,159285.0,163836.0,168387.0,172938.0,177489.0,182040.0,186591.0,191142.0,195693.0,200244.0,204795.0,209346.0,213897.0,218448.0,222999.0,227550.0,232101.0,236652.0,241203.0,245754.0,250305.0,254856.0,259407.0,263958.0,268509.0,273060.0,277611.0,282162.0,286713.0,291264.0,295815.0,300366.0,304917.0,309468.0,314019.0,318570.0,323121.0,327672.0,332223.0,336774.0,341325.0,345876.0,350427.0,354978.0,359529.0,364080.0,368631.0,373182.0,377733.0,382284.0,386835.0,391386.0,395937.0,400488.0,405039.0,409590.0,414141.0,418692.0,423243.0,427794.0,432345.0,436896.0,441447.0,445998.0,450549.0,455100.0],"times":[366167.0,709000.0,1146622.0,1413333.0,2177960.0,2464501.0,3408084.0,3336249.0,3854833.0,4200707.0,4810293.0,5564958.0,5876375.0,6611207.0,7099707.0,7619081.0,7846584.0,8389707.0,8976334.0,9276708.0,9496500.0,9710794.0,10749626.0,10838793.0,11332416.0,12390125.0,12879625.0,13327207.0,13054084.0,14154083.0,13989376.0,14234667.0,14749082.0,15394459.0,16361709.0,16822627.0,16650292.0,17197375.0,17992668.0,18471377.0,18542375.0,20034501.0,20530000.0,21051749.0,21110625.0,21808793.0,21385417.0,23427166.0,23332292.0,24454874.0,23409832.0,24607917.0,23511334.0,24749124.0,24454209.0,25434710.0,25741334.0,26582707.0,26881291.0,27116833.0,28434248.0,29980585.0,28855043.0,30090375.0,30625252.0,29093501.0,31781500.0,32086626.0,32704248.0,33251334.0,33496917.0,33255873.0,34073708.0,35453791.0,34681082.0,36686374.0,37827750.0,36982875.0,36439291.0,39381668.0,40095876.0,40946582.0,40665833.0,41031167.0,40991416.0,42009250.0,43092459.0,40999500.0,44184124.0,43998127.0,44443873.0,46138084.0,46497750.0,45987707.0,47348708.0,47906499.0,45796001.0,49226914.0,48631209.0,49554334.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/500/base/tukey.json ================================================ [81.35897507385013,90.39220311538276,114.48081122613644,123.51403926766908] ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/500/change/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0013715436873312531,"upper_bound":0.031284564963446206},"point_estimate":0.014670215901821049,"standard_error":0.008303468250592598},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.003920413434530978,"upper_bound":0.033012227931020474},"point_estimate":0.017636863522739077,"standard_error":0.007513977489378753}} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/500/new/benchmark.json ================================================ {"group_id":"Import as owned and destroy","function_id":"Rc","value_str":"500","throughput":null,"full_id":"Import as owned and destroy/Rc/500","directory_name":"Import as owned and destroy/Rc_str_/500","title":"Import as owned and destroy/Rc/500"} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/500/new/estimates.json ================================================ {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":100.71435356281668,"upper_bound":103.1371664951926},"point_estimate":101.979578968978,"standard_error":0.6186417032457118},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":101.60721306672527,"upper_bound":103.98355813599716},"point_estimate":102.90072511535926,"standard_error":0.6228461443682634},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.348100228984747,"upper_bound":5.824611969207249},"point_estimate":4.929161557629918,"standard_error":0.6645533703928693},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":104.34020307154701,"upper_bound":106.15660953638087},"point_estimate":105.30515064040962,"standard_error":0.4631386178803381},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.523330334465586,"upper_bound":7.657483659731688},"point_estimate":6.183442535582376,"standard_error":0.8009739022739261}} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/500/new/sample.json ================================================ {"sampling_mode":"Linear","iters":[4551.0,9102.0,13653.0,18204.0,22755.0,27306.0,31857.0,36408.0,40959.0,45510.0,50061.0,54612.0,59163.0,63714.0,68265.0,72816.0,77367.0,81918.0,86469.0,91020.0,95571.0,100122.0,104673.0,109224.0,113775.0,118326.0,122877.0,127428.0,131979.0,136530.0,141081.0,145632.0,150183.0,154734.0,159285.0,163836.0,168387.0,172938.0,177489.0,182040.0,186591.0,191142.0,195693.0,200244.0,204795.0,209346.0,213897.0,218448.0,222999.0,227550.0,232101.0,236652.0,241203.0,245754.0,250305.0,254856.0,259407.0,263958.0,268509.0,273060.0,277611.0,282162.0,286713.0,291264.0,295815.0,300366.0,304917.0,309468.0,314019.0,318570.0,323121.0,327672.0,332223.0,336774.0,341325.0,345876.0,350427.0,354978.0,359529.0,364080.0,368631.0,373182.0,377733.0,382284.0,386835.0,391386.0,395937.0,400488.0,405039.0,409590.0,414141.0,418692.0,423243.0,427794.0,432345.0,436896.0,441447.0,445998.0,450549.0,455100.0],"times":[366167.0,709000.0,1146622.0,1413333.0,2177960.0,2464501.0,3408084.0,3336249.0,3854833.0,4200707.0,4810293.0,5564958.0,5876375.0,6611207.0,7099707.0,7619081.0,7846584.0,8389707.0,8976334.0,9276708.0,9496500.0,9710794.0,10749626.0,10838793.0,11332416.0,12390125.0,12879625.0,13327207.0,13054084.0,14154083.0,13989376.0,14234667.0,14749082.0,15394459.0,16361709.0,16822627.0,16650292.0,17197375.0,17992668.0,18471377.0,18542375.0,20034501.0,20530000.0,21051749.0,21110625.0,21808793.0,21385417.0,23427166.0,23332292.0,24454874.0,23409832.0,24607917.0,23511334.0,24749124.0,24454209.0,25434710.0,25741334.0,26582707.0,26881291.0,27116833.0,28434248.0,29980585.0,28855043.0,30090375.0,30625252.0,29093501.0,31781500.0,32086626.0,32704248.0,33251334.0,33496917.0,33255873.0,34073708.0,35453791.0,34681082.0,36686374.0,37827750.0,36982875.0,36439291.0,39381668.0,40095876.0,40946582.0,40665833.0,41031167.0,40991416.0,42009250.0,43092459.0,40999500.0,44184124.0,43998127.0,44443873.0,46138084.0,46497750.0,45987707.0,47348708.0,47906499.0,45796001.0,49226914.0,48631209.0,49554334.0]} ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/500/new/tukey.json ================================================ [81.35897507385013,90.39220311538276,114.48081122613644,123.51403926766908] ================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/500/report/index.html ================================================ Import as owned and destroy/Rc<str>/500 - Criterion.rs

Import as owned and destroy/Rc<str>/500

PDF of Slope Regression

Additional Statistics:

Lower bound Estimate Upper bound
Slope 104.34 ns 105.31 ns 106.16 ns
0.8677235 0.8752999 0.8693895
Mean 100.71 ns 101.98 ns 103.14 ns
Std. Dev. 4.5233 ns 6.1834 ns 7.6575 ns
Median 101.61 ns 102.90 ns 103.98 ns
MAD 3.3481 ns 4.9292 ns 5.8246 ns

Additional Plots:

Understanding this report:

The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.

The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.

See the documentation for more details on the additional statistics.

Change Since Previous Benchmark

Additional Statistics:

Lower bound Estimate Upper bound
Change in time −0.1372% +1.4670% +3.1285% (p = 0.08 > 0.05)
No change in performance detected.

Understanding this report:

The plot on the left shows the probability of the function taking a certain amount of time. The red curve represents the saved measurements from the last time this benchmark was run, while the blue curve shows the measurements from this run. The lines represent the mean time per iteration. Click on the plot for a larger view.

The plot on the right shows the two regressions. Again, the red line represents the previous measurement while the blue line shows the current measurement.

See the documentation for more details on the additional statistics.

================================================ FILE: docs/criterion/Import as owned and destroy/Rc_str_/report/index.html ================================================ Import as owned and destroy/Rc<str> Summary - Criterion.rs

Import as owned and destroy/Rc<str>

Violin Plot

Violin Plot

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

Line Chart

Line Chart

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

Import as owned and destroy/Rc<str>/0

PDF of Slope Regression

Import as owned and destroy/Rc<str>/10

PDF of Slope Regression

Import as owned and destroy/Rc<str>/20

PDF of Slope Regression

Import as owned and destroy/Rc<str>/100

PDF of Slope Regression

Import as owned and destroy/Rc<str>/500

PDF of Slope Regression
================================================ FILE: docs/criterion/Import as owned and destroy/report/index.html ================================================ Import as owned and destroy Summary - Criterion.rs

Import as owned and destroy

Violin Plot

Violin Plot

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

Line Chart

Line Chart

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

Import as owned and destroy/Arc<str>/0

PDF of Slope Regression

Import as owned and destroy/Arc<str>/10

PDF of Slope Regression

Import as owned and destroy/Arc<str>/20

PDF of Slope Regression

Import as owned and destroy/Arc<str>/100

PDF of Slope Regression

Import as owned and destroy/Arc<str>/500

PDF of Slope Regression

Import as owned and destroy/Cow<'_, str>/0

PDF of Slope Regression

Import as owned and destroy/Cow<'_, str>/10

PDF of Slope Regression

Import as owned and destroy/Cow<'_, str>/20

PDF of Slope Regression

Import as owned and destroy/Cow<'_, str>/100

PDF of Slope Regression

Import as owned and destroy/Cow<'_, str>/500

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/0

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/10

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/20

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/100

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (LocalStr - As is)/500

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/0

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/10

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/20

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/100

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (LocalStr - Optimized)/500

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/0

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/10

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/20

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/100

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (SharedStr - As is)/500

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/0

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/10

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/20

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/100

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.10 (SharedStr - Optimized)/500

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.9 (LocalStr)/0

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.9 (LocalStr)/10

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.9 (LocalStr)/20

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.9 (LocalStr)/100

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.9 (LocalStr)/500

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.9 (SharedStr)/0

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.9 (SharedStr)/10

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.9 (SharedStr)/20

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.9 (SharedStr)/100

PDF of Slope Regression

Import as owned and destroy/FlexStr 0.9 (SharedStr)/500

PDF of Slope Regression

Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/0

PDF of Slope Regression

Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/10

PDF of Slope Regression

Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/20

PDF of Slope Regression

Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/100

PDF of Slope Regression

Import as owned and destroy/InlineFlexStr 0.1 (InlineStr)/500

PDF of Slope Regression

Import as owned and destroy/Rc<str>/0

PDF of Slope Regression

Import as owned and destroy/Rc<str>/10

PDF of Slope Regression

Import as owned and destroy/Rc<str>/20

PDF of Slope Regression

Import as owned and destroy/Rc<str>/100

PDF of Slope Regression

Import as owned and destroy/Rc<str>/500

PDF of Slope Regression
================================================ FILE: docs/criterion/report/index.html ================================================ Index - Criterion.rs

Criterion.rs Benchmark Index

See individual benchmark pages below for more details.
================================================ FILE: flexstr_support/Cargo.toml ================================================ [package] name = "flexstr_support" version = "0.1.4" authors = ["Scott Meeuwsen "] license = "MIT OR Apache-2.0" description = "Support crate for 'flexstr' and 'inline_flexstr'" repository = "https://github.com/nu11ptr/flexstr/flexstr_support" documentation = "https://docs.rs/flexstr_support" keywords = ["string", "support"] categories = [ "data-structures", "memory-management", "no-std", "text-processing", ] readme = "README.md" edition = "2024" [features] default = ["std", "str"] # Does not use and forbids all unsafe code (unless windows_min_unsafe is also enabled, but that only impacts Windows) safe = [] std = [] # Uses the minimum unsafe code possible to support OsStr/Path on Windows. Doesn't impact any other string types or operating systems. win_min_unsafe = ["safe"] # String type features bytes = [] cstr = [] osstr = ["std"] path = ["osstr"] str = [] [package.metadata.docs.rs] features = ["bytes", "cstr", "osstr", "path", "serde", "std", "str"] rustdoc-args = ["--cfg", "docsrs"] ================================================ FILE: flexstr_support/README.md ================================================ # flexstr_support [![Crate](https://img.shields.io/crates/v/flexstr_support)](https://crates.io/crates/flexstr_support) [![Docs](https://docs.rs/flexstr_support/badge.svg)](https://docs.rs/flexstr_support) [![Build](https://github.com/nu11ptr/flexstr/workflows/CI/badge.svg)](https://github.com/nu11ptr/flexstr/actions) Support crate for `flexstr` and `flexstr_support`. This probably isn't what you want unless you are trying to add your own string type to these crates. ## Cargo Features * **safe** = Use all safe functions and add `forbid(unsafe_code)` (performance penalty) * **std** = Use `std` (default) * **serde** = add `serde` dependency and adds serialization/deserialization * **win_min_unsafe** = enables the minimum necessary unsafe code on Windows to support `OsStr`/`Path`. No other string types or operating systems are impacted (implies `safe` feature). * NOTE: The code will refuse to compile if this is not specified when ALL the following conditions are true: * The `safe` feature is enabled * The `osstr` and/or `path` feature(s) are enabled * Compiling for Windows ### String Type Features: * **str** = Enable `str`-based strings (default) * **bytes** = Enable byte-based strings (`[u8]`) * **cstr** = Enable `CStr`-based strings * **osstr** = Enable `OsStr`-based strings * **path** = Enable `Path`-based strings (implies `osstr` feature) ## Performance In general, it performs quite well given that it is mostly just a thin wrapper over the stdlib. See the [benchmarks](../benchmarks/README.md) page for more details. ## AI Usage The code was written by hand with care (although AI tab completion was used). Any contributions should be completely understood by the contributor, whether AI assisted or not. ## Status This is currently experimental, however, I will be using this at a startup in production code, so it will become production ready at some point. ## Contributions Contributions are welcome so long as they align to my vision for this crate. Currently, it does most of what I want it to do (outside of string construction and mutation, but I'm not ready to start on that yet). ## License This project is licensed optionally under either: * Apache License, Version 2.0, (LICENSE-APACHE or ) * MIT license (LICENSE-MIT or ) ================================================ FILE: flexstr_support/src/bytes.rs ================================================ use crate::traits::{StringFromBytesMut, StringToFromBytes}; // *** StringToFromBytes *** impl StringToFromBytes for [u8] { #[inline] fn bytes_as_self(bytes: &[u8]) -> &Self { bytes } #[inline] fn self_as_raw_bytes(&self) -> &[u8] { self } } // *** StringFromBytesMut *** impl StringFromBytesMut for [u8] { #[inline] fn bytes_as_self_mut(bytes: &mut [u8]) -> &mut Self { bytes } } ================================================ FILE: flexstr_support/src/cstr.rs ================================================ use alloc::fmt; use core::ffi::CStr; use crate::traits::StringToFromBytes; // *** InteriorNulError *** /// Error type returned when a C String has an interior NUL byte. #[derive(Debug)] pub struct InteriorNulError { /// The position of the interior NUL byte pub position: usize, } impl fmt::Display for InteriorNulError { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "Interior NUL byte found at position {}", self.position) } } impl core::error::Error for InteriorNulError {} // *** StringToFromBytes *** impl StringToFromBytes for CStr { #[cfg(feature = "safe")] #[inline] fn bytes_as_self(bytes: &[u8]) -> &Self { // PANIC SAFETY: We know the bytes are a valid CStr CStr::from_bytes_with_nul(bytes).expect("Missing NUL byte") } #[cfg(not(feature = "safe"))] #[inline] fn bytes_as_self(bytes: &[u8]) -> &Self { // SAFETY: We know the bytes are a valid CStr unsafe { CStr::from_bytes_with_nul_unchecked(bytes) } } #[inline] fn self_as_bytes(&self) -> &[u8] { self.to_bytes() } #[inline] fn self_as_raw_bytes(&self) -> &[u8] { self.to_bytes_with_nul() } #[inline] fn empty_raw_bytes() -> &'static [u8] { // CStr requires at least a NUL terminator byte &[0] } } ================================================ FILE: flexstr_support/src/lib.rs ================================================ #![cfg_attr(not(feature = "std"), no_std)] #![cfg_attr( all( not(all(feature = "win_min_unsafe", target_family = "windows")), feature = "safe" ), forbid(unsafe_code) )] #![cfg_attr(docsrs, feature(doc_cfg))] #![warn(missing_docs)] //! Support crate for 'flexstr' and 'inline_flexstr' extern crate alloc; #[cfg(feature = "bytes")] /// Module for byte-based strings (`[u8]`) mod bytes; #[cfg(feature = "cstr")] /// Module for `CStr`-based strings mod cstr; #[cfg(all(feature = "std", feature = "osstr"))] /// Module for `OsStr`-based strings mod osstr; #[cfg(all(feature = "std", feature = "path"))] /// Module for `Path`-based strings mod path; #[cfg(feature = "str")] /// Module for `str`-based strings mod str; mod traits; #[cfg(feature = "cstr")] pub use cstr::InteriorNulError; pub use traits::{StringFromBytesMut, StringLike, StringToFromBytes}; ================================================ FILE: flexstr_support/src/osstr.rs ================================================ use std::ffi::OsStr; use crate::traits::StringToFromBytes; // *** StringToFromBytes *** impl StringToFromBytes for OsStr { #[cfg(all( feature = "safe", not(feature = "win_min_unsafe"), target_family = "windows" ))] #[inline] fn bytes_as_self(bytes: &[u8]) -> &Self { // TODO: With a 3rd party crate, we could use: os_str_bytes::OsStrBytes::assert_from_raw_bytes() // But is this any better? They likely use unsafe internally anyway (as of course the std library does as well). compile_error!( "OsStr/Path support is not available with the 'safe' feature on Windows. Using the 'win_min_unsafe' feature in combination with 'safe' will allow it to compile, but will use a single unsafe call." ); unreachable!() } #[cfg(all(feature = "safe", target_family = "unix"))] #[inline] fn bytes_as_self(bytes: &[u8]) -> &Self { use std::os::unix::prelude::OsStrExt; OsStrExt::from_bytes(bytes) } #[cfg(all(feature = "safe", target_os = "wasi"))] #[inline] fn bytes_as_self(bytes: &[u8]) -> &Self { use std::os::wasi::prelude::OsStrExt; OsStrExt::from_bytes(bytes) } #[cfg(any( not(feature = "safe"), all(feature = "win_min_unsafe", target_family = "windows") ))] #[inline] fn bytes_as_self(bytes: &[u8]) -> &Self { // SAFETY: We know the bytes are a valid OsStr unsafe { OsStr::from_encoded_bytes_unchecked(bytes) } } #[inline] fn self_as_raw_bytes(&self) -> &[u8] { self.as_encoded_bytes() } } ================================================ FILE: flexstr_support/src/path.rs ================================================ use std::{ffi::OsStr, path::Path}; use crate::traits::StringToFromBytes; // *** StringToFromBytes *** impl StringToFromBytes for Path { #[inline] fn bytes_as_self(bytes: &[u8]) -> &Self { Path::new(OsStr::bytes_as_self(bytes)) } #[inline] fn self_as_raw_bytes(&self) -> &[u8] { OsStr::self_as_bytes(self.as_os_str()) } } ================================================ FILE: flexstr_support/src/str.rs ================================================ use crate::traits::{StringFromBytesMut, StringToFromBytes}; // *** StringToFromBytes *** impl StringToFromBytes for str { #[cfg(feature = "safe")] #[inline] fn bytes_as_self(bytes: &[u8]) -> &Self { // PANIC SAFETY: We know the bytes are valid UTF-8 str::from_utf8(bytes).expect("Invalid UTF-8") } #[cfg(not(feature = "safe"))] #[inline] fn bytes_as_self(bytes: &[u8]) -> &Self { // SAFETY: We know the bytes are valid UTF-8 unsafe { str::from_utf8_unchecked(bytes) } } #[inline] fn self_as_raw_bytes(&self) -> &[u8] { self.as_bytes() } } // *** StringFromBytesMut *** impl StringFromBytesMut for str { #[cfg(feature = "safe")] #[inline] fn bytes_as_self_mut(bytes: &mut [u8]) -> &mut Self { // PANIC SAFETY: We know the bytes are valid UTF-8 str::from_utf8_mut(bytes).expect("Invalid UTF-8") } #[cfg(not(feature = "safe"))] #[inline] fn bytes_as_self_mut(bytes: &mut [u8]) -> &mut Self { // SAFETY: We know the bytes are valid UTF-8 unsafe { str::from_utf8_unchecked_mut(bytes) } } } ================================================ FILE: flexstr_support/src/traits.rs ================================================ #[cfg(feature = "cstr")] use alloc::ffi::CString; #[cfg(all(not(feature = "std"), feature = "bytes"))] use alloc::vec::Vec; #[cfg(not(feature = "std"))] use alloc::{borrow::ToOwned, boxed::Box, string::String}; #[cfg(feature = "cstr")] use core::ffi::CStr; #[cfg(all(feature = "std", feature = "osstr"))] use std::ffi::{OsStr, OsString}; #[cfg(all(feature = "std", feature = "path"))] use std::path::{Path, PathBuf}; // *** StringToFromBytes *** /// Trait for string types that can be converted to and from bytes pub trait StringToFromBytes: ToOwned + 'static { /// Convert bytes to a string type fn bytes_as_self(bytes: &[u8]) -> &Self; /// Convert a string type to bytes (excludes nul for CStr) #[inline] fn self_as_bytes(&self) -> &[u8] { self.self_as_raw_bytes() } /// Convert a string type to raw bytes (inludes nul for CStr) fn self_as_raw_bytes(&self) -> &[u8]; /// The raw bytes of an empty value of this type. For most types this is `&[]`, /// but for CStr it is `&[0]` (a single NUL terminator). fn empty_raw_bytes() -> &'static [u8] { &[] } } // *** StringFromBytesMut *** /// Trait for string types that can be converted from bytes to mutable string reference pub trait StringFromBytesMut: StringToFromBytes { /// Convert bytes to a mutable string reference fn bytes_as_self_mut(bytes: &mut [u8]) -> &mut Self; } // *** StringLike *** /// Trait for string types that provide various operations pub trait StringLike where Self: Sized, { /// Borrow a string reference as `&S` fn as_ref_type(&self) -> &S; /// Borrow the string as bytes fn as_bytes(&self) -> &[u8]; /// Consume a string and convert it to an owned string. `S::to_owned` is called on Borrowed/Inlined/RefCounted variants. /// Boxed variants are converted directly into `S::Owned` (most likely without copy or allocation). fn into_owned_type(self) -> S::Owned where S::Owned: From>; /// Convert a string reference to an owned string. `S::to_owned` is called on all variants. fn to_owned_type(&self) -> S::Owned; /// Returns true if this is an empty string fn is_empty(&self) -> bool { self.as_bytes().is_empty() } /// Returns the length of this string in bytes fn len(&self) -> usize { self.as_bytes().len() } /// Borrow the string as an `&str` fn as_str(&self) -> &str where S: AsRef, { self.as_ref_type().as_ref() } #[cfg(all(feature = "std", feature = "osstr"))] /// Borrow the string as an `&OsStr` fn as_os_str(&self) -> &OsStr where S: AsRef, { self.as_ref_type().as_ref() } #[cfg(all(feature = "std", feature = "path"))] /// Borrow the string as a `&Path` fn as_path(&self) -> &Path where S: AsRef, { self.as_ref_type().as_ref() } #[cfg(feature = "cstr")] /// Borrow the string as a `&CStr` fn as_c_str(&self) -> &CStr where S: AsRef, { self.as_ref_type().as_ref() } /// Consume a string and convert it to a [String] fn into_string(self) -> String where S::Owned: Into + From>, { self.into_owned_type().into() } #[cfg(all(feature = "std", feature = "osstr"))] /// Consume a string and convert it to an [OsString] fn into_os_string(self) -> OsString where S::Owned: Into + From>, { self.into_owned_type().into() } #[cfg(all(feature = "std", feature = "path"))] /// Consume a string and convert it to a [PathBuf] fn into_path_buf(self) -> PathBuf where S::Owned: Into + From>, { self.into_owned_type().into() } #[cfg(feature = "cstr")] /// Consume a string and convert it to a [CString] fn into_c_string(self) -> CString where S::Owned: Into + From>, { self.into_owned_type().into() } #[cfg(feature = "bytes")] /// Consume a string and convert it to a [`Vec`] fn into_vec_bytes(self) -> Vec where S::Owned: Into> + From>, { self.into_owned_type().into() } /// Convert a string reference to a [String] fn to_string(&self) -> String where S::Owned: Into, { self.to_owned_type().into() } #[cfg(all(feature = "std", feature = "osstr"))] /// Convert a string reference to an [OsString] fn to_os_string(&self) -> OsString where S::Owned: Into, { self.to_owned_type().into() } #[cfg(all(feature = "std", feature = "path"))] /// Convert a string reference to a [PathBuf] fn to_path_buf(&self) -> PathBuf where S::Owned: Into, { self.to_owned_type().into() } #[cfg(feature = "cstr")] /// Convert a string reference to a [CString] fn to_c_string(&self) -> CString where S::Owned: Into, { self.to_owned_type().into() } #[cfg(feature = "bytes")] /// Convert a string reference to a [`Vec`] fn to_vec_bytes(&self) -> Vec where S::Owned: Into>, { self.to_owned_type().into() } } ================================================ FILE: inline_flexstr/Cargo.toml ================================================ [package] name = "inline_flexstr" version = "0.1.9" authors = ["Scott Meeuwsen "] license = "MIT OR Apache-2.0" description = "A simple to use, copy/clone-efficient inline string type for Rust" repository = "https://github.com/nu11ptr/flexstr/inline_flexstr" documentation = "https://docs.rs/inline_flexstr" keywords = ["string", "inline"] categories = [ "data-structures", "memory-management", "no-std", "text-processing", ] readme = "README.md" edition = "2024" [features] default = ["std", "str"] prost = ["dep:prost"] sqlx_pg_arrays = ["sqlx", "sqlx/postgres"] utoipa = ["dep:utoipa"] zeroize = ["dep:zeroize"] # Does not use and forbids all unsafe code (unless windows_min_unsafe is also enabled, but that only impacts Windows) safe = ["flexstr_support/safe"] std = ["flexstr_support/std", "serde?/std", "prost?/std"] # Uses the minimum unsafe code possible to support OsStr/Path on Windows. Doesn't impact any other string types or operating systems. win_min_unsafe = ["flexstr_support/win_min_unsafe", "safe"] # String type features bytes = ["flexstr_support/bytes"] cstr = ["flexstr_support/cstr"] osstr = ["flexstr_support/osstr", "std"] path = ["flexstr_support/path", "osstr"] str = ["flexstr_support/str"] [dependencies.flexstr_support] path = "../flexstr_support" version = "0.1.4" default-features = false [dependencies.prost] version = "0.14" default-features = false optional = true [dependencies.serde] version = "1" default-features = false optional = true [dependencies.sqlx] version = "0.8" default-features = false optional = true [dependencies.utoipa] version = "5" optional = true [dependencies.zeroize] version = "1" default-features = false optional = true [dev-dependencies.serde_json] version = "1" [package.metadata.docs.rs] features = [ "bytes", "cstr", "osstr", "path", "prost", "serde", "std", "str", "utoipa", "zeroize", ] rustdoc-args = ["--cfg", "docsrs"] ================================================ FILE: inline_flexstr/README.md ================================================ # inline_flexstr [![Crate](https://img.shields.io/crates/v/inline_flexstr)](https://crates.io/crates/inline_flexstr) [![Docs](https://docs.rs/inline_flexstr/badge.svg)](https://docs.rs/inline_flexstr) [![Build](https://github.com/nu11ptr/flexstr/workflows/CI/badge.svg)](https://github.com/nu11ptr/flexstr/actions) [![codecov](https://codecov.io/gh/nu11ptr/flexstr/branch/master/graph/badge.svg?token=yUZ8v2tKPd)](https://codecov.io/gh/nu11ptr/flexstr) A simple to use, copy/clone-efficient inline string type for Rust ## Overview A fast inline string crate. Essentially it never allocates on the heap, but is limited currently to strings that are 2 bytes less than 3 machine words in length (10 bytes on 32-bit, 22 bytes on 64-bit). It is generic over all the Rust string types (`str`, `CStr`, `OsStr`, `Path`, `[u8]`). ## Features * Implements `Copy` * O(1) copy/clone * Mutable * Same size a a `String` (3 words wide, even inside an `Option`) * No external dependencies * NOTE: `serde`/`sqlx`/`prost` optional for serialization/deserialization/encode/decode * Optional `no_std` * Optional `safe` feature that forbids any `unsafe` usage * NOTE: This does induce a performance penalty, as would be expected * NOTE 2: `OsStr`/`Path` support on Windows requires at least one unsafe call (`win_min_unsafe` feature). * Handles all Rust string types (`str`, `CStr`, `OsStr`, `Path`, `[u8]`) ## Cargo Features * **prost** = Enable `prost::Message` implementation for protobuf encoding/decoding * **safe** = Use all safe functions and add `forbid(unsafe_code)` (performance penalty) * **sqlx** = Enable sqlx encode/decode/type support * **sqlx_pg_arrays** = Enable sqlx Postgres array support (implies `sqlx` feature) * **std** = Use `std` (default) * **serde** = add `serde` dependency and adds serialization/deserialization * **win_min_unsafe** = enables the minimum necessary unsafe code on Windows to support `OsStr`/`Path`. No other string types or operating systems are impacted (implies `safe` feature). * NOTE: The code will refuse to compile if this is not specified when ALL the following conditions are true: * The `safe` feature is enabled * The `osstr` and/or `path` feature(s) are enabled * Compiling for Windows ### String Type Features: * **str** = Enable `str`-based strings (default) * **bytes** = Enable byte-based strings (`[u8]`) * **cstr** = Enable `CStr`-based strings * **osstr** = Enable `OsStr`-based strings * **path** = Enable `Path`-based strings (implies `osstr` feature) ## Example ```rust use inline_flexstr::*; let hello: InlineStr = "hello".try_into().expect("string too long"); let world: InlineCStr = c"world!".try_into().expect("string too long"); println!("{hello} {world:?}"); ``` ## Performance In general, it performs quite well given that it is mostly just a thin wrapper over the stdlib. See the [benchmarks](../benchmarks/README.md) page for more details. ## AI Usage The code was written by hand with care (although AI tab completion was used). Any contributions should be completely understood by the contributor, whether AI assisted or not. The tests on the otherhand were 90%+ generated by AI under my instruction. I've done a cursory review for sanity, but they need more work. Volunteers welcome. ## Status This is currently experimental, however, I will be using this at a startup in production code, so it will become production ready at some point. ## Contributions Contributions are welcome so long as they align to my vision for this crate. Currently, it does most of what I want it to do (outside of string construction and mutation, but I'm not ready to start on that yet). ## License This project is licensed optionally under either: * Apache License, Version 2.0, (LICENSE-APACHE or ) * MIT license (LICENSE-MIT or ) ================================================ FILE: inline_flexstr/src/bytes.rs ================================================ use alloc::borrow::Cow; #[cfg(not(feature = "std"))] use alloc::vec::Vec; use core::str::FromStr; use crate::inline::{InlineFlexStr, TooLongForInlining, inline_partial_eq_impl}; use flexstr_support::StringToFromBytes; /// Inline `[u8]` type pub type InlineBytes = InlineFlexStr<[u8]>; // *** TryFrom for InlineFlexStr *** // NOTE: Cannot be implemented generically because of impl TryFrom for T where U: Into impl<'s> TryFrom<&'s [u8]> for InlineFlexStr<[u8]> { type Error = TooLongForInlining; #[inline] fn try_from(s: &'s [u8]) -> Result { InlineFlexStr::try_from_type(s) } } impl<'s> TryFrom<&'s str> for InlineFlexStr<[u8]> { type Error = TooLongForInlining; #[inline] fn try_from(s: &'s str) -> Result { InlineFlexStr::try_from_type(s.as_bytes()) } } // *** PartialEq *** inline_partial_eq_impl!([u8], [u8]); inline_partial_eq_impl!(&[u8], [u8]); inline_partial_eq_impl!(Vec, [u8]); inline_partial_eq_impl!(Cow<'_, [u8]>, [u8]); // *** AsRef *** impl AsRef<[u8]> for InlineFlexStr where S: AsRef<[u8]>, { fn as_ref(&self) -> &[u8] { self.as_ref_type().as_ref() } } // *** FromStr *** impl FromStr for InlineFlexStr<[u8]> { type Err = TooLongForInlining; fn from_str(s: &str) -> Result { InlineFlexStr::try_from_type(s.as_bytes()) } } ================================================ FILE: inline_flexstr/src/cstr.rs ================================================ use alloc::{borrow::Cow, ffi::CString}; use core::{ ffi::{CStr, FromBytesWithNulError}, fmt, str::FromStr, }; use crate::inline::{INLINE_CAPACITY, InlineFlexStr, TooLongForInlining, inline_partial_eq_impl}; use flexstr_support::{InteriorNulError, StringToFromBytes}; /// Inline `CStr` type pub type InlineCStr = InlineFlexStr; // *** TooLongOrNulError *** /// Error type returned when a C String is too long for inline storage or has an interior NUL byte. #[derive(Debug)] pub enum TooLongOrNulError { /// The C String is too long for inline storage TooLong(TooLongForInlining), /// The C String has an interior NUL byte NulError(InteriorNulError), } impl fmt::Display for TooLongOrNulError { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { TooLongOrNulError::TooLong(e) => e.fmt(f), TooLongOrNulError::NulError(e) => e.fmt(f), } } } impl core::error::Error for TooLongOrNulError {} // *** InlineFlexStr *** impl InlineFlexStr { fn try_from_bytes_without_nul(bytes: &[u8]) -> Result { if bytes.len() < INLINE_CAPACITY { let mut inline = Self::from_bytes(bytes); inline.append_nul_zero(); Ok(inline) } else { Err(TooLongOrNulError::TooLong(TooLongForInlining { length: bytes.len(), inline_capacity: INLINE_CAPACITY, })) } } /// Attempt to create an inlined string from borrowed bytes with or without a trailing NUL byte. pub fn try_from_bytes_with_or_without_nul(bytes: &[u8]) -> Result { match CStr::from_bytes_with_nul(bytes) { Ok(cstr) => Self::try_from_type(cstr).map_err(TooLongOrNulError::TooLong), Err(FromBytesWithNulError::NotNulTerminated) => Self::try_from_bytes_without_nul(bytes), Err(FromBytesWithNulError::InteriorNul { position }) => { Err(TooLongOrNulError::NulError(InteriorNulError { position })) } } } /// Borrow the CStr as bytes with a trailing NUL byte #[inline] pub fn as_bytes_with_nul(&self) -> &[u8] { self.as_raw_bytes() } } // *** TryFrom for InlineFlexStr *** // NOTE: Cannot be implemented generically because of impl TryFrom for T where U: Into impl<'s> TryFrom<&'s CStr> for InlineFlexStr { type Error = TooLongForInlining; #[inline] fn try_from(s: &'s CStr) -> Result { InlineFlexStr::try_from_type(s) } } impl<'s> TryFrom<&'s str> for InlineFlexStr { type Error = TooLongOrNulError; #[inline] fn try_from(s: &'s str) -> Result { InlineFlexStr::try_from_bytes_with_or_without_nul(s.as_bytes()) } } impl<'s> TryFrom<&'s [u8]> for InlineFlexStr { type Error = TooLongOrNulError; #[inline] fn try_from(bytes: &'s [u8]) -> Result { InlineFlexStr::try_from_bytes_with_or_without_nul(bytes) } } // *** PartialEq *** inline_partial_eq_impl!(CStr, CStr); inline_partial_eq_impl!(&CStr, CStr); inline_partial_eq_impl!(CString, CStr); inline_partial_eq_impl!(Cow<'_, CStr>, CStr); // *** AsRef *** impl AsRef for InlineFlexStr where S: AsRef, { fn as_ref(&self) -> &CStr { self.as_ref_type().as_ref() } } // *** FromStr *** impl FromStr for InlineFlexStr { type Err = TooLongOrNulError; fn from_str(s: &str) -> Result { InlineFlexStr::try_from_bytes_with_or_without_nul(s.as_bytes()) } } ================================================ FILE: inline_flexstr/src/inline.rs ================================================ use alloc::borrow::{Borrow, BorrowMut}; #[cfg(not(feature = "std"))] use alloc::{boxed::Box, string::String}; use core::cmp::Ordering; use core::fmt; use core::hash::{Hash, Hasher}; use core::marker::PhantomData; use core::ops::{Deref, DerefMut, Index, IndexMut}; use core::slice::SliceIndex; #[cfg(feature = "std")] use std::{io, net::ToSocketAddrs}; use flexstr_support::{StringFromBytesMut, StringLike, StringToFromBytes}; #[cfg(feature = "serde")] use serde::{Deserialize, Deserializer, Serialize, Serializer}; macro_rules! inline_partial_eq_impl { ($type:ty, $str_type:ty) => { impl PartialEq<$type> for InlineFlexStr where S: PartialEq<$str_type>, { fn eq(&self, other: &$type) -> bool { S::eq(self, other) } } impl PartialEq> for $type where S: PartialEq<$str_type>, { fn eq(&self, other: &InlineFlexStr) -> bool { S::eq(other, self) } } }; } pub(crate) use inline_partial_eq_impl; // This must be the size of the String type minus 2 bytes for the length and discriminator /// The capacity of the [InlineFlexStr] type in bytes pub const INLINE_CAPACITY: usize = size_of::() - 2; // *** StringTooLongForInlining *** /// Error type returned when the string is too long for inline storage. #[derive(Debug)] pub struct TooLongForInlining { /// The length of the string pub length: usize, /// The capacity of the inline storage pub inline_capacity: usize, } impl fmt::Display for TooLongForInlining { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!( f, "string too long for inline storage: length={} inline_capacity={}", self.length, self.inline_capacity ) } } impl core::error::Error for TooLongForInlining {} // *** InlineFlexStr *** #[doc(alias = "InlineStr")] #[doc(alias = "InlineOsStr")] #[doc(alias = "InlinePath")] #[doc(alias = "InlineCStr")] #[doc(alias = "InlineBytes")] /// Inline bytes type - used to store small strings inline #[derive(Debug)] pub struct InlineFlexStr { inline: [u8; INLINE_CAPACITY], len: u8, marker: PhantomData, } impl InlineFlexStr { /// Attempt to create an inlined string from a borrowed string. Returns `None` if the string is too long. pub fn try_from_type(s: &S) -> Result { let bytes = S::self_as_raw_bytes(s); if bytes.len() <= INLINE_CAPACITY { Ok(Self::from_bytes(bytes)) } else { Err(TooLongForInlining { length: bytes.len(), inline_capacity: INLINE_CAPACITY, }) } } /// Create an empty InlineFlexStr suitable for use after zeroization. /// Uses `S::empty_raw_bytes()` to produce a valid empty value for each type /// (e.g., CStr requires a NUL terminator byte). #[cfg(feature = "zeroize")] pub fn zeroed() -> Self { Self::from_bytes(S::empty_raw_bytes()) } #[cfg(feature = "safe")] pub(crate) fn from_bytes(s: &[u8]) -> Self { let mut inline = [0u8; INLINE_CAPACITY]; let len = s.len(); // PANIC SAFETY: Caller responsible for ensuring the slice is not too long inline[..len].copy_from_slice(&s[..len]); Self { inline, len: len as u8, marker: PhantomData, } } #[cfg(not(feature = "safe"))] pub(crate) fn from_bytes(slice: &[u8]) -> Self { // Create an uninitialized array let mut inline = [core::mem::MaybeUninit::::uninit(); INLINE_CAPACITY]; let len = slice.len(); // SAFETY: There be dragons here! I have carefully inspected the code to ensure that it is safe IF and ONLY IF // len <= INLINE_CAPACITY (this is verified by the caller! which is why this is pub(crate) only). // [u8; N] and [MaybeUninit; N] are guranteed per docs to have the same size and layout. let inline = unsafe { // Copy the slice data core::ptr::copy_nonoverlapping(slice.as_ptr(), inline.as_mut_ptr() as *mut u8, len); // Fill the rest with zeros core::ptr::write_bytes(inline.as_mut_ptr().add(len), 0u8, INLINE_CAPACITY - len); // Transmute to a regular array core::mem::transmute::< [core::mem::MaybeUninit; INLINE_CAPACITY], [u8; INLINE_CAPACITY], >(inline) }; Self { inline, len: len as u8, marker: PhantomData, } } #[cfg(all(feature = "safe", feature = "cstr"))] #[inline(always)] pub(crate) fn append_nul_zero(&mut self) { // PANIC SAFETY: We know the length is valid and at least one byte shorter than the capacity self.inline[self.len as usize] = 0; self.len += 1; } #[cfg(all(not(feature = "safe"), feature = "cstr"))] #[inline(always)] pub(crate) fn append_nul_zero(&mut self) { // SAFETY: We know the length is valid and at least one byte shorter than the capacity unsafe { *self.inline.get_unchecked_mut(self.len as usize) = 0; } self.len += 1; } #[cfg(feature = "safe")] /// Borrow the inline bytes as a raw byte slice (NOTE: includes trailing NUL for CStr) pub fn as_raw_bytes(&self) -> &[u8] { &self.inline[..self.len as usize] } #[cfg(not(feature = "safe"))] /// Borrow the inline bytes as a raw byte slice (NOTE: includes trailing NUL for CStr) pub fn as_raw_bytes(&self) -> &[u8] { // SAFETY: The length cannot be changed after initialization, so we know it is valid unsafe { self.inline.get_unchecked(..self.len as usize) } } #[cfg(feature = "safe")] fn as_raw_bytes_mut(&mut self) -> &mut [u8] { &mut self.inline[..self.len as usize] } #[cfg(not(feature = "safe"))] fn as_raw_bytes_mut(&mut self) -> &mut [u8] { // SAFETY: The length cannot be changed after initialization, so we know it is valid unsafe { self.inline.get_unchecked_mut(..self.len as usize) } } /// Borrow a string reference as `&S` pub fn as_ref_type(&self) -> &S { S::bytes_as_self(self.as_raw_bytes()) } /// Borrow the inline bytes as bytes pub fn as_bytes(&self) -> &[u8] { S::self_as_bytes(self.as_ref_type()) } /// Consume a string and convert it to an owned string. pub fn into_owned_type(self) -> S::Owned where S::Owned: From>, { self.to_owned_type() } /// Convert a string reference to an owned string. pub fn to_owned_type(&self) -> S::Owned { self.as_ref_type().to_owned() } } impl InlineFlexStr { /// Borrow the inline string as a mutable string reference pub fn as_mut_type(&mut self) -> &mut S { S::bytes_as_self_mut(self.as_raw_bytes_mut()) } } // *** StringLike *** impl StringLike for InlineFlexStr { fn as_ref_type(&self) -> &S { ::as_ref_type(self) } fn as_bytes(&self) -> &[u8] { ::as_bytes(self) } fn into_owned_type(self) -> S::Owned where S::Owned: From>, { ::into_owned_type(self) } fn to_owned_type(&self) -> S::Owned { ::to_owned_type(self) } } // *** Default *** impl Default for InlineFlexStr where for<'a> &'a S: Default, { fn default() -> Self { Self::from_bytes(S::self_as_raw_bytes(Default::default())) } } // *** Copy *** impl Copy for InlineFlexStr {} // *** Clone *** impl Clone for InlineFlexStr { fn clone(&self) -> Self { *self } } // *** Hash *** impl Hash for InlineFlexStr where S: Hash, { fn hash(&self, state: &mut H) { self.as_ref_type().hash(state); } } // *** AsMut *** impl AsMut for InlineFlexStr { #[inline] fn as_mut(&mut self) -> &mut S { self.as_mut_type() } } // *** Deref *** impl Deref for InlineFlexStr { type Target = S; fn deref(&self) -> &Self::Target { self.as_ref_type() } } // *** DerefMut *** impl DerefMut for InlineFlexStr { fn deref_mut(&mut self) -> &mut Self::Target { self.as_mut_type() } } // *** Display *** impl fmt::Display for InlineFlexStr where S: fmt::Display, { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { S::fmt(self.as_ref_type(), f) } } // *** Borrow / BorrowMut *** impl Borrow for InlineFlexStr { fn borrow(&self) -> &S { self.as_ref_type() } } impl BorrowMut for InlineFlexStr { fn borrow_mut(&mut self) -> &mut S { self.as_mut_type() } } // *** PartialEq / Eq *** impl PartialEq for InlineFlexStr where S: PartialEq, { fn eq(&self, other: &Self) -> bool { S::eq(self.as_ref_type(), other.as_ref_type()) } } impl Eq for InlineFlexStr where S: Eq {} // *** PartialOrd / Ord *** impl PartialOrd for InlineFlexStr where S: PartialOrd, { fn partial_cmp(&self, other: &Self) -> Option { S::partial_cmp(self.as_ref_type(), other.as_ref_type()) } } impl Ord for InlineFlexStr where S: Ord, { fn cmp(&self, other: &Self) -> Ordering { S::cmp(self.as_ref_type(), other.as_ref_type()) } } // *** Index / IndexMut *** impl> Index for InlineFlexStr where S: Index, { type Output = S::Output; fn index(&self, index: I) -> &Self::Output { S::index(self.as_ref_type(), index) } } impl> IndexMut for InlineFlexStr where S: IndexMut, { fn index_mut(&mut self, index: I) -> &mut Self::Output { S::index_mut(self.as_mut_type(), index) } } // *** ToSocketAddrs *** #[cfg(feature = "std")] impl ToSocketAddrs for InlineFlexStr where S: ToSocketAddrs, { type Iter = ::Iter; fn to_socket_addrs(&self) -> io::Result<::Iter> { self.as_ref_type().to_socket_addrs() } } // *** Serialize *** #[cfg(feature = "serde")] impl Serialize for InlineFlexStr where S: Serialize, { fn serialize(&self, serializer: SER) -> Result { S::serialize(self.as_ref_type(), serializer) } } // *** Zeroize *** #[cfg(feature = "zeroize")] impl zeroize::Zeroize for InlineFlexStr { fn zeroize(&mut self) { self.inline.zeroize(); self.len.zeroize(); } } // *** Deserialize *** #[cfg(feature = "serde")] impl<'de, S: ?Sized + StringToFromBytes> Deserialize<'de> for InlineFlexStr where Box: Deserialize<'de>, { fn deserialize>(deserializer: D) -> Result { // TODO: This is inefficent, we should ideally deserialize directly into the InlineFlexStr type. // However, Deserialize is not implmented for all types of &S, so likely that would mean // a non-generic implementation for each type of S, likely via a Visitor pattern. That also // means we'd have to understand how serde serializes each type, and this might be brittle if // that ever changes (for example, OsStr is a bit special). For now, this is a quick way to // make it work, albeit at the cost of an allocation and a copy. let s = Box::deserialize(deserializer)?; InlineFlexStr::try_from_type(&*s).map_err(|_| { let bytes = S::self_as_raw_bytes(&*s); serde::de::Error::invalid_length(bytes.len(), &"string too long for inline storage") }) } } ================================================ FILE: inline_flexstr/src/lib.rs ================================================ #![cfg_attr(not(feature = "std"), no_std)] #![cfg_attr( all( not(all(feature = "win_min_unsafe", target_family = "windows")), feature = "safe" ), forbid(unsafe_code) )] #![cfg_attr(docsrs, feature(doc_cfg))] #![warn(missing_docs)] //! A simple to use, copy/clone-efficient inline string type for Rust extern crate alloc; #[cfg(feature = "cstr")] #[doc = include_str!("../README.md")] mod readme_tests {} #[cfg(feature = "bytes")] /// Module for byte-based strings (`[u8]`) mod bytes; #[cfg(feature = "cstr")] /// Module for `CStr`-based strings mod cstr; /// Module for inline strings mod inline; #[cfg(all(feature = "std", feature = "osstr"))] /// Module for `OsStr`-based strings mod osstr; #[cfg(all(feature = "std", feature = "path"))] /// Module for `Path`-based strings mod path; #[cfg(feature = "str")] /// Module for `str`-based strings mod str; #[cfg(feature = "bytes")] pub use bytes::InlineBytes; #[cfg(feature = "cstr")] pub use cstr::{InlineCStr, TooLongOrNulError}; #[cfg(feature = "cstr")] pub use flexstr_support::InteriorNulError; pub use flexstr_support::StringLike; #[cfg(all(feature = "std", feature = "osstr"))] pub use osstr::InlineOsStr; #[cfg(all(feature = "std", feature = "path"))] pub use path::InlinePath; #[cfg(feature = "str")] pub use str::{InlineStr, TooLongOrUtf8Error}; pub use inline::{INLINE_CAPACITY, InlineFlexStr, TooLongForInlining}; ================================================ FILE: inline_flexstr/src/osstr.rs ================================================ use alloc::borrow::Cow; use core::str::FromStr; use std::ffi::{OsStr, OsString}; use std::path::Path; use crate::inline::{InlineFlexStr, TooLongForInlining, inline_partial_eq_impl}; use flexstr_support::StringToFromBytes; /// Inline `OsStr` type pub type InlineOsStr = InlineFlexStr; // *** TryFrom for InlineFlexStr *** // NOTE: Cannot be implemented generically because of impl TryFrom for T where U: Into impl<'s> TryFrom<&'s OsStr> for InlineFlexStr { type Error = TooLongForInlining; #[inline] fn try_from(s: &'s OsStr) -> Result { InlineFlexStr::try_from_type(s) } } impl<'s> TryFrom<&'s str> for InlineFlexStr { type Error = TooLongForInlining; #[inline] fn try_from(s: &'s str) -> Result { InlineFlexStr::try_from_type(OsStr::new(s)) } } impl<'s> TryFrom<&'s Path> for InlineFlexStr { type Error = TooLongForInlining; #[inline] fn try_from(p: &'s Path) -> Result { InlineFlexStr::try_from_type(p.as_os_str()) } } // *** PartialEq *** inline_partial_eq_impl!(OsStr, OsStr); inline_partial_eq_impl!(&OsStr, OsStr); inline_partial_eq_impl!(OsString, OsStr); inline_partial_eq_impl!(Cow<'_, OsStr>, OsStr); // *** AsRef *** impl AsRef for InlineFlexStr where S: AsRef, { fn as_ref(&self) -> &OsStr { self.as_ref_type().as_ref() } } // *** FromStr *** impl FromStr for InlineFlexStr { type Err = TooLongForInlining; fn from_str(s: &str) -> Result { InlineFlexStr::try_from_type(OsStr::new(s)) } } ================================================ FILE: inline_flexstr/src/path.rs ================================================ use alloc::borrow::Cow; use core::str::FromStr; use std::{ ffi::OsStr, path::{Path, PathBuf}, }; use crate::inline::{InlineFlexStr, TooLongForInlining, inline_partial_eq_impl}; use flexstr_support::StringToFromBytes; /// Inline `Path` type pub type InlinePath = InlineFlexStr; // *** TryFrom for InlineFlexStr *** // NOTE: Cannot be implemented generically because of impl TryFrom for T where U: Into impl<'s> TryFrom<&'s Path> for InlineFlexStr { type Error = TooLongForInlining; #[inline] fn try_from(s: &'s Path) -> Result { InlineFlexStr::try_from_type(s) } } impl<'s> TryFrom<&'s str> for InlineFlexStr { type Error = TooLongForInlining; #[inline] fn try_from(s: &'s str) -> Result { InlineFlexStr::try_from_type(Path::new(s)) } } impl<'s> TryFrom<&'s OsStr> for InlineFlexStr { type Error = TooLongForInlining; #[inline] fn try_from(s: &'s OsStr) -> Result { InlineFlexStr::try_from_type(Path::new(s)) } } // *** PartialEq *** inline_partial_eq_impl!(Path, Path); inline_partial_eq_impl!(&Path, Path); inline_partial_eq_impl!(PathBuf, Path); inline_partial_eq_impl!(Cow<'_, Path>, Path); // *** AsRef *** impl AsRef for InlineFlexStr where S: AsRef, { fn as_ref(&self) -> &Path { self.as_ref_type().as_ref() } } // *** FromStr *** impl FromStr for InlineFlexStr { type Err = TooLongForInlining; fn from_str(s: &str) -> Result { InlineFlexStr::try_from_type(Path::new(s)) } } ================================================ FILE: inline_flexstr/src/str.rs ================================================ use alloc::{borrow::Cow, fmt, string::String}; use core::{ error::Error, str::{FromStr, Utf8Error}, }; #[cfg(feature = "std")] use std::{ffi::OsStr, path::Path}; use crate::inline::{InlineFlexStr, TooLongForInlining, inline_partial_eq_impl}; use flexstr_support::StringToFromBytes; /// Inline `str` type pub type InlineStr = InlineFlexStr; // *** TooLongOrUtf8Error *** /// Error type returned when a string is too long for inline storage or has an invalid UTF-8 sequence. #[derive(Debug)] pub enum TooLongOrUtf8Error { /// The string is too long for inline storage TooLong(TooLongForInlining), /// The string has an invalid UTF-8 sequence Utf8Error(Utf8Error), } impl fmt::Display for TooLongOrUtf8Error { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { TooLongOrUtf8Error::TooLong(e) => e.fmt(f), TooLongOrUtf8Error::Utf8Error(e) => e.fmt(f), } } } impl Error for TooLongOrUtf8Error {} // *** TryFrom for InlineFlexStr *** // NOTE: Cannot be implemented generically because of impl TryFrom for T where U: Into impl<'s> TryFrom<&'s str> for InlineFlexStr { type Error = TooLongForInlining; #[inline] fn try_from(s: &'s str) -> Result { InlineFlexStr::try_from_type(s) } } impl<'s> TryFrom<&'s [u8]> for InlineFlexStr { type Error = TooLongOrUtf8Error; #[inline] fn try_from(s: &'s [u8]) -> Result { match str::from_utf8(s) { Ok(s) => InlineFlexStr::try_from_type(s).map_err(TooLongOrUtf8Error::TooLong), Err(e) => Err(TooLongOrUtf8Error::Utf8Error(e)), } } } #[cfg(feature = "std")] impl<'s> TryFrom<&'s OsStr> for InlineFlexStr { type Error = TooLongOrUtf8Error; #[inline] fn try_from(s: &'s OsStr) -> Result { match s.try_into() { Ok(s) => InlineFlexStr::try_from_type(s).map_err(TooLongOrUtf8Error::TooLong), Err(e) => Err(TooLongOrUtf8Error::Utf8Error(e)), } } } #[cfg(feature = "std")] impl<'s> TryFrom<&'s Path> for InlineFlexStr { type Error = TooLongOrUtf8Error; #[inline] fn try_from(s: &'s Path) -> Result { match s.as_os_str().try_into() { Ok(s) => InlineFlexStr::try_from_type(s).map_err(TooLongOrUtf8Error::TooLong), Err(e) => Err(TooLongOrUtf8Error::Utf8Error(e)), } } } // *** PartialEq *** inline_partial_eq_impl!(str, str); inline_partial_eq_impl!(&str, str); inline_partial_eq_impl!(String, str); inline_partial_eq_impl!(Cow<'_, str>, str); // *** AsRef *** impl AsRef for InlineFlexStr where S: AsRef, { fn as_ref(&self) -> &str { self.as_ref_type().as_ref() } } // *** FromStr *** impl FromStr for InlineFlexStr { type Err = TooLongForInlining; #[inline] fn from_str(s: &str) -> Result { InlineFlexStr::try_from_type(s) } } // *** Prost *** #[cfg(feature = "prost")] #[allow(deprecated)] // DecodeError::new is deprecated in prost 0.14 with no public replacement yet impl prost::Message for InlineFlexStr { fn encode_raw(&self, buf: &mut impl prost::bytes::BufMut) where Self: Sized, { buf.put_slice(self.as_ref_type().as_bytes()); } fn merge_field( &mut self, tag: u32, wire_type: prost::encoding::WireType, buf: &mut impl prost::bytes::Buf, ctx: prost::encoding::DecodeContext, ) -> Result<(), prost::DecodeError> where Self: Sized, { prost::encoding::skip_field(wire_type, tag, buf, ctx) } fn encoded_len(&self) -> usize { self.as_ref_type().len() } fn clear(&mut self) { *self = Default::default(); } fn merge(&mut self, mut buf: impl prost::bytes::Buf) -> Result<(), prost::DecodeError> where Self: Sized, { let bytes = buf.copy_to_bytes(buf.remaining()); let s = core::str::from_utf8(&bytes) .map_err(|_| prost::DecodeError::new("invalid UTF-8 in string field"))?; *self = InlineFlexStr::try_from_type(s) .map_err(|_| prost::DecodeError::new("string too long for inline storage"))?; Ok(()) } fn merge_length_delimited( &mut self, mut buf: impl prost::bytes::Buf, ) -> Result<(), prost::DecodeError> where Self: Sized, { let len = prost::encoding::decode_varint(&mut buf)? as usize; if buf.remaining() < len { return Err(prost::DecodeError::new("buffer underflow")); } self.merge(buf.take(len)) } } // *** SQLx *** #[cfg(feature = "sqlx")] impl<'r, DB: sqlx::Database> sqlx::Decode<'r, DB> for InlineFlexStr where &'r str: sqlx::Decode<'r, DB>, { fn decode( value: ::ValueRef<'r>, ) -> Result { let value = <&str as sqlx::Decode>::decode(value)?; Ok(value.try_into()?) } } #[cfg(feature = "sqlx")] impl<'r, DB: sqlx::Database> sqlx::Encode<'r, DB> for InlineFlexStr where String: sqlx::Encode<'r, DB>, { fn encode_by_ref( &self, buf: &mut ::ArgumentBuffer<'r>, ) -> Result { // There might be a more efficient way to do this (or not?), but the lifetimes seem to be constraining // us to using an owned type here. Works at the cost of an allocation/copy. >::encode(self.to_string(), buf) } fn size_hint(&self) -> usize { self.len() } } #[cfg(feature = "sqlx")] impl sqlx::Type for InlineFlexStr where str: sqlx::Type, { fn type_info() -> ::TypeInfo { >::type_info() } fn compatible(ty: &::TypeInfo) -> bool { >::compatible(ty) } } #[cfg(all(feature = "sqlx", feature = "sqlx_pg_arrays"))] impl sqlx::postgres::PgHasArrayType for InlineFlexStr where for<'a> &'a str: sqlx::postgres::PgHasArrayType, { fn array_type_info() -> sqlx::postgres::PgTypeInfo { <&str as sqlx::postgres::PgHasArrayType>::array_type_info() } fn array_compatible(ty: &sqlx::postgres::PgTypeInfo) -> bool { <&str as sqlx::postgres::PgHasArrayType>::array_compatible(ty) } } // *** Utoipa *** #[cfg(feature = "utoipa")] impl utoipa::PartialSchema for InlineFlexStr { fn schema() -> utoipa::openapi::RefOr { utoipa::openapi::schema::ObjectBuilder::new() .schema_type(utoipa::openapi::schema::SchemaType::new( utoipa::openapi::schema::Type::String, )) .into() } } #[cfg(feature = "utoipa")] impl utoipa::ToSchema for InlineFlexStr { fn name() -> Cow<'static, str> { Cow::Borrowed("String") } } ================================================ FILE: inline_flexstr/tests/common/as_ref.rs ================================================ #![allow(dead_code)] use inline_flexstr::InlineFlexStr; /// Test AsRef<[u8]> for InlineFlexStr<[u8]> /// Input should be small enough to inline #[cfg(feature = "bytes")] pub fn test_as_ref_bytes(s: &'static [u8]) { let inline_str = InlineFlexStr::<[u8]>::try_from_type(s) .expect("test input should be small enough to inline"); let bytes_ref: &[u8] = inline_str.as_ref(); assert_eq!(bytes_ref, s); } /// Test AsRef for InlineFlexStr /// Input should be small enough to inline #[cfg(all(feature = "std", feature = "osstr"))] pub fn test_as_ref_osstr(s: &'static std::ffi::OsStr) { let inline_str = InlineFlexStr::::try_from_type(s) .expect("test input should be small enough to inline"); let os_str_ref: &std::ffi::OsStr = inline_str.as_ref(); assert_eq!(os_str_ref, s); } /// Test AsRef for InlineFlexStr /// Input should be small enough to inline #[cfg(all(feature = "std", feature = "path"))] pub fn test_as_ref_path(s: &'static std::path::Path) { let inline_str = InlineFlexStr::::try_from_type(s) .expect("test input should be small enough to inline"); let path_ref: &std::path::Path = inline_str.as_ref(); assert_eq!(path_ref, s); } /// Test AsRef for InlineFlexStr /// Input should be small enough to inline #[cfg(feature = "cstr")] pub fn test_as_ref_cstr(s: &'static core::ffi::CStr) { let inline_str = InlineFlexStr::::try_from_type(s) .expect("test input should be small enough to inline"); let cstr_ref: &core::ffi::CStr = inline_str.as_ref(); assert_eq!(cstr_ref.to_bytes(), s.to_bytes()); } /// Test AsRef for InlineFlexStr /// Input should be small enough to inline #[cfg(feature = "str")] pub fn test_as_ref_str(s: &'static str) { let inline_str = InlineFlexStr::::try_from_type(s) .expect("test input should be small enough to inline"); let str_ref: &str = inline_str.as_ref(); assert_eq!(str_ref, s); } ================================================ FILE: inline_flexstr/tests/common/basic.rs ================================================ #![allow(dead_code)] use core::fmt; use flexstr_support::{StringLike, StringToFromBytes}; use inline_flexstr::InlineFlexStr; /// Test creation from inline string pub fn test_creation_from_inline(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, { let inline_str = InlineFlexStr::try_from_type(s).unwrap(); assert_eq!(inline_str.as_ref_type(), s); } /// Test empty string creation pub fn test_empty(empty: &'static S) where S: ?Sized + StringToFromBytes, InlineFlexStr: StringLike, { let inline_str = InlineFlexStr::try_from_type(empty).unwrap(); assert!(StringLike::is_empty(&inline_str)); assert_eq!(StringLike::len(&inline_str), 0); } /// Test accessor methods pub fn test_accessors(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, InlineFlexStr: StringLike, { let inline_str = InlineFlexStr::try_from_type(s).unwrap(); // Test as_ref_type assert_eq!(inline_str.as_ref_type(), s); // Test as_bytes let bytes = inline_str.as_bytes(); assert_eq!(bytes, S::self_as_bytes(s)); // Test as_raw_bytes let raw_bytes = inline_str.as_raw_bytes(); assert_eq!(raw_bytes, S::self_as_raw_bytes(s)); // Test len assert_eq!(StringLike::len(&inline_str), s.self_as_bytes().len()); // Test is_empty assert_eq!( StringLike::is_empty(&inline_str), s.self_as_bytes().is_empty() ); } /// Test cloning pub fn test_clone(s: &'static S) where S: ?Sized + StringToFromBytes + PartialEq + fmt::Debug, { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let cloned = inline_str; assert_eq!(inline_str, cloned); } /// Test Default implementation /// Note: This test is only applicable for types where `&S: Default` pub fn test_default() where S: ?Sized + StringToFromBytes, for<'a> &'a S: Default, InlineFlexStr: StringLike, { let inline_str = InlineFlexStr::default(); assert!(StringLike::is_empty(&inline_str)); } ================================================ FILE: inline_flexstr/tests/common/borrow.rs ================================================ #![allow(dead_code)] use core::borrow::BorrowMut; use core::fmt; use flexstr_support::{StringFromBytesMut, StringToFromBytes}; use inline_flexstr::InlineFlexStr; /// Test BorrowMut implementation for InlineFlexStr pub fn test_borrow_mut(s: &'static S) where S: ?Sized + StringToFromBytes + StringFromBytesMut + PartialEq + fmt::Debug, { // Input should be small enough to inline let mut inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); // Test BorrowMut::borrow_mut() returns &mut S // For inlined strings, the pointer will be different (data is copied), but values should be equal let borrowed_mut: &mut S = inline_str.borrow_mut(); assert_eq!(borrowed_mut, s); } ================================================ FILE: inline_flexstr/tests/common/comparison.rs ================================================ #![allow(dead_code)] use core::fmt; use flexstr_support::StringToFromBytes; use inline_flexstr::InlineFlexStr; /// Test PartialEq implementation pub fn test_partial_eq(s1: &'static S, s2: &'static S) where S: ?Sized + StringToFromBytes + PartialEq + fmt::Debug, { // Inputs should be small enough to inline let inline_str1 = InlineFlexStr::try_from_type(s1).expect("test input should be small enough to inline"); let inline_str2 = InlineFlexStr::try_from_type(s2).expect("test input should be small enough to inline"); // Test equality if s1 == s2 { assert_eq!(inline_str1, inline_str2); } else { assert!(inline_str1 != inline_str2); } } /// Test Eq implementation pub fn test_eq(s: &'static S) where S: ?Sized + StringToFromBytes + PartialEq + Eq + fmt::Debug, { // Input should be small enough to inline let inline_str1 = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let inline_str2 = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); // Eq requires reflexivity, symmetry, transitivity // Reflexivity: a == a assert_eq!(inline_str1, inline_str2); // Symmetry assert_eq!(inline_str2, inline_str1); // Symmetry } /// Test PartialOrd implementation pub fn test_partial_ord(s1: &'static S, s2: &'static S) where S: ?Sized + StringToFromBytes + PartialOrd, { // Inputs should be small enough to inline let inline_str1 = InlineFlexStr::try_from_type(s1).expect("test input should be small enough to inline"); let inline_str2 = InlineFlexStr::try_from_type(s2).expect("test input should be small enough to inline"); // Test inputs should be comparable (partial_cmp should return Some) let ord = s1 .partial_cmp(s2) .expect("test inputs should be comparable"); assert_eq!(inline_str1.partial_cmp(&inline_str2), Some(ord)); } /// Test Ord implementation pub fn test_ord(s1: &'static S, s2: &'static S) where S: ?Sized + StringToFromBytes + Ord, { // Inputs should be small enough to inline let inline_str1 = InlineFlexStr::try_from_type(s1).expect("test input should be small enough to inline"); let inline_str2 = InlineFlexStr::try_from_type(s2).expect("test input should be small enough to inline"); assert_eq!(inline_str1.cmp(&inline_str2), s1.cmp(s2)); } /// Test Hash implementation consistency pub fn test_hash(s: &'static S) where S: ?Sized + StringToFromBytes + core::hash::Hash, { use core::hash::{Hash, Hasher}; use std::collections::hash_map::DefaultHasher; // Input should be small enough to inline let inline_str1 = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let mut hasher1 = DefaultHasher::new(); inline_str1.hash(&mut hasher1); let hash1 = hasher1.finish(); // Test that copying produces same hash let inline_str2 = inline_str1; let mut hasher2 = DefaultHasher::new(); inline_str2.hash(&mut hasher2); let hash2 = hasher2.finish(); assert_eq!(hash1, hash2); } /// Test comparison with &S pub fn test_comparison_with_ref(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); // Test equality with &S - compare through as_ref_type assert_eq!(inline_str.as_ref_type(), s); } /// Test comparison with S::Owned pub fn test_comparison_with_owned(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, S::Owned: PartialEq + AsRef, { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let owned = s.to_owned(); assert_eq!(inline_str.as_ref_type(), owned.as_ref()); } /// Test PartialEq with owned types (String, Cow, etc.) for InlineFlexStr pub fn test_partial_eq_with_owned_types(s: &'static S) where S: ?Sized + StringToFromBytes + PartialEq + fmt::Debug, S::Owned: PartialEq + AsRef, { use alloc::borrow::Cow; // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let owned: S::Owned = s.to_owned(); // Test InlineFlexStr == S::Owned (through PartialEq implementation) assert_eq!(inline_str.as_ref_type(), owned.as_ref()); // Test reverse comparison: S::Owned == InlineFlexStr assert_eq!(owned.as_ref(), inline_str.as_ref_type()); // Test with Cow::Owned let cow_owned: Cow<'_, S> = Cow::Owned(owned); assert_eq!(inline_str.as_ref_type(), cow_owned.as_ref()); assert_eq!(cow_owned.as_ref(), inline_str.as_ref_type()); // Test with Cow::Borrowed let cow_borrowed: Cow<'_, S> = Cow::Borrowed(s); assert_eq!(inline_str.as_ref_type(), cow_borrowed.as_ref()); assert_eq!(cow_borrowed.as_ref(), inline_str.as_ref_type()); } ================================================ FILE: inline_flexstr/tests/common/conversion.rs ================================================ #![allow(dead_code)] use core::fmt; use flexstr_support::{StringLike, StringToFromBytes}; use inline_flexstr::InlineFlexStr; /// Test to_owned_type conversion pub fn test_to_owned_type(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, S::Owned: PartialEq + AsRef, InlineFlexStr: StringLike, { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let owned = StringLike::to_owned_type(&inline_str); assert_eq!(owned.as_ref(), s); } /// Test into_owned_type conversion pub fn test_into_owned_type(s: &'static S) where S: ?Sized + StringToFromBytes + PartialEq + fmt::Debug, S::Owned: PartialEq + AsRef + From>, InlineFlexStr: StringLike, { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let owned = StringLike::into_owned_type(inline_str); assert_eq!(owned.as_ref(), s); } ================================================ FILE: inline_flexstr/tests/common/cstr_specific.rs ================================================ #![allow(dead_code)] use core::ffi::CStr; use inline_flexstr::{InlineFlexStr, TooLongOrNulError}; /// Test InlineFlexStr::try_from_bytes_with_or_without_nul with valid CStr (with NUL) pub fn test_try_from_bytes_with_nul() { let bytes = b"test\0"; let inline_str = InlineFlexStr::::try_from_bytes_with_or_without_nul(bytes).unwrap(); assert_eq!(inline_str.as_ref_type(), c"test"); } /// Test InlineFlexStr::try_from_bytes_with_or_without_nul with bytes without NUL pub fn test_try_from_bytes_without_nul() { let bytes = b"test"; let inline_str = InlineFlexStr::::try_from_bytes_with_or_without_nul(bytes).unwrap(); // Should have NUL appended assert_eq!(inline_str.as_bytes_with_nul(), b"test\0"); } /// Test InlineFlexStr::try_from_bytes_with_or_without_nul with interior NUL pub fn test_try_from_bytes_interior_nul() { let bytes = b"te\0st"; let err = InlineFlexStr::::try_from_bytes_with_or_without_nul(bytes).unwrap_err(); match err { TooLongOrNulError::NulError(e) => assert_eq!(e.position, 2), _ => panic!("Expected NulError"), } } /// Test InlineFlexStr::try_from_bytes_with_or_without_nul with too long string pub fn test_try_from_bytes_too_long() { let long_bytes = vec![b'x'; inline_flexstr::INLINE_CAPACITY]; let err = InlineFlexStr::::try_from_bytes_with_or_without_nul(&long_bytes).unwrap_err(); match err { TooLongOrNulError::TooLong(e) => { assert_eq!(e.length, inline_flexstr::INLINE_CAPACITY); assert_eq!(e.inline_capacity, inline_flexstr::INLINE_CAPACITY); } _ => panic!("Expected TooLong error"), } } /// Test as_bytes_with_nul pub fn test_as_bytes_with_nul(cstr: &'static CStr) { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(cstr).expect("test input should be small enough to inline"); let bytes = inline_str.as_bytes_with_nul(); assert_eq!(bytes, cstr.to_bytes_with_nul()); } ================================================ FILE: inline_flexstr/tests/common/display.rs ================================================ #![allow(dead_code)] use core::fmt; use flexstr_support::StringToFromBytes; use inline_flexstr::InlineFlexStr; /// Test Display implementation for InlineFlexStr pub fn test_display(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Display + fmt::Debug, { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); // Format both the original and InlineFlexStr let original_fmt = format!("{}", s); let inline_fmt = format!("{}", inline_str); assert_eq!(original_fmt, inline_fmt); } ================================================ FILE: inline_flexstr/tests/common/edge_cases.rs ================================================ #![allow(dead_code)] use core::fmt; use flexstr_support::{StringLike, StringToFromBytes}; use inline_flexstr::{InlineFlexStr, TooLongForInlining}; /// Test empty string operations pub fn test_empty_string(empty: &'static S) where S: ?Sized + StringToFromBytes + PartialEq + fmt::Debug, InlineFlexStr: StringLike, { let inline_str = InlineFlexStr::try_from_type(empty).unwrap(); assert!(StringLike::is_empty(&inline_str)); assert_eq!(StringLike::len(&inline_str), 0); // Test empty string can be copied let cloned = inline_str; assert_eq!(inline_str, cloned); } /// Test capacity boundary - string at exact capacity /// Input must be exactly at INLINE_CAPACITY pub fn test_capacity_boundary_exact(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, { let bytes = s.self_as_raw_bytes(); assert_eq!( bytes.len(), inline_flexstr::INLINE_CAPACITY, "test input must be exactly at capacity" ); let inline_str = InlineFlexStr::try_from_type(s).expect("string at exact capacity should inline"); assert_eq!(inline_str.as_ref_type(), s); } /// Test capacity boundary - string one byte over capacity /// Input must be smaller than INLINE_CAPACITY pub fn test_capacity_boundary_overflow(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, { let bytes = s.self_as_raw_bytes(); assert!( bytes.len() < inline_flexstr::INLINE_CAPACITY, "test input must be smaller than capacity" ); // Since bytes.len() < INLINE_CAPACITY, bytes.len() <= INLINE_CAPACITY is always true // So try_from_type should always succeed let _inline_str = InlineFlexStr::try_from_type(s).expect("string smaller than capacity should succeed"); } /// Test TryFrom error cases - too long // Type parameter intentionally unused - kept for API consistency with other test functions #[allow(unused)] pub fn test_try_from_too_long() { // Create a string that's definitely too long // This is tricky to do generically, so we'll test the error type let _long_bytes = [0u8; inline_flexstr::INLINE_CAPACITY + 1]; // Try to create from bytes if possible // This will depend on the specific string type // For now, we'll just verify the error type exists let err = TooLongForInlining { length: inline_flexstr::INLINE_CAPACITY + 1, inline_capacity: inline_flexstr::INLINE_CAPACITY, }; assert_eq!(err.length, inline_flexstr::INLINE_CAPACITY + 1); assert_eq!(err.inline_capacity, inline_flexstr::INLINE_CAPACITY); } /// Test various string lengths pub fn test_various_lengths(s: &'static S) where S: ?Sized + StringToFromBytes + PartialEq + fmt::Debug, InlineFlexStr: StringLike, { let bytes = s.self_as_bytes(); let len = bytes.len(); // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); // Test length matches assert_eq!(StringLike::len(&inline_str), len); // Test empty check assert_eq!(StringLike::is_empty(&inline_str), len == 0); } /// Test special content (if applicable) pub fn test_special_content(s: &'static S) where S: ?Sized + StringToFromBytes + PartialEq, { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); // Test that special characters/content are preserved let bytes = inline_str.as_bytes(); assert_eq!(bytes, s.self_as_bytes()); // Test that raw bytes match let raw_bytes = inline_str.as_raw_bytes(); assert_eq!(raw_bytes, s.self_as_raw_bytes()); } /// Test clone pub fn test_clone(s: &'static S) where S: ?Sized + StringToFromBytes + PartialEq + fmt::Debug, { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let cloned = inline_str; assert_eq!(inline_str, cloned); } /// Test try_from_type error when string is too long /// Input must be larger than INLINE_CAPACITY pub fn test_try_from_type_too_long(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug, { let bytes = S::self_as_raw_bytes(s); assert!( bytes.len() > inline_flexstr::INLINE_CAPACITY, "test input must be too long to inline" ); let err = InlineFlexStr::try_from_type(s).unwrap_err(); assert_eq!(err.length, bytes.len()); assert_eq!(err.inline_capacity, inline_flexstr::INLINE_CAPACITY); } /// Test as_mut_type() for mutable string types #[cfg(feature = "str")] pub fn test_as_mut_type_str() { let mut inline_str = InlineFlexStr::::try_from_type("test").unwrap(); let mut_ref = inline_str.as_mut_type(); // Test that we can mutate // Test input should be non-empty let bytes = unsafe { mut_ref.as_bytes_mut() }; assert!(!bytes.is_empty(), "test input should be non-empty"); bytes[0] = b'T'; assert_eq!(inline_str.as_ref_type(), "Test"); } /// Test as_mut_type() for [u8] #[cfg(feature = "bytes")] pub fn test_as_mut_type_bytes() { let mut inline_str = InlineFlexStr::<[u8]>::try_from_type(b"test").unwrap(); let mut_ref = inline_str.as_mut_type(); // Test that we can mutate // Test input should be non-empty let bytes = mut_ref; assert!(!bytes.is_empty(), "test input should be non-empty"); bytes[0] = b'T'; assert_eq!(inline_str.as_ref_type(), b"Test"); } ================================================ FILE: inline_flexstr/tests/common/errors.rs ================================================ #![allow(dead_code)] use core::fmt; use inline_flexstr::TooLongForInlining; #[cfg(feature = "str")] use inline_flexstr::TooLongOrUtf8Error; #[cfg(feature = "cstr")] use flexstr_support::InteriorNulError; #[cfg(feature = "cstr")] use inline_flexstr::TooLongOrNulError; /// Test Display implementation for error types pub fn test_error_display(error: E) where E: fmt::Display + fmt::Debug, { let display_str = format!("{}", error); let debug_str = format!("{:?}", error); // Display should produce a non-empty string assert!(!display_str.is_empty()); // Debug should also produce a non-empty string assert!(!debug_str.is_empty()); } /// Test TooLongForInlining error pub fn test_too_long_for_inlining() { let err = TooLongForInlining { length: 100, inline_capacity: 30, }; // Test that the error message contains relevant information let msg = format!("{}", err); assert!(msg.contains("too long")); assert!(msg.contains("100")); assert!(msg.contains("30")); test_error_display(err); } /// Test TooLongOrUtf8Error::TooLong variant #[cfg(feature = "str")] pub fn test_too_long_or_utf8_error_too_long() { let err = TooLongOrUtf8Error::TooLong(TooLongForInlining { length: 100, inline_capacity: 30, }); test_error_display(err); } /// Test TooLongOrUtf8Error::Utf8Error variant #[cfg(feature = "str")] pub fn test_too_long_or_utf8_error_utf8() { // Create an invalid UTF-8 sequence let invalid_utf8: &[u8] = unsafe { core::slice::from_raw_parts([0xFFu8, 0xFFu8, 0xFFu8].as_ptr(), 3) }; let utf8_err = str::from_utf8(invalid_utf8).unwrap_err(); let err = TooLongOrUtf8Error::Utf8Error(utf8_err); test_error_display(err); } /// Test InteriorNulError #[cfg(feature = "cstr")] pub fn test_interior_nul_error() { let err = InteriorNulError { position: 5 }; let msg = format!("{}", err); assert!(msg.contains("Interior NUL")); assert!(msg.contains("5")); test_error_display(err); } /// Test TooLongOrNulError::TooLong variant #[cfg(feature = "cstr")] pub fn test_too_long_or_nul_error_too_long() { let err = TooLongOrNulError::TooLong(TooLongForInlining { length: 100, inline_capacity: 30, }); test_error_display(err); } /// Test TooLongOrNulError::NulError variant #[cfg(feature = "cstr")] pub fn test_too_long_or_nul_error_nul() { let err = TooLongOrNulError::NulError(InteriorNulError { position: 3 }); test_error_display(err); } ================================================ FILE: inline_flexstr/tests/common/from_str.rs ================================================ #![allow(dead_code)] use core::fmt; use core::str::FromStr; use flexstr_support::StringToFromBytes; use inline_flexstr::InlineFlexStr; /// Test FromStr success for InlineFlexStr pub fn test_from_str_success(s: &str) where InlineFlexStr: FromStr, S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, as FromStr>::Err: fmt::Debug, { let inline_str = InlineFlexStr::from_str(s).unwrap(); assert_eq!(inline_str.as_ref_type(), inline_str.as_ref_type()); // Basic sanity check } /// Test FromStr error for InlineFlexStr (too long) /// Input should be too long to inline, causing an error pub fn test_from_str_error_too_long(s: &str) where InlineFlexStr: FromStr, S: ?Sized + StringToFromBytes + fmt::Debug, as FromStr>::Err: fmt::Debug + fmt::Display, { let err = InlineFlexStr::from_str(s).expect_err("test input should be too long to inline"); // Test that error can be displayed let _ = format!("{}", err); } /// Test FromStr for InlineFlexStr<[u8]> success #[cfg(feature = "bytes")] pub fn test_from_str_bytes_success() { let inline_str = InlineFlexStr::<[u8]>::from_str("test").unwrap(); assert_eq!(inline_str.as_ref_type(), b"test"); } /// Test FromStr for InlineFlexStr<[u8]> error (too long) #[cfg(feature = "bytes")] pub fn test_from_str_bytes_error() { let long_str = "x".repeat(inline_flexstr::INLINE_CAPACITY + 1); let err = InlineFlexStr::<[u8]>::from_str(&long_str).unwrap_err(); assert_eq!(err.length, inline_flexstr::INLINE_CAPACITY + 1); assert_eq!(err.inline_capacity, inline_flexstr::INLINE_CAPACITY); } /// Test FromStr for InlineFlexStr success #[cfg(all(feature = "std", feature = "osstr"))] pub fn test_from_str_osstr_success() { use std::ffi::OsStr; let inline_str = InlineFlexStr::::from_str("test").unwrap(); assert_eq!(inline_str.as_ref_type(), OsStr::new("test")); } /// Test FromStr for InlineFlexStr error (too long) #[cfg(all(feature = "std", feature = "osstr"))] pub fn test_from_str_osstr_error() { let long_str = "x".repeat(inline_flexstr::INLINE_CAPACITY + 1); let err = InlineFlexStr::::from_str(&long_str).unwrap_err(); assert_eq!(err.length, inline_flexstr::INLINE_CAPACITY + 1); assert_eq!(err.inline_capacity, inline_flexstr::INLINE_CAPACITY); } /// Test FromStr for InlineFlexStr success #[cfg(all(feature = "std", feature = "path"))] pub fn test_from_str_path_success() { use std::path::Path; let inline_str = InlineFlexStr::::from_str("test").unwrap(); assert_eq!(inline_str.as_ref_type(), Path::new("test")); } /// Test FromStr for InlineFlexStr error (too long) #[cfg(all(feature = "std", feature = "path"))] pub fn test_from_str_path_error() { let long_str = "x".repeat(inline_flexstr::INLINE_CAPACITY + 1); let err = InlineFlexStr::::from_str(&long_str).unwrap_err(); assert_eq!(err.length, inline_flexstr::INLINE_CAPACITY + 1); assert_eq!(err.inline_capacity, inline_flexstr::INLINE_CAPACITY); } /// Test FromStr for InlineFlexStr success #[cfg(feature = "cstr")] pub fn test_from_str_cstr_success() { let inline_str = InlineFlexStr::::from_str("test").unwrap(); assert_eq!(inline_str.as_ref_type().to_bytes(), b"test"); } /// Test FromStr for InlineFlexStr error (interior NUL or too long) #[cfg(feature = "cstr")] pub fn test_from_str_cstr_error() { use inline_flexstr::TooLongOrNulError; // String with interior NUL should fail - use a string that fits in 32-bit capacity (10 bytes) // "ab\0cd" is 5 bytes, which fits in both 32-bit and 64-bit capacity let result: Result, TooLongOrNulError> = InlineFlexStr::from_str("ab\0cd"); result.unwrap_err(); // String too long should fail let long_str = "x".repeat(inline_flexstr::INLINE_CAPACITY + 1); let result: Result, TooLongOrNulError> = InlineFlexStr::from_str(&long_str); result.unwrap_err(); } ================================================ FILE: inline_flexstr/tests/common/index.rs ================================================ #![allow(dead_code)] use core::fmt; use flexstr_support::{StringFromBytesMut, StringToFromBytes}; use inline_flexstr::InlineFlexStr; /// Test Index implementation for InlineFlexStr /// This tests that InlineFlexStr can be dereferenced to &S, which is required for Index pub fn test_index(s: &'static S) where S: ?Sized + StringToFromBytes + PartialEq + fmt::Debug, { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); // Test that we can deref to get &S (required for Index trait) // For inlined strings, the pointer will be different (data is copied), but values should be equal let original_ref: &S = s; let inline_ref: &S = &inline_str; // Verify the references are equal via PartialEq (not pointer equality) assert_eq!(original_ref, inline_ref); } /// Test IndexMut implementation for InlineFlexStr /// This tests that InlineFlexStr can be dereferenced mutably to &mut S, which is required for IndexMut pub fn test_index_mut(s: &'static S) where S: ?Sized + StringToFromBytes + StringFromBytesMut + PartialEq + fmt::Debug, { // Input should be small enough to inline let mut inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); // Test that we can deref mutably to get &mut S (required for IndexMut trait) // The mutable reference should initially equal the original let original_ref: &S = s; let inline_ref: &mut S = &mut inline_str; // Verify the mutable reference equals the original via PartialEq assert_eq!(original_ref, inline_ref); } ================================================ FILE: inline_flexstr/tests/common/mod.rs ================================================ pub mod as_ref; pub mod basic; pub mod borrow; pub mod comparison; pub mod conversion; #[cfg(feature = "cstr")] pub mod cstr_specific; pub mod display; pub mod edge_cases; pub mod errors; pub mod from_str; pub mod index; #[cfg(feature = "serde")] pub mod serialize; #[cfg(feature = "std")] pub mod socket; pub mod stringlike; pub mod try_from; #[cfg(feature = "zeroize")] pub mod zeroize; ================================================ FILE: inline_flexstr/tests/common/serialize.rs ================================================ #![allow(dead_code)] use core::fmt; use flexstr_support::StringToFromBytes; use inline_flexstr::InlineFlexStr; use serde::{Deserialize, Serialize}; pub fn serialize_deserialize_test<'s, F, S>(s: &'static S) where F: TryFrom<&'s S> + PartialEq + Serialize + for<'de> Deserialize<'de> + fmt::Debug, >::Error: fmt::Debug, S: ?Sized + StringToFromBytes + Serialize + fmt::Debug + PartialEq, Box: for<'de> Deserialize<'de>, { let expected_str: F = s.try_into().unwrap(); let serialized = serde_json::to_value(&expected_str).unwrap(); let expected_json = serde_json::to_value(s).unwrap(); assert_eq!(expected_json, serialized); let deserialized: F = serde_json::from_value(serialized).unwrap(); assert_eq!(expected_str, deserialized); } /// Test deserialization error path when string is too long for inline storage #[cfg(feature = "str")] pub fn test_deserialize_error_str() { // Create a string that's definitely too long let long_string = "x".repeat(inline_flexstr::INLINE_CAPACITY + 1); let boxed: Box = long_string.into_boxed_str(); // Serialize it let serialized = serde_json::to_string(&boxed).unwrap(); // Try to deserialize into InlineFlexStr - should fail let result: Result, _> = serde_json::from_str(&serialized); result.unwrap_err(); } ================================================ FILE: inline_flexstr/tests/common/socket.rs ================================================ #![allow(dead_code)] use flexstr_support::StringToFromBytes; use inline_flexstr::InlineFlexStr; use std::net::ToSocketAddrs; /// Test ToSocketAddrs implementation for InlineFlexStr pub fn test_to_socket_addrs(addr: &'static S) where S: ?Sized + StringToFromBytes + ToSocketAddrs, { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(addr).expect("test input should be small enough to inline"); // Test ToSocketAddrs let mut iter = inline_str.to_socket_addrs().unwrap(); assert!(iter.next().is_some()); assert!(iter.next().is_none()); } ================================================ FILE: inline_flexstr/tests/common/stringlike.rs ================================================ #![allow(dead_code)] use core::fmt; use flexstr_support::{StringLike, StringToFromBytes}; use inline_flexstr::InlineFlexStr; /// Test as_str() method for str types #[cfg(feature = "str")] pub fn test_as_str(s: &'static S) where S: ?Sized + StringToFromBytes + AsRef + PartialEq, InlineFlexStr: StringLike, { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let str_ref = StringLike::as_str(&inline_str); assert_eq!(str_ref, s.as_ref()); } /// Test as_os_str() method for OsStr types #[cfg(all(feature = "std", feature = "osstr"))] pub fn test_as_os_str(s: &'static S) where S: ?Sized + StringToFromBytes + AsRef + PartialEq, InlineFlexStr: StringLike, { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let os_str_ref = StringLike::as_os_str(&inline_str); assert_eq!(os_str_ref, s.as_ref()); } /// Test as_path() method for Path types #[cfg(all(feature = "std", feature = "path"))] pub fn test_as_path(s: &'static S) where S: ?Sized + StringToFromBytes + AsRef + PartialEq, InlineFlexStr: StringLike, { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let path_ref = StringLike::as_path(&inline_str); assert_eq!(path_ref, s.as_ref()); } /// Test as_c_str() method for CStr types #[cfg(feature = "cstr")] pub fn test_as_c_str(s: &'static S) where S: ?Sized + StringToFromBytes + AsRef + PartialEq, InlineFlexStr: StringLike, { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let c_str_ref = StringLike::as_c_str(&inline_str); assert_eq!(c_str_ref, s.as_ref()); } /// Test into_string() method #[cfg(feature = "str")] pub fn test_into_string(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, S::Owned: Into + From> + AsRef, InlineFlexStr: StringLike, { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let string = StringLike::into_string(inline_str); assert_eq!(string, s.to_owned().into()); } /// Test to_string() method #[cfg(feature = "str")] pub fn test_to_string(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, S::Owned: Into, InlineFlexStr: StringLike, { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let string = StringLike::to_string(&inline_str); assert_eq!(string, s.to_owned().into()); } /// Test into_os_string() method #[cfg(all(feature = "std", feature = "osstr"))] pub fn test_into_os_string(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, S::Owned: Into + From> + AsRef, InlineFlexStr: StringLike, { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let os_string = StringLike::into_os_string(inline_str); assert_eq!(os_string, s.to_owned().into()); } /// Test to_os_string() method #[cfg(all(feature = "std", feature = "osstr"))] pub fn test_to_os_string(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, S::Owned: Into, InlineFlexStr: StringLike, { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let os_string = StringLike::to_os_string(&inline_str); assert_eq!(os_string, s.to_owned().into()); } /// Test into_path_buf() method #[cfg(all(feature = "std", feature = "path"))] pub fn test_into_path_buf(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, S::Owned: Into + From> + AsRef, InlineFlexStr: StringLike, { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let path_buf = StringLike::into_path_buf(inline_str); assert_eq!(path_buf, s.to_owned().into()); } /// Test to_path_buf() method #[cfg(all(feature = "std", feature = "path"))] pub fn test_to_path_buf(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, S::Owned: Into, InlineFlexStr: StringLike, { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let path_buf = StringLike::to_path_buf(&inline_str); assert_eq!(path_buf, s.to_owned().into()); } /// Test into_c_string() method #[cfg(feature = "cstr")] pub fn test_into_c_string(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, S::Owned: Into + From> + AsRef, InlineFlexStr: StringLike, { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let c_string = StringLike::into_c_string(inline_str); assert_eq!( c_string.as_bytes_with_nul(), s.to_owned().into().as_bytes_with_nul() ); } /// Test to_c_string() method #[cfg(feature = "cstr")] pub fn test_to_c_string(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, S::Owned: Into, InlineFlexStr: StringLike, { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let c_string = StringLike::to_c_string(&inline_str); let expected: alloc::ffi::CString = s.to_owned().into(); assert_eq!(c_string.as_bytes_with_nul(), expected.as_bytes_with_nul()); } /// Test into_vec_bytes() method #[cfg(feature = "bytes")] pub fn test_into_vec_bytes(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, S::Owned: Into> + From> + AsRef, InlineFlexStr: StringLike, { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let vec_bytes = StringLike::into_vec_bytes(inline_str); assert_eq!(vec_bytes, s.to_owned().into()); } /// Test to_vec_bytes() method #[cfg(feature = "bytes")] pub fn test_to_vec_bytes(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, S::Owned: Into>, InlineFlexStr: StringLike, { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let vec_bytes = StringLike::to_vec_bytes(&inline_str); assert_eq!(vec_bytes, s.to_owned().into()); } ================================================ FILE: inline_flexstr/tests/common/try_from.rs ================================================ #![allow(dead_code)] use core::fmt; use flexstr_support::StringToFromBytes; use inline_flexstr::InlineFlexStr; /// Test TryFrom success path for InlineFlexStr pub fn test_try_from_success(value: T) where T: core::convert::TryInto>, T::Error: fmt::Debug, S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, { let inline_str: InlineFlexStr = value.try_into().unwrap(); assert_eq!(inline_str.as_ref_type(), inline_str.as_ref_type()); // Basic sanity check } /// Test TryFrom error path for InlineFlexStr pub fn test_try_from_error(value: T) where T: core::convert::TryInto>, T::Error: fmt::Debug + fmt::Display, S: ?Sized + StringToFromBytes + fmt::Debug, { let result: Result, T::Error> = value.try_into(); let err = result.unwrap_err(); // Test that error can be displayed let _ = format!("{}", err); } /// Test TryFrom<&[u8]> for InlineFlexStr<[u8]> with too long string #[cfg(feature = "bytes")] pub fn test_try_from_bytes_too_long() { // Create a byte slice that's definitely too long let long_bytes = vec![0u8; inline_flexstr::INLINE_CAPACITY + 1]; let result: Result, inline_flexstr::TooLongForInlining> = long_bytes.as_slice().try_into(); let err = result.unwrap_err(); assert_eq!(err.length, inline_flexstr::INLINE_CAPACITY + 1); assert_eq!(err.inline_capacity, inline_flexstr::INLINE_CAPACITY); } /// Test TryFrom<&str> for InlineFlexStr<[u8]> with too long string #[cfg(feature = "bytes")] pub fn test_try_from_str_too_long() { // Create a string that's definitely too long let long_str = "x".repeat(inline_flexstr::INLINE_CAPACITY + 1); let result: Result, inline_flexstr::TooLongForInlining> = long_str.as_str().try_into(); let _err = result.unwrap_err(); } /// Test TryFrom<&OsStr> for InlineFlexStr with too long string #[cfg(all(feature = "std", feature = "osstr"))] pub fn test_try_from_osstr_too_long() { use std::ffi::OsStr; // Create an OsStr that's definitely too long let long_str = "x".repeat(inline_flexstr::INLINE_CAPACITY + 1); let os_str = OsStr::new(&long_str); let result: Result, inline_flexstr::TooLongForInlining> = os_str.try_into(); let _err = result.unwrap_err(); } /// Test TryFrom<&str> for InlineFlexStr with too long string #[cfg(all(feature = "std", feature = "osstr"))] pub fn test_try_from_str_osstr_too_long() { // Create a string that's definitely too long let long_str = "x".repeat(inline_flexstr::INLINE_CAPACITY + 1); let result: Result, inline_flexstr::TooLongForInlining> = long_str.as_str().try_into(); let _err = result.unwrap_err(); } /// Test TryFrom<&Path> for InlineFlexStr with too long string #[cfg(all(feature = "std", feature = "osstr", feature = "path"))] pub fn test_try_from_path_osstr_too_long() { use std::path::Path; // Create a path that's definitely too long let long_str = "x".repeat(inline_flexstr::INLINE_CAPACITY + 1); let path = Path::new(&long_str); let result: Result, inline_flexstr::TooLongForInlining> = path.try_into(); let _err = result.unwrap_err(); } /// Test TryFrom<&Path> for InlineFlexStr with too long string #[cfg(all(feature = "std", feature = "path"))] pub fn test_try_from_path_too_long() { use std::path::Path; // Create a path that's definitely too long let long_str = "x".repeat(inline_flexstr::INLINE_CAPACITY + 1); let path = Path::new(&long_str); let result: Result, inline_flexstr::TooLongForInlining> = path.try_into(); let _err = result.unwrap_err(); } /// Test TryFrom<&str> for InlineFlexStr with too long string #[cfg(all(feature = "std", feature = "path"))] pub fn test_try_from_str_path_too_long() { // Create a string that's definitely too long let long_str = "x".repeat(inline_flexstr::INLINE_CAPACITY + 1); let result: Result, inline_flexstr::TooLongForInlining> = long_str.as_str().try_into(); let _err = result.unwrap_err(); } /// Test TryFrom<&OsStr> for InlineFlexStr with too long string #[cfg(all(feature = "std", feature = "path"))] pub fn test_try_from_osstr_path_too_long() { use std::ffi::OsStr; // Create an OsStr that's definitely too long let long_str = "x".repeat(inline_flexstr::INLINE_CAPACITY + 1); let os_str = OsStr::new(&long_str); let result: Result, inline_flexstr::TooLongForInlining> = os_str.try_into(); let _err = result.unwrap_err(); } /// Test TryFrom<&str> for InlineFlexStr #[cfg(feature = "cstr")] pub fn test_try_from_str_cstr() { use inline_flexstr::TooLongOrNulError; // Valid CStr (no interior NUL, small enough) let s: &str = "test"; let result: Result, TooLongOrNulError> = s.try_into(); let inline_str = result.unwrap(); assert_eq!(inline_str.as_ref_type().to_bytes(), b"test"); // Invalid CStr (interior NUL) - use a string that fits in 32-bit capacity (10 bytes) // "ab\0cd" is 5 bytes, which fits in both 32-bit and 64-bit capacity let s_with_nul: &str = "ab\0cd"; let result: Result, TooLongOrNulError> = s_with_nul.try_into(); result.unwrap_err(); // Too long let long_str = "x".repeat(inline_flexstr::INLINE_CAPACITY + 1); let result: Result, TooLongOrNulError> = long_str.as_str().try_into(); result.unwrap_err(); } /// Test TryFrom<&[u8]> for InlineFlexStr #[cfg(feature = "cstr")] pub fn test_try_from_bytes_cstr() { use inline_flexstr::TooLongOrNulError; // Valid CStr (no interior NUL, small enough) let bytes: &[u8] = b"test"; let result: Result, TooLongOrNulError> = bytes.try_into(); let inline_str = result.unwrap(); assert_eq!(inline_str.as_ref_type().to_bytes(), b"test"); // Invalid CStr (interior NUL) - use bytes that fit in 32-bit capacity (10 bytes) // b"ab\0cd" is 5 bytes, which fits in both 32-bit and 64-bit capacity let bytes_with_nul: &[u8] = b"ab\0cd"; let result: Result, TooLongOrNulError> = bytes_with_nul.try_into(); result.unwrap_err(); // Too long let long_bytes = vec![b'x'; inline_flexstr::INLINE_CAPACITY + 1]; let result: Result, TooLongOrNulError> = long_bytes.as_slice().try_into(); result.unwrap_err(); } /// Test TryFrom<&[u8]> for InlineFlexStr #[cfg(feature = "str")] pub fn test_try_from_bytes_str() { use inline_flexstr::TooLongOrUtf8Error; // Valid UTF-8 bytes, small enough let bytes: &[u8] = b"test"; let result: Result, TooLongOrUtf8Error> = bytes.try_into(); let inline_str = result.unwrap(); assert_eq!(inline_str.as_ref_type(), "test"); // Invalid UTF-8 bytes let invalid_bytes: &[u8] = &[0xFF, 0xFF, 0xFF]; let result: Result, TooLongOrUtf8Error> = invalid_bytes.try_into(); result.unwrap_err(); // Too long let long_bytes = vec![b'x'; inline_flexstr::INLINE_CAPACITY + 1]; let result: Result, TooLongOrUtf8Error> = long_bytes.as_slice().try_into(); result.unwrap_err(); } /// Test TryFrom<&OsStr> for InlineFlexStr #[cfg(all(feature = "str", feature = "std"))] pub fn test_try_from_osstr_str() { use inline_flexstr::TooLongOrUtf8Error; use std::ffi::OsStr; // Valid UTF-8 OsStr, small enough let os_str = OsStr::new("test"); let result: Result, TooLongOrUtf8Error> = os_str.try_into(); let inline_str = result.unwrap(); assert_eq!(inline_str.as_ref_type(), "test"); // Too long let long_str = "x".repeat(inline_flexstr::INLINE_CAPACITY + 1); let os_str = OsStr::new(&long_str); let result: Result, TooLongOrUtf8Error> = os_str.try_into(); result.unwrap_err(); } /// Test TryFrom<&Path> for InlineFlexStr #[cfg(all(feature = "str", feature = "std"))] pub fn test_try_from_path_str() { use inline_flexstr::TooLongOrUtf8Error; use std::path::Path; // Valid UTF-8 Path, small enough let path = Path::new("test"); let result: Result, TooLongOrUtf8Error> = path.try_into(); let inline_str = result.unwrap(); assert_eq!(inline_str.as_ref_type(), "test"); // Too long let long_str = "x".repeat(inline_flexstr::INLINE_CAPACITY + 1); let path = Path::new(&long_str); let result: Result, TooLongOrUtf8Error> = path.try_into(); result.unwrap_err(); } ================================================ FILE: inline_flexstr/tests/common/zeroize.rs ================================================ #![allow(dead_code)] use core::fmt; use flexstr_support::StringToFromBytes; use inline_flexstr::InlineFlexStr; use zeroize::Zeroize; /// Test that InlineFlexStr has zero-length raw bytes after zeroize pub fn test_zeroize_empty_after(s: &S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, { let mut inline = InlineFlexStr::try_from_type(s).expect("test input should be small enough"); assert!( !inline.as_raw_bytes().is_empty(), "test input must be non-empty" ); inline.zeroize(); // Check raw bytes directly — InlineFlexStr::zeroize() zeros everything including len, // which produces a maximally secure but potentially invalid-for-interpretation state // (e.g., CStr requires a NUL terminator). FlexStr::zeroize() handles this by replacing // with InlineFlexStr::zeroed() which produces a valid empty value. assert!(inline.as_raw_bytes().is_empty()); } /// Test that all raw bytes of InlineFlexStr are zeroed after zeroize pub fn test_zeroize_bytes_cleared(s: &S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, { let mut inline = InlineFlexStr::try_from_type(s).expect("test input should be small enough"); // Verify we have non-zero data assert!( !S::self_as_raw_bytes(s).is_empty(), "test input must be non-empty" ); // Get a raw pointer to the struct's memory (struct is on the stack, still alive after zeroize) let ptr = &inline as *const InlineFlexStr as *const u8; let size = core::mem::size_of::>(); inline.zeroize(); // Read the raw bytes of the struct — it's still alive on the stack let bytes = unsafe { core::slice::from_raw_parts(ptr, size) }; assert!( bytes.iter().all(|&b| b == 0), "all bytes of InlineFlexStr should be zero after zeroize, got: {bytes:?}" ); } ================================================ FILE: inline_flexstr/tests/test_bytes.rs ================================================ #![cfg(feature = "bytes")] extern crate alloc; #[cfg(feature = "serde")] use inline_flexstr::InlineBytes; mod common; // *** Serialize/Deserialize Tests *** #[cfg(feature = "serde")] #[test] fn serialize_deserialize_test_inline_bytes() { common::serialize::serialize_deserialize_test::(b"test"); } // *** Basic Tests *** #[test] fn test_creation_from_inline_bytes() { common::basic::test_creation_from_inline::<[u8]>(b"test"); } #[test] fn test_empty_bytes() { common::basic::test_empty::<[u8]>(b""); } #[test] fn test_accessors_bytes() { common::basic::test_accessors::<[u8]>(b"test"); } #[test] fn test_clone_bytes() { common::basic::test_clone::<[u8]>(b"test"); } #[test] fn test_default_bytes() { common::basic::test_default::<[u8]>(); } // *** Conversion Tests *** #[test] fn test_to_owned_type_bytes() { common::conversion::test_to_owned_type::<[u8]>(b"test"); } #[test] fn test_into_owned_type_bytes() { common::conversion::test_into_owned_type::<[u8]>(b"test"); } // *** Comparison Tests *** #[test] fn test_partial_eq_bytes() { common::comparison::test_partial_eq::<[u8]>(b"test", b"test"); common::comparison::test_partial_eq::<[u8]>(b"test", b"other"); } #[test] fn test_eq_bytes() { common::comparison::test_eq::<[u8]>(b"test"); } #[test] fn test_partial_ord_bytes() { common::comparison::test_partial_ord::<[u8]>(b"a", b"b"); } #[test] fn test_ord_bytes() { common::comparison::test_ord::<[u8]>(b"a", b"b"); } #[test] fn test_comparison_with_ref_bytes() { common::comparison::test_comparison_with_ref::<[u8]>(b"test"); } #[test] fn test_comparison_with_owned_bytes() { common::comparison::test_comparison_with_owned::<[u8]>(b"test"); } // *** Edge Case Tests *** #[test] fn test_empty_string_bytes() { common::edge_cases::test_empty_string::<[u8]>(b""); } #[test] fn test_various_lengths_bytes() { common::edge_cases::test_various_lengths::<[u8]>(b"test"); common::edge_cases::test_various_lengths::<[u8]>(b""); common::edge_cases::test_various_lengths::<[u8]>(b"a"); } #[test] fn test_special_content_bytes() { common::edge_cases::test_special_content::<[u8]>(b"test"); } #[test] fn test_clone_bytes_edge() { common::edge_cases::test_clone::<[u8]>(b"test"); } // *** Error Tests *** #[test] fn test_too_long_for_inlining() { common::errors::test_too_long_for_inlining(); } // *** StringLike Tests *** #[test] fn test_into_vec_bytes() { common::stringlike::test_into_vec_bytes::<[u8]>(b"test"); } #[test] fn test_to_vec_bytes() { common::stringlike::test_to_vec_bytes::<[u8]>(b"test"); } // *** TryFrom Tests *** #[test] fn test_try_from_bytes_too_long() { common::try_from::test_try_from_bytes_too_long(); } #[test] fn test_try_from_str_too_long() { common::try_from::test_try_from_str_too_long(); } // *** FromStr Tests *** #[test] fn test_from_str_bytes_success() { common::from_str::test_from_str_bytes_success(); } #[test] fn test_from_str_bytes_error() { common::from_str::test_from_str_bytes_error(); } // *** Zeroize Tests *** #[cfg(feature = "zeroize")] #[test] fn test_zeroize_empty_after_bytes() { common::zeroize::test_zeroize_empty_after::<[u8]>(b"test"); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_bytes_cleared_bytes() { common::zeroize::test_zeroize_bytes_cleared::<[u8]>(b"test"); } // *** AsRef Tests *** #[test] fn test_as_ref_bytes() { common::as_ref::test_as_ref_bytes(b"test"); } ================================================ FILE: inline_flexstr/tests/test_cstr.rs ================================================ #![cfg(feature = "cstr")] extern crate alloc; #[cfg(feature = "serde")] use inline_flexstr::InlineCStr; use core::ffi::CStr; mod common; // *** Serialize/Deserialize Tests *** #[cfg(feature = "serde")] #[test] fn serialize_deserialize_test_inline_cstr() { common::serialize::serialize_deserialize_test::(c"test"); } // *** Basic Tests *** #[test] fn test_creation_from_inline_cstr() { common::basic::test_creation_from_inline::(c"test"); } #[test] fn test_empty_cstr() { common::basic::test_empty::(c""); } #[test] fn test_accessors_cstr() { common::basic::test_accessors::(c"test"); } #[test] fn test_clone_cstr() { common::basic::test_clone::(c"test"); } #[test] fn test_default_cstr() { common::basic::test_default::(); } // *** Conversion Tests *** #[test] fn test_to_owned_type_cstr() { common::conversion::test_to_owned_type::(c"test"); } #[test] fn test_into_owned_type_cstr() { common::conversion::test_into_owned_type::(c"test"); } // *** Comparison Tests *** #[test] fn test_partial_eq_cstr() { common::comparison::test_partial_eq::(c"test", c"test"); common::comparison::test_partial_eq::(c"test", c"other"); } #[test] fn test_eq_cstr() { common::comparison::test_eq::(c"test"); } #[test] fn test_comparison_with_ref_cstr() { common::comparison::test_comparison_with_ref::(c"test"); } #[test] fn test_comparison_with_owned_cstr() { common::comparison::test_comparison_with_owned::(c"test"); } #[test] fn test_partial_eq_with_owned_types_cstr() { common::comparison::test_partial_eq_with_owned_types::(c"test"); } // *** Edge Case Tests *** #[test] fn test_empty_string_cstr() { common::edge_cases::test_empty_string::(c""); } #[test] fn test_various_lengths_cstr() { common::edge_cases::test_various_lengths::(c"test"); common::edge_cases::test_various_lengths::(c""); } #[test] fn test_special_content_cstr() { common::edge_cases::test_special_content::(c"test"); } #[test] fn test_clone_cstr_edge() { common::edge_cases::test_clone::(c"test"); } // *** Error Tests *** #[test] fn test_too_long_for_inlining() { common::errors::test_too_long_for_inlining(); } #[test] fn test_interior_nul_error() { common::errors::test_interior_nul_error(); } #[test] fn test_too_long_or_nul_error_too_long() { common::errors::test_too_long_or_nul_error_too_long(); } #[test] fn test_too_long_or_nul_error_nul() { common::errors::test_too_long_or_nul_error_nul(); } // *** StringLike Tests *** #[test] fn test_as_c_str() { common::stringlike::test_as_c_str::(c"test"); } #[test] fn test_into_c_string() { common::stringlike::test_into_c_string::(c"test"); } #[test] fn test_to_c_string() { common::stringlike::test_to_c_string::(c"test"); } // *** TryFrom Tests *** #[test] fn test_try_from_str_cstr() { common::try_from::test_try_from_str_cstr(); } #[test] fn test_try_from_bytes_cstr() { common::try_from::test_try_from_bytes_cstr(); } // *** FromStr Tests *** #[test] fn test_from_str_cstr_success() { common::from_str::test_from_str_cstr_success(); } #[test] fn test_from_str_cstr_error() { common::from_str::test_from_str_cstr_error(); } // *** AsRef Tests *** #[test] fn test_as_ref_cstr() { common::as_ref::test_as_ref_cstr(c"test"); } // *** Zeroize Tests *** #[cfg(feature = "zeroize")] #[test] fn test_zeroize_empty_after_cstr() { common::zeroize::test_zeroize_empty_after::(c"test"); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_bytes_cleared_cstr() { common::zeroize::test_zeroize_bytes_cleared::(c"test"); } // *** CStr Specific Tests *** #[test] fn test_try_from_bytes_with_nul() { common::cstr_specific::test_try_from_bytes_with_nul(); } #[test] fn test_try_from_bytes_without_nul() { common::cstr_specific::test_try_from_bytes_without_nul(); } #[test] fn test_try_from_bytes_interior_nul() { common::cstr_specific::test_try_from_bytes_interior_nul(); } #[test] fn test_try_from_bytes_too_long() { common::cstr_specific::test_try_from_bytes_too_long(); } #[test] fn test_as_bytes_with_nul() { common::cstr_specific::test_as_bytes_with_nul(c"test"); } ================================================ FILE: inline_flexstr/tests/test_osstr.rs ================================================ #![cfg(all(feature = "std", feature = "osstr"))] extern crate alloc; #[cfg(feature = "serde")] use inline_flexstr::InlineOsStr; use std::ffi::OsStr; mod common; // *** Serialize/Deserialize Tests *** #[cfg(feature = "serde")] #[test] fn serialize_deserialize_test_inline_osstr() { common::serialize::serialize_deserialize_test::(OsStr::new("test")); } // *** Basic Tests *** #[test] fn test_creation_from_inline_osstr() { common::basic::test_creation_from_inline::(OsStr::new("test")); } #[test] fn test_empty_osstr() { common::basic::test_empty::(OsStr::new("")); } #[test] fn test_accessors_osstr() { common::basic::test_accessors::(OsStr::new("test")); } #[test] fn test_clone_osstr() { common::basic::test_clone::(OsStr::new("test")); } #[test] fn test_default_osstr() { common::basic::test_default::(); } // *** Conversion Tests *** #[test] fn test_to_owned_type_osstr() { common::conversion::test_to_owned_type::(OsStr::new("test")); } #[test] fn test_into_owned_type_osstr() { common::conversion::test_into_owned_type::(OsStr::new("test")); } // *** Comparison Tests *** #[test] fn test_partial_eq_osstr() { common::comparison::test_partial_eq::(OsStr::new("test"), OsStr::new("test")); common::comparison::test_partial_eq::(OsStr::new("test"), OsStr::new("other")); } #[test] fn test_eq_osstr() { common::comparison::test_eq::(OsStr::new("test")); } #[test] fn test_comparison_with_ref_osstr() { common::comparison::test_comparison_with_ref::(OsStr::new("test")); } #[test] fn test_comparison_with_owned_osstr() { common::comparison::test_comparison_with_owned::(OsStr::new("test")); } // *** Edge Case Tests *** #[test] fn test_empty_string_osstr() { common::edge_cases::test_empty_string::(OsStr::new("")); } #[test] fn test_various_lengths_osstr() { common::edge_cases::test_various_lengths::(OsStr::new("test")); common::edge_cases::test_various_lengths::(OsStr::new("")); } #[test] fn test_special_content_osstr() { common::edge_cases::test_special_content::(OsStr::new("test")); } #[test] fn test_clone_osstr_edge() { common::edge_cases::test_clone::(OsStr::new("test")); } // *** Error Tests *** #[test] fn test_too_long_for_inlining() { common::errors::test_too_long_for_inlining(); } // *** StringLike Tests *** #[test] fn test_as_os_str() { common::stringlike::test_as_os_str::(OsStr::new("test")); } #[test] fn test_into_os_string() { common::stringlike::test_into_os_string::(OsStr::new("test")); } #[test] fn test_to_os_string() { common::stringlike::test_to_os_string::(OsStr::new("test")); } // *** TryFrom Tests *** #[test] fn test_try_from_osstr_too_long() { common::try_from::test_try_from_osstr_too_long(); } #[test] fn test_try_from_str_osstr_too_long() { common::try_from::test_try_from_str_osstr_too_long(); } // *** FromStr Tests *** #[test] fn test_from_str_osstr_success() { common::from_str::test_from_str_osstr_success(); } #[test] fn test_from_str_osstr_error() { common::from_str::test_from_str_osstr_error(); } // *** Zeroize Tests *** #[cfg(feature = "zeroize")] #[test] fn test_zeroize_empty_after_osstr() { common::zeroize::test_zeroize_empty_after::(OsStr::new("test")); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_bytes_cleared_osstr() { common::zeroize::test_zeroize_bytes_cleared::(OsStr::new("test")); } // *** AsRef Tests *** #[test] fn test_as_ref_osstr() { common::as_ref::test_as_ref_osstr(OsStr::new("test")); } ================================================ FILE: inline_flexstr/tests/test_path.rs ================================================ #![cfg(all(feature = "std", feature = "path"))] extern crate alloc; #[cfg(feature = "serde")] use inline_flexstr::InlinePath; use std::path::Path; mod common; // *** Serialize/Deserialize Tests *** #[cfg(feature = "serde")] #[test] fn serialize_deserialize_test_inline_path() { common::serialize::serialize_deserialize_test::(Path::new("test")); } // *** Basic Tests *** #[test] fn test_creation_from_inline_path() { common::basic::test_creation_from_inline::(Path::new("test")); } #[test] fn test_empty_path() { common::basic::test_empty::(Path::new("")); } #[test] fn test_accessors_path() { common::basic::test_accessors::(Path::new("test")); } #[test] fn test_clone_path() { common::basic::test_clone::(Path::new("test")); } // Path doesn't implement Default, so skip this test // #[test] // fn test_default_path() { // common::basic::test_default::(); // } // *** Conversion Tests *** #[test] fn test_to_owned_type_path() { common::conversion::test_to_owned_type::(Path::new("test")); } #[test] fn test_into_owned_type_path() { common::conversion::test_into_owned_type::(Path::new("test")); } // *** Comparison Tests *** #[test] fn test_partial_eq_path() { common::comparison::test_partial_eq::(Path::new("test"), Path::new("test")); common::comparison::test_partial_eq::(Path::new("test"), Path::new("other")); } #[test] fn test_eq_path() { common::comparison::test_eq::(Path::new("test")); } #[test] fn test_comparison_with_ref_path() { common::comparison::test_comparison_with_ref::(Path::new("test")); } #[test] fn test_comparison_with_owned_path() { common::comparison::test_comparison_with_owned::(Path::new("test")); } // *** Edge Case Tests *** #[test] fn test_empty_string_path() { common::edge_cases::test_empty_string::(Path::new("")); } #[test] fn test_various_lengths_path() { common::edge_cases::test_various_lengths::(Path::new("test")); common::edge_cases::test_various_lengths::(Path::new("")); } #[test] fn test_special_content_path() { common::edge_cases::test_special_content::(Path::new("test")); } #[test] fn test_clone_path_edge() { common::edge_cases::test_clone::(Path::new("test")); } // *** Error Tests *** #[test] fn test_too_long_for_inlining() { common::errors::test_too_long_for_inlining(); } // *** StringLike Tests *** #[test] fn test_as_path() { common::stringlike::test_as_path::(Path::new("test")); } #[test] fn test_into_path_buf() { common::stringlike::test_into_path_buf::(Path::new("test")); } #[test] fn test_to_path_buf() { common::stringlike::test_to_path_buf::(Path::new("test")); } // *** TryFrom Tests *** #[test] fn test_try_from_path_too_long() { common::try_from::test_try_from_path_too_long(); } #[test] fn test_try_from_str_path_too_long() { common::try_from::test_try_from_str_path_too_long(); } #[test] fn test_try_from_osstr_path_too_long() { common::try_from::test_try_from_osstr_path_too_long(); } // *** FromStr Tests *** #[test] fn test_from_str_path_success() { common::from_str::test_from_str_path_success(); } #[test] fn test_from_str_path_error() { common::from_str::test_from_str_path_error(); } // *** Zeroize Tests *** #[cfg(feature = "zeroize")] #[test] fn test_zeroize_empty_after_path() { common::zeroize::test_zeroize_empty_after::(Path::new("test")); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_bytes_cleared_path() { common::zeroize::test_zeroize_bytes_cleared::(Path::new("test")); } // *** AsRef Tests *** #[test] fn test_as_ref_path() { common::as_ref::test_as_ref_path(Path::new("test")); } ================================================ FILE: inline_flexstr/tests/test_str.rs ================================================ #![cfg(feature = "str")] extern crate alloc; #[cfg(feature = "serde")] use inline_flexstr::InlineStr; mod common; // *** Serialize/Deserialize Tests *** #[cfg(feature = "serde")] #[test] fn serialize_deserialize_test_inline_str() { common::serialize::serialize_deserialize_test::("test"); } // *** Basic Tests *** #[test] fn test_creation_from_inline_str() { common::basic::test_creation_from_inline::("test"); } #[test] fn test_empty_str() { common::basic::test_empty::(""); } #[test] fn test_accessors_str() { common::basic::test_accessors::("test"); } #[test] fn test_clone_str() { common::basic::test_clone::("test"); } #[test] fn test_default_str() { common::basic::test_default::(); } // *** Conversion Tests *** #[test] fn test_to_owned_type_str() { common::conversion::test_to_owned_type::("test"); } #[test] fn test_into_owned_type_str() { common::conversion::test_into_owned_type::("test"); } // *** Comparison Tests *** #[test] fn test_partial_eq_str() { common::comparison::test_partial_eq::("test", "test"); common::comparison::test_partial_eq::("test", "other"); } #[test] fn test_eq_str() { common::comparison::test_eq::("test"); } #[test] fn test_partial_ord_str() { common::comparison::test_partial_ord::("a", "b"); } #[test] fn test_ord_str() { common::comparison::test_ord::("a", "b"); } #[test] fn test_hash_str() { common::comparison::test_hash::("test"); } #[test] fn test_comparison_with_ref_str() { common::comparison::test_comparison_with_ref::("test"); } #[test] fn test_comparison_with_owned_str() { common::comparison::test_comparison_with_owned::("test"); } #[test] fn test_partial_eq_with_owned_types_str() { common::comparison::test_partial_eq_with_owned_types::("test"); } // *** Edge Case Tests *** #[test] fn test_empty_string_str() { common::edge_cases::test_empty_string::(""); } #[test] fn test_capacity_boundary_exact_str() { // Create a string exactly at capacity let s = "a".repeat(inline_flexstr::INLINE_CAPACITY); let s_static: &'static str = Box::leak(s.into_boxed_str()); common::edge_cases::test_capacity_boundary_exact::(s_static); } #[test] fn test_capacity_boundary_overflow_str() { common::edge_cases::test_capacity_boundary_overflow::("test"); } #[test] fn test_try_from_too_long_str() { common::edge_cases::test_try_from_too_long(); } #[test] fn test_various_lengths_str() { common::edge_cases::test_various_lengths::("test"); common::edge_cases::test_various_lengths::(""); common::edge_cases::test_various_lengths::("a"); } #[test] fn test_special_content_str() { common::edge_cases::test_special_content::("test"); // Use a string that fits in both 32-bit (10 bytes) and 64-bit (22 bytes) capacity // "hello\n" is 6 bytes, which fits in both common::edge_cases::test_special_content::("hello\n"); common::edge_cases::test_special_content::("🚀"); } #[test] fn test_clone_str_edge() { common::edge_cases::test_clone::("test"); } // *** Error Tests *** #[test] fn test_too_long_for_inlining() { common::errors::test_too_long_for_inlining(); } #[test] fn test_too_long_or_utf8_error_too_long() { common::errors::test_too_long_or_utf8_error_too_long(); } #[test] fn test_too_long_or_utf8_error_utf8() { common::errors::test_too_long_or_utf8_error_utf8(); } // *** StringLike Tests *** #[test] fn test_as_str() { common::stringlike::test_as_str::("test"); } #[test] fn test_into_string() { common::stringlike::test_into_string::("test"); } #[test] fn test_to_string() { common::stringlike::test_to_string::("test"); } // *** TryFrom Tests *** #[cfg(feature = "std")] #[test] fn test_try_from_osstr_str() { common::try_from::test_try_from_osstr_str(); } #[cfg(feature = "std")] #[test] fn test_try_from_path_str() { common::try_from::test_try_from_path_str(); } #[test] fn test_try_from_bytes_str() { common::try_from::test_try_from_bytes_str(); } // *** FromStr Tests *** #[test] fn test_from_str_success() { common::from_str::test_from_str_success::("test"); } // *** Display Tests *** #[test] fn test_display_str() { common::display::test_display::("test"); } // *** Borrow Tests *** #[test] fn test_borrow_mut_str() { common::borrow::test_borrow_mut::("test"); } // *** Index Tests *** #[test] fn test_index_str() { common::index::test_index::("test"); } #[test] fn test_index_mut_str() { common::index::test_index_mut::("test"); } // *** ToSocketAddrs Tests *** #[cfg(feature = "std")] #[test] fn test_to_socket_addrs_str() { common::socket::test_to_socket_addrs::("[::]:8080"); } // *** AsRef Tests *** #[test] fn test_as_ref_str() { common::as_ref::test_as_ref_str("test"); } // *** Zeroize Tests *** #[cfg(feature = "zeroize")] #[test] fn test_zeroize_empty_after_str() { common::zeroize::test_zeroize_empty_after::("test"); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_bytes_cleared_str() { common::zeroize::test_zeroize_bytes_cleared::("test"); } // *** Serialize Tests *** #[cfg(feature = "serde")] #[test] fn test_deserialize_error_str() { common::serialize::test_deserialize_error_str(); } ================================================ FILE: justfile ================================================ std_features := "bytes,cstr,osstr,path,serde,sqlx,sqlx_pg_arrays" nostd_features := "bytes,cstr,serde,str" safe_features := if os() == "windows" { "safe,win_min_unsafe" } else { "safe" } test *PARAMS: cargo nextest run -F {{std_features}} --workspace {{PARAMS}} test_nostd *PARAMS: cargo nextest run --no-default-features -F {{nostd_features}} --workspace {{PARAMS}} test_safe *PARAMS: cargo nextest run -F {{std_features}},{{safe_features}} --workspace {{PARAMS}} test_nostd_safe *PARAMS: cargo nextest run --no-default-features -F {{nostd_features}},{{safe_features}} --workspace {{PARAMS}} open_docs $RUSTDOCFLAGS="--cfg docsrs --cap-lints allow": cargo +nightly doc -F {{std_features}} --workspace --open cover: cargo llvm-cov nextest -F {{std_features}} --workspace cover_report: cargo llvm-cov nextest --output-path codecov.json --codecov -F {{std_features}} --workspace miri $MIRIFLAGS="-Zmiri-ignore-leaks": cargo +nightly miri nextest run -F {{std_features}} --workspace clippy: cargo clippy -F {{std_features}} --workspace --all-targets -- -D warnings ================================================ FILE: src/bytes.rs ================================================ #[cfg(not(feature = "std"))] use alloc::vec::Vec; use alloc::{borrow::Cow, rc::Rc, sync::Arc}; use core::{convert::Infallible, str::FromStr}; use crate::flex::{FlexStr, RefCounted, RefCountedMut, partial_eq_impl, ref_counted_mut_impl}; use flexstr_support::StringToFromBytes; /// Local `[u8]` type (NOTE: This can't be shared between threads) pub type LocalBytes = FlexStr<'static, [u8], Rc<[u8]>>; /// Shared `[u8]` type pub type SharedBytes = FlexStr<'static, [u8], Arc<[u8]>>; /// Local `[u8]` type that can optionally hold borrows (NOTE: This can't be shared between threads) pub type LocalBytesRef<'s> = FlexStr<'s, [u8], Rc<[u8]>>; /// Shared `[u8]` type that can optionally hold borrows pub type SharedBytesRef<'s> = FlexStr<'s, [u8], Arc<[u8]>>; const _: () = assert!( size_of::>() <= size_of::>(), "Option must be less than or equal to the size of Vec" ); const _: () = assert!( size_of::>() <= size_of::>(), "Option must be less than or equal to the size of Vec" ); // *** RefCountedMut *** ref_counted_mut_impl!([u8]); // *** From for FlexStr *** // NOTE: Cannot be implemented generically because of impl From for T impl<'s, R: RefCounted<[u8]>> From> for FlexStr<'s, [u8], R> { fn from(v: Vec) -> Self { FlexStr::from_owned(v) } } impl<'s, R: RefCounted<[u8]>> From<&'s str> for FlexStr<'s, [u8], R> { fn from(s: &'s str) -> Self { FlexStr::from_borrowed(s.as_bytes()) } } // *** PartialEq *** partial_eq_impl!([u8], [u8]); partial_eq_impl!(&[u8], [u8]); partial_eq_impl!(Vec, [u8]); partial_eq_impl!(Cow<'s, [u8]>, [u8]); // *** AsRef *** impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> AsRef<[u8]> for FlexStr<'s, S, R> where S: AsRef<[u8]>, { fn as_ref(&self) -> &[u8] { self.as_ref_type().as_ref() } } // *** FromStr *** impl> FromStr for FlexStr<'static, [u8], R> { type Err = Infallible; fn from_str(s: &str) -> Result { Ok(FlexStr::from_borrowed(s.as_bytes()).into_owned()) } } ================================================ FILE: src/cstr.rs ================================================ use alloc::{borrow::Cow, ffi::CString, rc::Rc, sync::Arc}; use core::{ ffi::{CStr, FromBytesWithNulError}, str::FromStr, }; use crate::flex::{ FlexStr, ImmutableBytes, RefCounted, RefCountedMut, partial_eq_impl, ref_counted_mut_impl, }; pub use flexstr_support::InteriorNulError; use flexstr_support::StringToFromBytes; use inline_flexstr::{InlineFlexStr, TooLongOrNulError}; /// Local `CStr` type (NOTE: This can't be shared between threads) pub type LocalCStr = FlexStr<'static, CStr, Rc>; /// Shared `CStr` type pub type SharedCStr = FlexStr<'static, CStr, Arc>; /// Local `CStr` type that can optionally hold borrows (NOTE: This can't be shared between threads) pub type LocalCStrRef<'s> = FlexStr<'s, CStr, Rc>; /// Shared `CStr` type that can optionally hold borrows pub type SharedCStrRef<'s> = FlexStr<'s, CStr, Arc>; // NOTE: This one is a bit different because CString is just a Box<[u8]>. Instead of equal size, // we should be at most one machine word larger. const _: () = assert!( size_of::>() <= size_of::() + size_of::(), "Option must be less than or equal to the size of CString plus one machine word" ); const _: () = assert!( size_of::>() <= size_of::() + size_of::(), "Option must be less than or equal to the size of CString plus one machine word" ); // *** FlexStr *** impl<'s, R: RefCounted> FlexStr<'s, CStr, R> { fn from_bytes_without_nul(bytes: &'s [u8]) -> Self { // NOTE: This will scan the string for interior NUL bytes _twice_. Consider optionally // making InlineFlexStr::try_from_bytes_without_nul unsafe and using it conditionally here. match InlineFlexStr::try_from_bytes_with_or_without_nul(bytes) { Ok(inline) => FlexStr::from_inline(inline), // Finally, fallback to creating a new CString so nul zero is appended Err(TooLongOrNulError::TooLong(_)) => FlexStr::from_owned( #[cfg(feature = "safe")] // PANIC SAFETY: We already tested for interior NUL bytes CString::new(bytes).expect("Unexpected interior NUL byte"), #[cfg(not(feature = "safe"))] // SAFETY: We already tested for interior NUL bytes unsafe { CString::from_vec_unchecked(bytes.into()) }, ), // PANIC SAFETY: We already tested for interior NUL bytes from the function that called this one Err(TooLongOrNulError::NulError(e)) => { unreachable!("Interior NUL byte found at position {}", e.position) } } } /// Attempt to create a CStr from borrowed bytes with or without a trailing NUL byte. pub fn try_from_bytes_with_or_without_nul(bytes: &'s [u8]) -> Result { match CStr::from_bytes_with_nul(bytes) { // If it is already a valid CStr, then just borrow it Ok(cstr) => Ok(FlexStr::from_borrowed(cstr)), // Otherwise try and inline it, adding a nul zero Err(FromBytesWithNulError::NotNulTerminated) => Ok(Self::from_bytes_without_nul(bytes)), Err(FromBytesWithNulError::InteriorNul { position }) => { Err(InteriorNulError { position }) } } } /// Borrow the CStr as bytes with a trailing NUL byte #[inline] pub fn as_bytes_with_nul(&self) -> &[u8] { self.as_raw_bytes() } } // *** ImmutableBytes *** impl ImmutableBytes for CStr {} // *** RefCountedMut *** ref_counted_mut_impl!(CStr); // *** From *** // NOTE: Cannot be implemented generically because of impl From for T impl<'s, R: RefCounted> From for FlexStr<'s, CStr, R> { fn from(s: CString) -> Self { FlexStr::from_owned(s) } } // *** TryFrom for FlexStr *** impl<'s, R: RefCounted> TryFrom<&'s str> for FlexStr<'s, CStr, R> { type Error = InteriorNulError; #[inline] fn try_from(s: &'s str) -> Result { FlexStr::try_from_bytes_with_or_without_nul(s.as_bytes()) } } impl<'s, R: RefCounted> TryFrom<&'s [u8]> for FlexStr<'s, CStr, R> { type Error = InteriorNulError; #[inline] fn try_from(bytes: &'s [u8]) -> Result { FlexStr::try_from_bytes_with_or_without_nul(bytes) } } // *** PartialEq *** partial_eq_impl!(CStr, CStr); partial_eq_impl!(&CStr, CStr); partial_eq_impl!(CString, CStr); partial_eq_impl!(Cow<'s, CStr>, CStr); // *** AsRef *** impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> AsRef for FlexStr<'s, S, R> where S: AsRef, { fn as_ref(&self) -> &CStr { self.as_ref_type().as_ref() } } // *** FromStr *** impl> FromStr for FlexStr<'static, CStr, R> { type Err = InteriorNulError; fn from_str(s: &str) -> Result { FlexStr::try_from_bytes_with_or_without_nul(s.as_bytes()).map(FlexStr::into_owned) } } ================================================ FILE: src/flex.rs ================================================ use alloc::borrow::{Borrow, Cow}; #[cfg(not(feature = "std"))] use alloc::{borrow::ToOwned, boxed::Box}; use alloc::{rc::Rc, sync::Arc}; use core::cmp::Ordering; use core::fmt; use core::hash::{Hash, Hasher}; use core::ops::{Deref, Index}; use core::slice::SliceIndex; #[cfg(feature = "std")] use std::{io, net::ToSocketAddrs}; use flexstr_support::{StringFromBytesMut, StringLike, StringToFromBytes}; use inline_flexstr::InlineFlexStr; #[cfg(feature = "serde")] use serde::{Deserialize, Deserializer, Serialize, Serializer}; // *** Macros *** macro_rules! partial_eq_impl { ($type:ty, $str_type:ty) => { impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> PartialEq<$type> for FlexStr<'s, S, R> where S: PartialEq<$str_type>, { fn eq(&self, other: &$type) -> bool { S::eq(self, other) } } impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> PartialEq> for $type where S: PartialEq<$str_type>, { fn eq(&self, other: &FlexStr<'s, S, R>) -> bool { S::eq(other, self) } } }; } pub(crate) use partial_eq_impl; macro_rules! ref_counted_mut_impl { ($str_type:ty) => { // NOTE: Cannot be implemented generically because CloneToUninit is needed // as a bound to `S`, but is unstable. impl RefCountedMut<$str_type> for Arc<$str_type> { #[inline] fn to_mut(&mut self) -> &mut $str_type { Arc::make_mut(self) } #[inline] fn as_mut(&mut self) -> &mut $str_type { // PANIC SAFETY: We only use this when we know the Arc is newly created Arc::get_mut(self).expect("Arc is shared") } #[inline] fn try_as_mut(&mut self) -> Option<&mut $str_type> { Arc::get_mut(self) } } // NOTE: Cannot be implemented generically because CloneToUninit is needed // as a bound to `S`, but is unstable. impl RefCountedMut<$str_type> for Rc<$str_type> { #[inline] fn to_mut(&mut self) -> &mut $str_type { Rc::make_mut(self) } #[inline] fn as_mut(&mut self) -> &mut $str_type { // PANIC SAFETY: We only use this when we know the Rc is newly created Rc::get_mut(self).expect("Rc is shared") } #[inline] fn try_as_mut(&mut self) -> Option<&mut $str_type> { Rc::get_mut(self) } } }; } pub(crate) use ref_counted_mut_impl; // *** ImmutableBytes *** /// Marker trait for string types that don't provide conversion from bytes to mutable string reference pub trait ImmutableBytes: StringToFromBytes {} // *** RefCounted *** /// Trait for storage that can be reference counted pub trait RefCounted: Deref + for<'a> From<&'a S> + Clone { } impl RefCounted for R where R: Deref + for<'a> From<&'a S> + Clone, S: ?Sized + StringToFromBytes, { } /// Trait for storage that can be reference counted and mutable pub trait RefCountedMut: RefCounted { /// Borrow the string as a mutable string reference, allocating and copying first, if needed. fn to_mut(&mut self) -> &mut S; /// Borrow the string as a mutable string reference. It will panic if the string is shared. fn as_mut(&mut self) -> &mut S; /// Try to borrow the string as a mutable string reference. Returns `None` if the data is shared. fn try_as_mut(&mut self) -> Option<&mut S> { None } } // *** ToOwnedFlexStr *** /// Trait for types that can be converted to an owned FlexStr pub trait ToOwnedFlexStr where R: RefCounted, S: ?Sized + StringToFromBytes, { /// Convert a borrowed string to an owned FlexStr fn to_owned_opt(&self) -> FlexStr<'static, S, R>; } impl ToOwnedFlexStr for S where R: RefCounted, S: ?Sized + StringToFromBytes, { fn to_owned_opt(&self) -> FlexStr<'static, S, R> { FlexStr::from_borrowed(self).into_owned() } } // *** IntoOptimizedFlexStr *** /// Trait for types that can be converted to an optimized FlexStr pub trait IntoOptimizedFlexStr where R: RefCounted, S: ?Sized + StringToFromBytes, Box: From, { /// Convert a string to an optimized FlexStr fn into_opt(self) -> FlexStr<'static, S, R>; } impl IntoOptimizedFlexStr for S::Owned where R: RefCounted, S: ?Sized + StringToFromBytes, Box: From, { fn into_opt(self) -> FlexStr<'static, S, R> { FlexStr::from_owned(self).optimize() } } // *** FlexStr *** #[doc(alias = "SharedStr")] #[doc(alias = "LocalStr")] #[doc(alias = "SharedOsStr")] #[doc(alias = "LocalOsStr")] #[doc(alias = "SharedPath")] #[doc(alias = "LocalPath")] #[doc(alias = "SharedCStr")] #[doc(alias = "LocalCStr")] #[doc(alias = "SharedBytes")] #[doc(alias = "LocalBytes")] /// Flexible string type that can store a borrowed string, an inline string, a reference counted string, or a boxed string #[derive(Debug)] pub enum FlexStr<'s, S: ?Sized + StringToFromBytes, R: RefCounted> { /// Borrowed string - borrowed strings are imported as `&S` Borrowed(&'s S), /// Inline string - owned strings that are small enough to be stored inline Inlined(InlineFlexStr), /// Reference counted string - owned strings that are too large for inline storage RefCounted(R), /// Boxed string - heap allocated strings are imported as `Box` Boxed(Box), } impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> FlexStr<'s, S, R> where for<'a> &'a S: Default, { /// Create a new empty string. This is a Borrowed variant. pub fn empty() -> FlexStr<'s, S, R> { FlexStr::Borrowed(Default::default()) } } impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> FlexStr<'s, S, R> { fn copy(&self) -> FlexStr<'s, S, R> { match self { FlexStr::Borrowed(s) => FlexStr::Borrowed(s), FlexStr::Inlined(s) => FlexStr::Inlined(*s), FlexStr::RefCounted(s) => FlexStr::RefCounted(s.clone()), FlexStr::Boxed(s) => FlexStr::copy_into_owned(s), } } } impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> FlexStr<'s, S, R> where Box: From, { /// Create a new string from an owned string (most likely without copy or allocation). /// The result is a Boxed variant. pub fn from_owned(s: S::Owned) -> FlexStr<'static, S, R> { FlexStr::Boxed(s.into()) } } impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> FlexStr<'s, S, R> { /// Create a new string from a borrowed string. This is a const fn because it does not allocate /// and results in a Borrowed variant. pub const fn from_borrowed(s: &'s S) -> FlexStr<'s, S, R> { FlexStr::Borrowed(s) } /// Create a new string from an inline string. This results in an Inlined variant. pub fn from_inline(s: InlineFlexStr) -> FlexStr<'s, S, R> { FlexStr::Inlined(s) } /// Create a new string from a reference counted string. This results in a RefCounted variant. pub fn from_ref_counted(s: R) -> FlexStr<'s, S, R> { FlexStr::RefCounted(s) } /// Create a new string from a boxed string. This results in a Boxed variant. pub fn from_boxed(s: Box) -> FlexStr<'s, S, R> { FlexStr::Boxed(s) } /// Returns true if this is a borrowed string pub fn is_borrowed(&self) -> bool { matches!(self, FlexStr::Borrowed(_)) } /// Returns true if this is an inlined string pub fn is_inlined(&self) -> bool { matches!(self, FlexStr::Inlined(_)) } /// Returns true if this is a reference counted string pub fn is_ref_counted(&self) -> bool { matches!(self, FlexStr::RefCounted(_)) } /// Returns true if this is a boxed string pub fn is_boxed(&self) -> bool { matches!(self, FlexStr::Boxed(_)) } /// Returns true if this is a string that is on the heap pub fn is_on_heap(&self) -> bool { matches!(self, FlexStr::RefCounted(_) | FlexStr::Boxed(_)) } /// Returns true if this is a string that is off the heap pub fn is_off_heap(&self) -> bool { matches!(self, FlexStr::Borrowed(_) | FlexStr::Inlined(_)) } fn copy_into_owned(s: &S) -> FlexStr<'static, S, R> { match InlineFlexStr::try_from_type(s) { Ok(inline) => FlexStr::Inlined(inline), Err(_) => FlexStr::RefCounted(s.into()), } } /// Optimize the string variant. This is a no-op for Inlined/Borrowed variants. RefCounted /// strings will attempt to inline, but otherwise be left as ref counted. Boxed strings will /// attempt to inline, but otherwise be converted to a ref counted string. pub fn optimize(self) -> FlexStr<'s, S, R> { match self { // This should be inlined or ref counted FlexStr::Boxed(s) => Self::copy_into_owned(&s), // There is probably a reason this is ref counted, but we can try to inline it first FlexStr::RefCounted(s) => match InlineFlexStr::try_from_type(&*s) { Ok(inline) => FlexStr::Inlined(inline), Err(_) => FlexStr::RefCounted(s), }, // Borrowed and inlined strings are already optimized _ => self, } } /// Convert a string reference to an owned string. Inlined/RefCounted variants are cloned, /// Borrowed/Boxed variants are copied into a new Inlined or RefCounted owned string. pub fn to_owned(&self) -> FlexStr<'static, S, R> { match self { FlexStr::Borrowed(s) => FlexStr::copy_into_owned(s), FlexStr::Inlined(s) => FlexStr::Inlined(*s), FlexStr::RefCounted(s) => FlexStr::RefCounted(s.clone()), FlexStr::Boxed(s) => FlexStr::copy_into_owned(s), } } /// Consume a string and convert it to an owned string. Inlined/RefCounted/Boxed variants /// are moved, Borrowed variants are copied into a new Inlined or RefCounted owned string. pub fn into_owned(self) -> FlexStr<'static, S, R> { match self { FlexStr::Borrowed(s) => FlexStr::copy_into_owned(s), FlexStr::Inlined(s) => FlexStr::Inlined(s), FlexStr::RefCounted(s) => FlexStr::RefCounted(s), FlexStr::Boxed(s) => FlexStr::Boxed(s), } } /// Borrow a string reference as `&S` pub fn as_ref_type(&self) -> &S { match self { FlexStr::Borrowed(s) => s, FlexStr::Inlined(s) => s, FlexStr::RefCounted(s) => s, FlexStr::Boxed(s) => s, } } /// Convert a string reference to an owned string. `S::to_owned` is called on all variants. pub fn to_owned_type(&self) -> S::Owned { match self { FlexStr::Borrowed(s) => ::to_owned(s), FlexStr::Inlined(s) => ::to_owned(s), FlexStr::RefCounted(s) => ::to_owned(s), FlexStr::Boxed(s) => ::to_owned(s), } } /// Borrow the string as a raw byte slice (NOTE: includes trailing NUL for CStr) pub fn as_raw_bytes(&self) -> &[u8] { match self { FlexStr::Borrowed(s) => S::self_as_raw_bytes(s), FlexStr::Inlined(s) => s.as_raw_bytes(), FlexStr::RefCounted(s) => S::self_as_raw_bytes(s), FlexStr::Boxed(s) => S::self_as_raw_bytes(s), } } /// Borrow the string as bytes pub fn as_bytes(&self) -> &[u8] { match self { FlexStr::Borrowed(s) => S::self_as_bytes(s), FlexStr::Inlined(s) => s.as_bytes(), FlexStr::RefCounted(s) => S::self_as_bytes(s), FlexStr::Boxed(s) => S::self_as_bytes(s), } } } impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> FlexStr<'s, S, R> where S::Owned: From>, { /// Consume a string and convert it to an owned string. `S::to_owned` is called on Borrowed/Inlined/RefCounted variants. /// Boxed variants are converted directly into `S::Owned` (most likely without copy or allocation). pub fn into_owned_type(self) -> S::Owned { match self { FlexStr::Borrowed(s) => ::to_owned(s), FlexStr::Inlined(s) => ::to_owned(&s), FlexStr::RefCounted(s) => ::to_owned(&s), FlexStr::Boxed(s) => s.into(), } } } // NOTE: This implementation is the "slow path" for types that are ImmutableBytes (iow, cannot mutate their raw bytes) impl<'s, S: ?Sized + ImmutableBytes, R: RefCountedMut> FlexStr<'s, S, R> { /// Borrow the string as a mutable string reference, converting if needed. If the string is Borrowed, /// it is made into a reference counted string first. RefCounted variants will allocate + copy /// if they are shared. In all other cases, the string is borrowed as a mutable reference /// directly. pub fn to_mut_type_fallback(&mut self) -> &mut S { match self { // Borrowed strings can't be made mutable - we need to own it first // ImmutableBytes strings can't mutate inlined strings, so ref count it FlexStr::Borrowed(s) => { *self = FlexStr::RefCounted((&**s).into()); match self { // We know this is brand new, so it is safe to share mutably immediately FlexStr::RefCounted(s) => s.as_mut(), _ => unreachable!("Unexpected variant"), } } // ImmutableBytes strings must be converted before being made mutable FlexStr::Inlined(s) => { *self = FlexStr::RefCounted((&**s).into()); match self { // We know this is brand new, so it is safe to share mutably immediately FlexStr::RefCounted(s) => s.as_mut(), _ => unreachable!("Unexpected variant"), } } // Since this might be shared, we need to check before just sharing as mutable FlexStr::RefCounted(s) => s.to_mut(), // Boxed strings can be made mutable directly FlexStr::Boxed(s) => s.as_mut(), } } } // NOTE: This implementation is the "fast path" for types that provide direct mutable access to their bytes impl<'s, S: ?Sized + StringFromBytesMut, R: RefCountedMut> FlexStr<'s, S, R> { /// Borrow the string as a mutable string reference, converting if needed. If the string is borrowed, /// it is made into an owned string first. RefCounted variants will allocate + copy /// if they are shared. In all other cases, the string is borrowed as a mutable reference /// directly. pub fn to_mut_type(&mut self) -> &mut S { match self { // Borrowed strings can't be made mutable - we need to own it first FlexStr::Borrowed(s) => { *self = FlexStr::copy_into_owned(s); // copy_into_owned will never return a borrowed variant match self { FlexStr::Inlined(s) => s.as_mut_type(), FlexStr::RefCounted(s) => s.as_mut(), _ => { // PANIC SAFETY: copy_into_owned will never return a borrowed/boxed variant unreachable!("Unexpected borrowed/boxed variant"); } } } // Inlined strings can be made mutable directly FlexStr::Inlined(s) => s.as_mut_type(), // Since this might be shared, we need to check before just sharing as mutable FlexStr::RefCounted(s) => s.to_mut(), // Boxed strings can be made mutable directly FlexStr::Boxed(s) => s.as_mut(), } } } impl<'s, S: ?Sized + StringToFromBytes> FlexStr<'s, S, Arc> where Arc: for<'a> From<&'a S>, Rc: for<'a> From<&'a S>, { /// Convert a shared string reference to a local string. The Borrowed/Inlined variants are copied, /// RefCounted is copied into a new allocation, and Boxed is copied into an Inlined or RefCounted variant. pub fn to_local(&self) -> FlexStr<'s, S, Rc> { match self { FlexStr::Borrowed(s) => FlexStr::Borrowed(s), FlexStr::Inlined(s) => FlexStr::Inlined(*s), FlexStr::RefCounted(s) => FlexStr::RefCounted(Rc::from(s)), FlexStr::Boxed(s) => FlexStr::copy_into_owned(s), } } /// Consume a shared string and convert it to a local string. The Borrowed/Inlined/Boxed variants are moved, /// and RefCounted is copied into a new allocation. pub fn into_local(self) -> FlexStr<'s, S, Rc> { match self { FlexStr::Borrowed(s) => FlexStr::Borrowed(s), FlexStr::Inlined(s) => FlexStr::Inlined(s), FlexStr::RefCounted(s) => FlexStr::RefCounted(Rc::from(&s)), FlexStr::Boxed(s) => FlexStr::Boxed(s), } } } impl<'s, S: ?Sized + StringToFromBytes> FlexStr<'s, S, Rc> where Rc: for<'a> From<&'a S>, Arc: for<'a> From<&'a S>, { /// Convert a local string reference to a shared string. The Borrowed/Inlined variants are copied, /// RefCounted is copied into a new allocation, and Boxed is copied into an Inlined or RefCounted variant. pub fn to_shared(&self) -> FlexStr<'s, S, Arc> { match self { FlexStr::Borrowed(s) => FlexStr::Borrowed(s), FlexStr::Inlined(s) => FlexStr::Inlined(*s), FlexStr::RefCounted(s) => FlexStr::RefCounted(Arc::from(s)), FlexStr::Boxed(s) => FlexStr::copy_into_owned(s), } } /// Consume a local string and convert it to a shared string. The Borrowed/Inlined/Boxed variants are moved, /// and RefCounted is copied into a new allocation. pub fn into_shared(self) -> FlexStr<'s, S, Arc> { match self { FlexStr::Borrowed(s) => FlexStr::Borrowed(s), FlexStr::Inlined(s) => FlexStr::Inlined(s), FlexStr::RefCounted(s) => FlexStr::RefCounted(Arc::from(&s)), FlexStr::Boxed(s) => FlexStr::Boxed(s), } } } // *** StringLike *** impl> StringLike for FlexStr<'_, S, R> { fn as_ref_type(&self) -> &S { ::as_ref_type(self) } fn as_bytes(&self) -> &[u8] { ::as_bytes(self) } fn into_owned_type(self) -> S::Owned where S::Owned: From>, { ::into_owned_type(self) } fn to_owned_type(&self) -> S::Owned { ::to_owned_type(self) } } // *** Default *** impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> Default for FlexStr<'s, S, R> where for<'a> &'a S: Default, { /// Create a new string from a default value fn default() -> FlexStr<'s, S, R> { FlexStr::empty() } } // *** From *** impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> From<&'s S> for FlexStr<'s, S, R> { fn from(s: &'s S) -> Self { FlexStr::from_borrowed(s) } } // NOTE: Could not be implemented more generically because of From impl<'s, S: ?Sized + StringToFromBytes> From> for FlexStr<'s, S, Rc> where Rc: for<'a> From<&'a S>, { fn from(s: Rc) -> Self { FlexStr::from_ref_counted(s) } } // NOTE: Could not be implemented more generically because of From impl<'s, S: ?Sized + StringToFromBytes> From> for FlexStr<'s, S, Arc> where Arc: for<'a> From<&'a S>, { fn from(s: Arc) -> Self { FlexStr::from_ref_counted(s) } } impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> From> for FlexStr<'s, S, R> { fn from(s: Box) -> Self { FlexStr::from_boxed(s) } } impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> From> for FlexStr<'s, S, R> { fn from(s: InlineFlexStr) -> Self { FlexStr::from_inline(s) } } impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> From> for FlexStr<'s, S, R> where Box: From, { fn from(s: Cow<'s, S>) -> Self { match s { Cow::Borrowed(s) => FlexStr::from_borrowed(s), Cow::Owned(s) => FlexStr::from_owned(s), } } } // *** Clone *** impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> Clone for FlexStr<'s, S, R> { fn clone(&self) -> Self { self.copy() } } // *** Hash *** impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> Hash for FlexStr<'s, S, R> where S: Hash, { fn hash(&self, state: &mut H) { self.as_ref_type().hash(state); } } // *** Deref *** impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> Deref for FlexStr<'s, S, R> { type Target = S; fn deref(&self) -> &Self::Target { self.as_ref_type() } } // *** Display *** impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> fmt::Display for FlexStr<'s, S, R> where S: fmt::Display, { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { S::fmt(self.as_ref_type(), f) } } // *** Borrow *** impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> Borrow for FlexStr<'s, S, R> { fn borrow(&self) -> &S { self.as_ref_type() } } // *** PartialEq / Eq *** impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> PartialEq for FlexStr<'s, S, R> where S: PartialEq, { fn eq(&self, other: &Self) -> bool { S::eq(self.as_ref_type(), other.as_ref_type()) } } impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> Eq for FlexStr<'s, S, R> where S: Eq {} // *** PartialOrd / Ord *** impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> PartialOrd for FlexStr<'s, S, R> where S: PartialOrd, { fn partial_cmp(&self, other: &Self) -> Option { S::partial_cmp(self.as_ref_type(), other.as_ref_type()) } } impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> Ord for FlexStr<'s, S, R> where S: Ord, { fn cmp(&self, other: &Self) -> Ordering { S::cmp(self.as_ref_type(), other.as_ref_type()) } } // *** Index *** impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted, I: SliceIndex> Index for FlexStr<'s, S, R> where S: Index, { type Output = S::Output; fn index(&self, index: I) -> &Self::Output { S::index(self.as_ref_type(), index) } } // *** ToSocketAddrs *** #[cfg(feature = "std")] impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> ToSocketAddrs for FlexStr<'s, S, R> where S: ToSocketAddrs, { type Iter = ::Iter; fn to_socket_addrs(&self) -> io::Result<::Iter> { self.as_ref_type().to_socket_addrs() } } // *** Serialize *** #[cfg(feature = "serde")] impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> Serialize for FlexStr<'s, S, R> where S: Serialize, { fn serialize(&self, serializer: SER) -> Result { S::serialize(self.as_ref_type(), serializer) } } // *** Deserialize *** #[cfg(feature = "serde")] impl<'de, S: ?Sized + StringToFromBytes, R: RefCounted> Deserialize<'de> for FlexStr<'static, S, R> where Box: Deserialize<'de>, { fn deserialize>(deserializer: D) -> Result { // TODO: See TODO in InlineFlexStr::deserialize for more details. // This one isn't as egregious since Boxed isn't inherently wrong here. Box::deserialize(deserializer) .map(FlexStr::Boxed) .map(FlexStr::optimize) } } // *** Zeroize *** /// Zero the raw bytes of a DST behind a mutable reference. /// /// The zeroed value remains valid for all supported string types: all-zero bytes /// produce valid `str` (NUL is valid UTF-8), `[u8]`, `CStr` (NUL terminator), /// `OsStr`, and `Path`. None of these types have `Drop` impls, so subsequent /// deallocation (via Box/Arc/Rc drop) only needs the pointer and size. #[cfg(feature = "zeroize")] fn zeroize_raw_bytes(s: &mut S) { let len = S::self_as_raw_bytes(s).len(); let ptr = s as *mut S as *mut u8; // SAFETY: We have exclusive ownership (`&mut S`). The pointer and length are valid // because we obtained them from the living reference. unsafe { zeroize::Zeroize::zeroize(core::slice::from_raw_parts_mut(ptr, len)); } } #[cfg(feature = "zeroize")] impl<'s, S: ?Sized + StringToFromBytes, R: RefCountedMut> zeroize::TryZeroize for FlexStr<'s, S, R> { fn try_zeroize(&mut self) -> bool { match self { FlexStr::Inlined(s) => { zeroize::Zeroize::zeroize(s); } FlexStr::Boxed(s) => { zeroize_raw_bytes(&mut **s); } FlexStr::RefCounted(rc) => { if let Some(s) = rc.try_as_mut() { zeroize_raw_bytes(s); } else { // Shared reference — cannot zero the underlying data return false; } } // Borrowed data is not owned by us — cannot zero FlexStr::Borrowed(_) => return false, } *self = FlexStr::Inlined(InlineFlexStr::zeroed()); true } } ================================================ FILE: src/lib.rs ================================================ #![cfg_attr(not(feature = "std"), no_std)] #![cfg_attr( all( not(all(feature = "win_min_unsafe", target_family = "windows")), feature = "safe" ), forbid(unsafe_code) )] #![cfg_attr(docsrs, feature(doc_cfg))] #![warn(missing_docs)] //! A flexible, simple to use, immutable, clone-efficient [String] replacement for Rust #[cfg(all(feature = "safe", feature = "zeroize"))] compile_error!( "The `zeroize` and `safe` features are incompatible. Secure memory zeroing requires unsafe code." ); extern crate alloc; #[doc = include_str!("../README.md")] mod readme_tests {} #[cfg(feature = "bytes")] /// Module for byte-based strings (`[u8]`) pub mod bytes; #[cfg(feature = "cstr")] /// Module for `CStr`-based strings pub mod cstr; mod flex; #[cfg(all(feature = "std", feature = "osstr"))] /// Module for `OsStr`-based strings pub mod osstr; #[cfg(all(feature = "std", feature = "path"))] /// Module for `Path`-based strings pub mod path; #[cfg(feature = "str")] /// Module for `str`-based strings pub mod str; #[cfg(feature = "bytes")] pub use bytes::{LocalBytes, SharedBytes}; #[cfg(feature = "cstr")] pub use cstr::{LocalCStr, SharedCStr}; pub use flex::{ FlexStr, ImmutableBytes, IntoOptimizedFlexStr, RefCounted, RefCountedMut, ToOwnedFlexStr, }; #[cfg(feature = "cstr")] pub use flexstr_support::InteriorNulError; pub use flexstr_support::StringLike; #[cfg(all(feature = "std", feature = "osstr"))] pub use osstr::{LocalOsStr, SharedOsStr}; #[cfg(all(feature = "std", feature = "path"))] pub use path::{LocalPath, SharedPath}; #[cfg(feature = "str")] pub use str::{LocalStr, SharedStr}; ================================================ FILE: src/osstr.rs ================================================ use alloc::{borrow::Cow, rc::Rc, sync::Arc}; use core::{convert::Infallible, str::FromStr}; use std::ffi::{OsStr, OsString}; use std::path::Path; #[cfg(feature = "path")] use std::path::PathBuf; use crate::flex::{ FlexStr, ImmutableBytes, RefCounted, RefCountedMut, partial_eq_impl, ref_counted_mut_impl, }; use flexstr_support::StringToFromBytes; /// Local `OsStr` type (NOTE: This can't be shared between threads) pub type LocalOsStr = FlexStr<'static, OsStr, Rc>; /// Shared `OsStr` type pub type SharedOsStr = FlexStr<'static, OsStr, Arc>; /// Local `OsStr` type that can optionally hold borrows (NOTE: This can't be shared between threads) pub type LocalOsStrRef<'s> = FlexStr<'s, OsStr, Rc>; /// Shared `OsStr` type that can optionally hold borrows pub type SharedOsStrRef<'s> = FlexStr<'s, OsStr, Arc>; const _: () = assert!( size_of::>() <= size_of::(), "Option must be less than or equal to the size of OsString" ); const _: () = assert!( size_of::>() <= size_of::(), "Option must be less than or equal to the size of OsString" ); // *** ImmutableBytes *** impl ImmutableBytes for OsStr {} // *** RefCountedMut *** ref_counted_mut_impl!(OsStr); // *** From for FlexStr *** // NOTE: Cannot be implemented generically because of impl From for T impl<'s, R: RefCounted> From for FlexStr<'s, OsStr, R> { fn from(s: OsString) -> Self { FlexStr::from_owned(s) } } impl<'s, R: RefCounted> From for FlexStr<'s, OsStr, R> { fn from(s: String) -> Self { FlexStr::from_owned(s.into()) } } #[cfg(feature = "path")] impl<'s, R: RefCounted> From for FlexStr<'s, OsStr, R> { fn from(p: PathBuf) -> Self { FlexStr::from_owned(p.into()) } } impl<'s, R: RefCounted> From<&'s str> for FlexStr<'s, OsStr, R> { fn from(s: &'s str) -> Self { FlexStr::from_borrowed(OsStr::new(s)) } } impl<'s, R: RefCounted> From<&'s Path> for FlexStr<'s, OsStr, R> { fn from(p: &'s Path) -> Self { FlexStr::from_borrowed(p.as_os_str()) } } // *** PartialEq *** partial_eq_impl!(OsStr, OsStr); partial_eq_impl!(&OsStr, OsStr); partial_eq_impl!(OsString, OsStr); partial_eq_impl!(Cow<'s, OsStr>, OsStr); // *** AsRef *** impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> AsRef for FlexStr<'s, S, R> where S: AsRef, { fn as_ref(&self) -> &OsStr { self.as_ref_type().as_ref() } } // *** FromStr *** impl> FromStr for FlexStr<'static, OsStr, R> { type Err = Infallible; fn from_str(s: &str) -> Result { Ok(FlexStr::from_borrowed(OsStr::new(s)).into_owned()) } } ================================================ FILE: src/path.rs ================================================ use alloc::{borrow::Cow, rc::Rc, sync::Arc}; use core::{convert::Infallible, str::FromStr}; use std::{ ffi::{OsStr, OsString}, path::{Path, PathBuf}, }; use crate::flex::{ FlexStr, ImmutableBytes, RefCounted, RefCountedMut, partial_eq_impl, ref_counted_mut_impl, }; use flexstr_support::StringToFromBytes; /// Local `Path` type (NOTE: This can't be shared between threads) pub type LocalPath = FlexStr<'static, Path, Rc>; /// Shared `Path` type pub type SharedPath = FlexStr<'static, Path, Arc>; /// Local `Path` type that can optionally hold borrows (NOTE: This can't be shared between threads) pub type LocalPathRef<'s> = FlexStr<'s, Path, Rc>; /// Shared `Path` type that can optionally hold borrows pub type SharedPathRef<'s> = FlexStr<'s, Path, Arc>; const _: () = assert!( size_of::>() <= size_of::(), "Option must be less than or equal to the size of PathBuf" ); const _: () = assert!( size_of::>() <= size_of::(), "Option must be less than or equal to the size of PathBuf" ); // *** ImmutableBytes *** impl ImmutableBytes for Path {} // *** RefCountedMut *** ref_counted_mut_impl!(Path); // *** From for FlexStr *** // NOTE: Cannot be implemented generically because of impl From for T impl<'s, R: RefCounted> From for FlexStr<'s, Path, R> { fn from(p: PathBuf) -> Self { FlexStr::from_owned(p) } } impl<'s, R: RefCounted> From for FlexStr<'s, Path, R> { fn from(s: String) -> Self { FlexStr::from_owned(s.into()) } } impl<'s, R: RefCounted> From for FlexStr<'s, Path, R> { fn from(s: OsString) -> Self { FlexStr::from_owned(s.into()) } } impl<'s, R: RefCounted> From<&'s str> for FlexStr<'s, Path, R> { fn from(s: &'s str) -> Self { FlexStr::from_borrowed(Path::new(s)) } } impl<'s, R: RefCounted> From<&'s OsStr> for FlexStr<'s, Path, R> { fn from(s: &'s OsStr) -> Self { FlexStr::from_borrowed(Path::new(s)) } } // *** PartialEq *** partial_eq_impl!(Path, Path); partial_eq_impl!(&Path, Path); partial_eq_impl!(PathBuf, Path); partial_eq_impl!(Cow<'s, Path>, Path); // *** AsRef *** impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> AsRef for FlexStr<'s, S, R> where S: AsRef, { fn as_ref(&self) -> &Path { self.as_ref_type().as_ref() } } // *** FromStr *** impl> FromStr for FlexStr<'static, Path, R> { type Err = Infallible; fn from_str(s: &str) -> Result { Ok(FlexStr::from_borrowed(Path::new(s)).into_owned()) } } ================================================ FILE: src/str.rs ================================================ use alloc::{ borrow::Cow, ffi::{CString, IntoStringError}, rc::Rc, string::{FromUtf8Error, String}, sync::Arc, vec::Vec, }; use core::{ convert::Infallible, str::{FromStr, Utf8Error}, }; #[cfg(feature = "std")] use std::{ffi::OsStr, path::Path}; use crate::flex::{FlexStr, RefCounted, RefCountedMut, partial_eq_impl, ref_counted_mut_impl}; use flexstr_support::StringToFromBytes; /// Local `str` type (NOTE: This can't be shared between threads) pub type LocalStr = FlexStr<'static, str, Rc>; /// Shared `str` type pub type SharedStr = FlexStr<'static, str, Arc>; /// Local `str` type that can optionally hold borrows (NOTE: This can't be shared between threads) pub type LocalStrRef<'s> = FlexStr<'s, str, Rc>; /// Shared `str` type that can optionally hold borrows pub type SharedStrRef<'s> = FlexStr<'s, str, Arc>; const _: () = assert!( size_of::>() <= size_of::(), "Option must be less than or equal to the size of String" ); const _: () = assert!( size_of::>() <= size_of::(), "Option must be less than or equal to the size of String" ); // *** RefCountedMut *** ref_counted_mut_impl!(str); // *** From *** // NOTE: Cannot be implemented generically because of impl From for T impl<'s, R: RefCounted> From for FlexStr<'s, str, R> { fn from(s: String) -> Self { FlexStr::from_owned(s) } } // *** TryFrom for FlexStr *** impl<'s, R: RefCounted> TryFrom<&'s [u8]> for FlexStr<'s, str, R> { type Error = Utf8Error; #[inline] fn try_from(s: &'s [u8]) -> Result { Ok(FlexStr::from_borrowed(str::from_utf8(s)?)) } } #[cfg(feature = "std")] impl<'s, R: RefCounted> TryFrom<&'s OsStr> for FlexStr<'s, str, R> { type Error = Utf8Error; #[inline] fn try_from(s: &'s OsStr) -> Result { Ok(FlexStr::from_borrowed(s.try_into()?)) } } #[cfg(feature = "std")] impl<'s, R: RefCounted> TryFrom<&'s Path> for FlexStr<'s, str, R> { type Error = Utf8Error; #[inline] fn try_from(s: &'s Path) -> Result { Ok(FlexStr::from_borrowed(s.as_os_str().try_into()?)) } } impl> TryFrom> for FlexStr<'static, str, R> { type Error = FromUtf8Error; #[inline] fn try_from(s: Vec) -> Result { Ok(FlexStr::from_owned(s.try_into()?)) } } impl> TryFrom for FlexStr<'static, str, R> { type Error = IntoStringError; #[inline] fn try_from(s: CString) -> Result { Ok(FlexStr::from_owned(s.try_into()?)) } } // *** PartialEq *** partial_eq_impl!(str, str); partial_eq_impl!(&str, str); partial_eq_impl!(String, str); partial_eq_impl!(Cow<'s, str>, str); // *** AsRef *** impl<'s, S: ?Sized + StringToFromBytes, R: RefCounted> AsRef for FlexStr<'s, S, R> where S: AsRef, { fn as_ref(&self) -> &str { self.as_ref_type().as_ref() } } // *** FromStr *** impl> FromStr for FlexStr<'static, str, R> { type Err = Infallible; fn from_str(s: &str) -> Result { Ok(FlexStr::from_borrowed(s).into_owned()) } } // *** Prost *** #[cfg(feature = "prost")] #[allow(deprecated)] // DecodeError::new is deprecated in prost 0.14 with no public replacement yet impl> prost::Message for FlexStr<'static, str, R> where Self: Default + Send + Sync, { fn encode_raw(&self, buf: &mut impl prost::bytes::BufMut) where Self: Sized, { buf.put_slice(self.as_ref_type().as_bytes()); } fn merge_field( &mut self, tag: u32, wire_type: prost::encoding::WireType, buf: &mut impl prost::bytes::Buf, ctx: prost::encoding::DecodeContext, ) -> Result<(), prost::DecodeError> where Self: Sized, { prost::encoding::skip_field(wire_type, tag, buf, ctx) } fn encoded_len(&self) -> usize { self.as_ref_type().len() } fn clear(&mut self) { *self = Default::default(); } fn merge(&mut self, mut buf: impl prost::bytes::Buf) -> Result<(), prost::DecodeError> where Self: Sized, { let bytes = buf.copy_to_bytes(buf.remaining()); let s = core::str::from_utf8(&bytes) .map_err(|_| prost::DecodeError::new("invalid UTF-8 in string field"))?; *self = FlexStr::from_borrowed(s).into_owned(); Ok(()) } fn merge_length_delimited( &mut self, mut buf: impl prost::bytes::Buf, ) -> Result<(), prost::DecodeError> where Self: Sized, { let len = prost::encoding::decode_varint(&mut buf)? as usize; if buf.remaining() < len { return Err(prost::DecodeError::new("buffer underflow")); } self.merge(buf.take(len)) } } // *** SQLx *** #[cfg(feature = "sqlx")] impl<'r, 's, DB: sqlx::Database, R: RefCounted> sqlx::Decode<'r, DB> for FlexStr<'s, str, R> where &'r str: sqlx::Decode<'r, DB>, { fn decode( value: ::ValueRef<'r>, ) -> Result { let value = <&str as sqlx::Decode>::decode(value)?; let s: FlexStr<'_, str, R> = value.into(); Ok(s.into_owned()) } } #[cfg(feature = "sqlx")] impl<'r, 's, DB: sqlx::Database, R: RefCounted> sqlx::Encode<'r, DB> for FlexStr<'s, str, R> where String: sqlx::Encode<'r, DB>, { fn encode_by_ref( &self, buf: &mut ::ArgumentBuffer<'r>, ) -> Result { // There might be a more efficient way to do this (or not?), but the lifetimes seem to be constraining // us to using an owned type here. Works at the cost of an allocation/copy. >::encode(self.to_string(), buf) } fn encode( self, buf: &mut ::ArgumentBuffer<'r>, ) -> Result where Self: Sized, { use flexstr_support::StringLike as _; // This won't allocate IF this is a boxed string >::encode(self.into_string(), buf) } fn size_hint(&self) -> usize { self.len() } } #[cfg(feature = "sqlx")] impl<'s, DB: sqlx::Database, R: RefCounted> sqlx::Type for FlexStr<'s, str, R> where str: sqlx::Type, { fn type_info() -> ::TypeInfo { >::type_info() } fn compatible(ty: &::TypeInfo) -> bool { >::compatible(ty) } } #[cfg(all(feature = "sqlx", feature = "sqlx_pg_arrays"))] impl<'s, R: RefCounted> sqlx::postgres::PgHasArrayType for FlexStr<'s, str, R> where for<'a> &'a str: sqlx::postgres::PgHasArrayType, { fn array_type_info() -> sqlx::postgres::PgTypeInfo { <&str as sqlx::postgres::PgHasArrayType>::array_type_info() } fn array_compatible(ty: &sqlx::postgres::PgTypeInfo) -> bool { <&str as sqlx::postgres::PgHasArrayType>::array_compatible(ty) } } // *** Utoipa *** #[cfg(feature = "utoipa")] impl<'s, R: RefCounted> utoipa::PartialSchema for FlexStr<'s, str, R> { fn schema() -> utoipa::openapi::RefOr { utoipa::openapi::schema::ObjectBuilder::new() .schema_type(utoipa::openapi::schema::SchemaType::new( utoipa::openapi::schema::Type::String, )) .into() } } #[cfg(feature = "utoipa")] impl<'s, R: RefCounted> utoipa::ToSchema for FlexStr<'s, str, R> { fn name() -> Cow<'static, str> { Cow::Borrowed("String") } } ================================================ FILE: tests/common/as_ref.rs ================================================ #![allow(dead_code)] use flexstr::{FlexStr, RefCounted}; /// Test AsRef<[u8]> for FlexStr<[u8], R> #[cfg(feature = "bytes")] pub fn test_as_ref_bytes_flex_str(s: &'static [u8]) where R: RefCounted<[u8]>, { let flex_str: FlexStr<'_, [u8], R> = FlexStr::from_borrowed(s); let bytes_ref: &[u8] = flex_str.as_ref(); assert_eq!(bytes_ref, s); } /// Test AsRef for FlexStr #[cfg(all(feature = "std", feature = "osstr"))] pub fn test_as_ref_osstr_flex_str(s: &'static std::ffi::OsStr) where R: RefCounted, { let flex_str: FlexStr<'_, std::ffi::OsStr, R> = FlexStr::from_borrowed(s); let os_str_ref: &std::ffi::OsStr = flex_str.as_ref(); assert_eq!(os_str_ref, s); } /// Test AsRef for FlexStr #[cfg(all(feature = "std", feature = "path"))] pub fn test_as_ref_path_flex_str(s: &'static std::path::Path) where R: RefCounted, { let flex_str: FlexStr<'_, std::path::Path, R> = FlexStr::from_borrowed(s); let path_ref: &std::path::Path = flex_str.as_ref(); assert_eq!(path_ref, s); } /// Test AsRef for FlexStr #[cfg(feature = "cstr")] pub fn test_as_ref_cstr_flex_str(s: &'static core::ffi::CStr) where R: RefCounted, { let flex_str: FlexStr<'_, core::ffi::CStr, R> = FlexStr::from_borrowed(s); let cstr_ref: &core::ffi::CStr = flex_str.as_ref(); assert_eq!(cstr_ref.to_bytes(), s.to_bytes()); } /// Test AsRef for FlexStr #[cfg(feature = "str")] pub fn test_as_ref_str_flex_str(s: &'static str) where R: RefCounted, { let flex_str: FlexStr<'_, str, R> = FlexStr::from_borrowed(s); let str_ref: &str = flex_str.as_ref(); assert_eq!(str_ref, s); } ================================================ FILE: tests/common/basic.rs ================================================ #![allow(dead_code)] use core::fmt; use flexstr::{FlexStr, RefCounted, StringLike}; use flexstr_support::StringToFromBytes; use inline_flexstr::InlineFlexStr; /// Test creation from borrowed string pub fn test_creation_from_borrowed(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); assert!(flex_str.is_borrowed()); assert_eq!(flex_str.as_ref_type(), s); } /// Test creation from owned string pub fn test_creation_from_owned(owned: S::Owned) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, Box: From, S::Owned: AsRef, { let flex_str: FlexStr<'static, S, R> = FlexStr::from_owned(owned.as_ref().to_owned()); assert!(flex_str.is_boxed()); assert_eq!(flex_str.as_ref_type(), owned.as_ref()); } /// Test creation from inline string pub fn test_creation_from_inline(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, { let inline_str = InlineFlexStr::try_from_type(s).unwrap(); let flex_str: FlexStr<'_, S, R> = FlexStr::from_inline(inline_str); assert!(flex_str.is_inlined()); assert_eq!(flex_str.as_ref_type(), s); } /// Test creation from reference counted string pub fn test_creation_from_ref_counted(s: R) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_ref_counted(s.clone()); assert!(flex_str.is_ref_counted()); assert_eq!(flex_str.as_ref_type(), &*s); } /// Test creation from boxed string pub fn test_creation_from_boxed(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, Box: From, S::Owned: AsRef, { let boxed = Box::from(s.to_owned()); let flex_str: FlexStr<'_, S, R> = FlexStr::from_boxed(boxed); assert!(flex_str.is_boxed()); assert_eq!(flex_str.as_ref_type(), s); } /// Test empty string creation pub fn test_empty(empty: &'static S) where S: ?Sized + StringToFromBytes, R: RefCounted, FlexStr<'static, S, R>: StringLike, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(empty); assert!(flex_str.is_borrowed()); assert!(StringLike::is_empty(&flex_str)); assert_eq!(StringLike::len(&flex_str), 0); } /// Test accessor methods pub fn test_accessors(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, FlexStr<'static, S, R>: StringLike, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); // Test as_ref_type assert_eq!(flex_str.as_ref_type(), s); // Test as_bytes let bytes = flex_str.as_bytes(); assert_eq!(bytes, S::self_as_bytes(s)); // Test as_raw_bytes let raw_bytes = flex_str.as_raw_bytes(); assert_eq!(raw_bytes, S::self_as_raw_bytes(s)); // Test len assert_eq!(StringLike::len(&flex_str), s.self_as_bytes().len()); // Test is_empty assert_eq!( StringLike::is_empty(&flex_str), s.self_as_bytes().is_empty() ); } /// Test cloning for all variants pub fn test_clone_all_variants(s: &'static S) where S: ?Sized + StringToFromBytes + PartialEq + fmt::Debug, R: RefCounted + fmt::Debug, Box: From, S::Owned: AsRef, { // Test clone for borrowed let borrowed: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let cloned = borrowed.clone(); assert_eq!(borrowed, cloned); // Test clone for inlined (input should be small enough to inline) let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let inlined: FlexStr<'_, S, R> = FlexStr::from_inline(inline_str); let cloned = inlined.clone(); assert_eq!(inlined, cloned); // Test clone for ref counted let rc: R = s.into(); let ref_counted: FlexStr<'_, S, R> = FlexStr::from_ref_counted(rc.clone()); let cloned = ref_counted.clone(); assert_eq!(ref_counted, cloned); // Test clone for boxed let boxed: FlexStr<'_, S, R> = FlexStr::from_boxed(Box::from(s.to_owned())); let cloned = boxed.clone(); assert_eq!(boxed, cloned); } /// Test Default implementation /// Note: This test is only applicable for types where `&S: Default` pub fn test_default() where S: ?Sized + StringToFromBytes, R: RefCounted, for<'a> &'a S: Default, FlexStr<'static, S, R>: StringLike, { let flex_str = FlexStr::default(); assert!(flex_str.is_borrowed()); assert!(StringLike::is_empty(&flex_str)); } ================================================ FILE: tests/common/borrow.rs ================================================ #![allow(dead_code)] use core::borrow::Borrow; use flexstr::{FlexStr, RefCounted}; use flexstr_support::StringToFromBytes; /// Test Borrow implementation for FlexStr pub fn test_borrow(s: &'static S) where S: ?Sized + StringToFromBytes, R: RefCounted, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); // Test Borrow::borrow() returns &S let borrowed: &S = flex_str.borrow(); assert_eq!(borrowed as *const S, s as *const S); } ================================================ FILE: tests/common/comparison.rs ================================================ #![allow(dead_code)] use core::fmt; use flexstr::{FlexStr, RefCounted}; use flexstr_support::StringToFromBytes; use inline_flexstr::InlineFlexStr; // Remove Debug requirement from R where not needed /// Test PartialEq implementation pub fn test_partial_eq(s1: &'static S, s2: &'static S) where S: ?Sized + StringToFromBytes + PartialEq + fmt::Debug, R: RefCounted + fmt::Debug, Box: From, S::Owned: AsRef, { let flex_str1: FlexStr<'_, S, R> = FlexStr::from_borrowed(s1); let flex_str2: FlexStr<'_, S, R> = FlexStr::from_borrowed(s2); // Test equality if s1 == s2 { assert_eq!(flex_str1, flex_str2); } else { assert!(flex_str1 != flex_str2); } // Test equality across variants (input should be small enough to inline) let inline_str = InlineFlexStr::try_from_type(s1).expect("test input should be small enough to inline"); let inlined: FlexStr<'_, S, R> = FlexStr::from_inline(inline_str); assert_eq!(flex_str1, inlined); } /// Test Eq implementation pub fn test_eq(s: &'static S) where S: ?Sized + StringToFromBytes + PartialEq + Eq + fmt::Debug, R: RefCounted + fmt::Debug, Box: From, S::Owned: AsRef, { let flex_str1: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let flex_str2: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); // Eq requires reflexivity, symmetry, transitivity // Reflexivity: a == a assert_eq!(flex_str1, flex_str2); // Symmetry assert_eq!(flex_str2, flex_str1); // Symmetry } /// Test PartialOrd implementation pub fn test_partial_ord(s1: &'static S, s2: &'static S) where S: ?Sized + StringToFromBytes + PartialOrd, R: RefCounted, { let flex_str1: FlexStr<'_, S, R> = FlexStr::from_borrowed(s1); let flex_str2: FlexStr<'_, S, R> = FlexStr::from_borrowed(s2); // Test inputs should be comparable (partial_cmp should return Some) let ord = s1 .partial_cmp(s2) .expect("test inputs should be comparable"); assert_eq!(flex_str1.partial_cmp(&flex_str2), Some(ord)); } /// Test Ord implementation pub fn test_ord(s1: &'static S, s2: &'static S) where S: ?Sized + StringToFromBytes + Ord, R: RefCounted, { let flex_str1: FlexStr<'_, S, R> = FlexStr::from_borrowed(s1); let flex_str2: FlexStr<'_, S, R> = FlexStr::from_borrowed(s2); assert_eq!(flex_str1.cmp(&flex_str2), s1.cmp(s2)); } /// Test Hash implementation consistency pub fn test_hash(s: &'static S) where S: ?Sized + StringToFromBytes + core::hash::Hash, R: RefCounted, Box: From, S::Owned: AsRef, { use core::hash::{Hash, Hasher}; use std::collections::hash_map::DefaultHasher; // Test that different variants hash to the same value let borrowed: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let mut hasher1 = DefaultHasher::new(); borrowed.hash(&mut hasher1); let hash1 = hasher1.finish(); // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let inlined: FlexStr<'_, S, R> = FlexStr::from_inline(inline_str); let mut hasher2 = DefaultHasher::new(); inlined.hash(&mut hasher2); let hash2 = hasher2.finish(); assert_eq!(hash1, hash2); // Test that ref_counted variant hashes the same // Test input should be non-empty assert!( !s.self_as_bytes().is_empty(), "test input should be non-empty" ); let rc: R = s.into(); let ref_counted: FlexStr<'_, S, R> = FlexStr::from_ref_counted(rc); let mut hasher3 = DefaultHasher::new(); ref_counted.hash(&mut hasher3); let hash3 = hasher3.finish(); assert_eq!(hash1, hash3); } /// Test comparison with &S pub fn test_comparison_with_ref(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); // Test equality with &S - compare through as_ref_type assert_eq!(flex_str.as_ref_type(), s); } /// Test comparison with S::Owned pub fn test_comparison_with_owned(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, S::Owned: PartialEq + AsRef, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let owned = s.to_owned(); assert_eq!(flex_str.as_ref_type(), owned.as_ref()); } /// Test comparison with InlineFlexStr pub fn test_comparison_with_inline(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); assert_eq!(flex_str.as_ref_type(), inline_str.as_ref_type()); } /// Test PartialEq with owned types (String, Cow, etc.) for FlexStr pub fn test_partial_eq_with_owned_types(s: &'static S) where S: ?Sized + StringToFromBytes + PartialEq + fmt::Debug, R: RefCounted + fmt::Debug, S::Owned: PartialEq + AsRef, Box: From, { use alloc::borrow::Cow; let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let owned: S::Owned = s.to_owned(); // Test FlexStr == S::Owned (through PartialEq implementation) assert_eq!(flex_str.as_ref_type(), owned.as_ref()); // Test reverse comparison: S::Owned == FlexStr assert_eq!(owned.as_ref(), flex_str.as_ref_type()); // Test with Cow::Owned let cow_owned: Cow<'_, S> = Cow::Owned(owned); assert_eq!(flex_str.as_ref_type(), cow_owned.as_ref()); assert_eq!(cow_owned.as_ref(), flex_str.as_ref_type()); // Test with Cow::Borrowed let cow_borrowed: Cow<'_, S> = Cow::Borrowed(s); assert_eq!(flex_str.as_ref_type(), cow_borrowed.as_ref()); assert_eq!(cow_borrowed.as_ref(), flex_str.as_ref_type()); } ================================================ FILE: tests/common/conversion.rs ================================================ #![allow(dead_code)] use core::fmt; use flexstr::{FlexStr, RefCounted, StringLike}; use flexstr_support::StringToFromBytes; use inline_flexstr::InlineFlexStr; /// Test to_owned conversion pub fn test_to_owned(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, Box: From, S::Owned: AsRef, { let borrowed: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let owned = borrowed.to_owned(); assert_eq!(owned.as_ref_type(), s); assert!(matches!( owned, FlexStr::Inlined(_) | FlexStr::RefCounted(_) )); } /// Test into_owned conversion pub fn test_into_owned(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, Box: From, S::Owned: AsRef, { let borrowed: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let owned = borrowed.into_owned(); assert_eq!(owned.as_ref_type(), s); assert!(!owned.is_borrowed()); } /// Test to_owned_type conversion pub fn test_to_owned_type(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, S::Owned: PartialEq + AsRef, FlexStr<'static, S, R>: StringLike, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let owned = StringLike::to_owned_type(&flex_str); assert_eq!(owned.as_ref(), s); } /// Test into_owned_type conversion pub fn test_into_owned_type(s: &'static S) where S: ?Sized + StringToFromBytes + PartialEq + fmt::Debug, R: RefCounted, Box: From, S::Owned: PartialEq + AsRef + From>, FlexStr<'static, S, R>: StringLike, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let owned = StringLike::into_owned_type(flex_str); assert_eq!(owned.as_ref(), s); } /// Test to_local conversion (from Shared to Local) pub fn test_to_local(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, alloc::sync::Arc: for<'a> From<&'a S>, alloc::rc::Rc: for<'a> From<&'a S>, { use alloc::sync::Arc; let shared: FlexStr<'_, S, Arc> = FlexStr::from_borrowed(s); let local = shared.to_local(); assert_eq!(local.as_ref_type(), s); assert!(local.is_borrowed() || local.is_inlined() || local.is_ref_counted()); } /// Test into_local conversion (from Shared to Local) pub fn test_into_local(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, alloc::sync::Arc: for<'a> From<&'a S>, alloc::rc::Rc: for<'a> From<&'a S>, { use alloc::sync::Arc; let shared: FlexStr<'_, S, Arc> = FlexStr::from_borrowed(s); let local = shared.into_local(); assert_eq!(local.as_ref_type(), s); } /// Test to_shared conversion (from Local to Shared) pub fn test_to_shared(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, alloc::sync::Arc: for<'a> From<&'a S>, alloc::rc::Rc: for<'a> From<&'a S>, { use alloc::rc::Rc; let local: FlexStr<'_, S, Rc> = FlexStr::from_borrowed(s); let shared = local.to_shared(); assert_eq!(shared.as_ref_type(), s); assert!(shared.is_borrowed() || shared.is_inlined() || shared.is_ref_counted()); } /// Test into_shared conversion (from Local to Shared) pub fn test_into_shared(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, alloc::sync::Arc: for<'a> From<&'a S>, alloc::rc::Rc: for<'a> From<&'a S>, { use alloc::rc::Rc; let local: FlexStr<'_, S, Rc> = FlexStr::from_borrowed(s); let shared = local.into_shared(); assert_eq!(shared.as_ref_type(), s); } /// Test optimize method pub fn test_optimize(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, Box: From, S::Owned: AsRef, { // Test optimize on boxed (should convert to inlined or ref_counted) let boxed: FlexStr<'_, S, R> = FlexStr::from_boxed(Box::from(s.to_owned())); let optimized = boxed.optimize(); assert_eq!(optimized.as_ref_type(), s); assert!(matches!( optimized, FlexStr::Inlined(_) | FlexStr::RefCounted(_) )); // Test optimize on borrowed (should stay borrowed) let borrowed: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let optimized = borrowed.optimize(); assert_eq!(optimized.as_ref_type(), s); assert!(optimized.is_borrowed()); } /// Test From<&S> implementation pub fn test_from_borrowed_ref(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, { let flex_str: FlexStr<'_, S, R> = s.into(); assert!(flex_str.is_borrowed()); assert_eq!(flex_str.as_ref_type(), s); } /// Test From> implementation pub fn test_from_box(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, Box: From, S::Owned: AsRef, { let boxed = Box::from(s.to_owned()); let flex_str: FlexStr<'_, S, R> = boxed.into(); assert!(flex_str.is_boxed()); assert_eq!(flex_str.as_ref_type(), s); } /// Test From implementation pub fn test_from_inline_flex_str(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, { // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let flex_str: FlexStr<'_, S, R> = inline_str.into(); assert!(flex_str.is_inlined()); assert_eq!(flex_str.as_ref_type(), s); } /// Test From implementation pub fn test_from_cow(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, Box: From, S::Owned: AsRef, { use alloc::borrow::Cow; // Test Cow::Borrowed let cow: Cow<'_, S> = Cow::Borrowed(s); let flex_str: FlexStr<'_, S, R> = cow.into(); assert!(flex_str.is_borrowed()); assert_eq!(flex_str.as_ref_type(), s); // Test Cow::Owned let cow: Cow<'_, S> = Cow::Owned(s.to_owned()); let flex_str: FlexStr<'_, S, R> = cow.into(); assert!(flex_str.is_boxed()); assert_eq!(flex_str.as_ref_type(), s); } ================================================ FILE: tests/common/cstr_specific.rs ================================================ #![allow(dead_code)] use core::ffi::CStr; use flexstr::{FlexStr, RefCounted}; /// Test try_from_bytes_with_or_without_nul with valid CStr (with NUL) pub fn test_try_from_bytes_with_nul() where R: RefCounted, { let bytes = b"test\0"; let flex_str = FlexStr::<'_, CStr, R>::try_from_bytes_with_or_without_nul(bytes).unwrap(); assert_eq!(flex_str.as_ref_type(), c"test"); } /// Test try_from_bytes_with_or_without_nul with bytes without NUL pub fn test_try_from_bytes_without_nul() where R: RefCounted, { let bytes = b"test"; let flex_str = FlexStr::<'_, CStr, R>::try_from_bytes_with_or_without_nul(bytes).unwrap(); // Should have NUL appended assert_eq!(flex_str.as_bytes_with_nul(), b"test\0"); } /// Test try_from_bytes_with_or_without_nul with interior NUL pub fn test_try_from_bytes_interior_nul() where R: RefCounted + core::fmt::Debug, { let bytes = b"te\0st"; let err = FlexStr::<'_, CStr, R>::try_from_bytes_with_or_without_nul(bytes).unwrap_err(); assert_eq!(err.position, 2); } /// Test as_bytes_with_nul pub fn test_as_bytes_with_nul(cstr: &'static CStr) where R: RefCounted, { let flex_str: FlexStr<'_, CStr, R> = FlexStr::from_borrowed(cstr); let bytes = flex_str.as_bytes_with_nul(); assert_eq!(bytes, cstr.to_bytes_with_nul()); } ================================================ FILE: tests/common/display.rs ================================================ #![allow(dead_code)] use core::fmt; use flexstr::{FlexStr, RefCounted}; use flexstr_support::StringToFromBytes; /// Test Display implementation for FlexStr pub fn test_display(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Display + fmt::Debug, R: RefCounted, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); // Format both the original and FlexStr let original_fmt = format!("{}", s); let flex_fmt = format!("{}", flex_str); assert_eq!(original_fmt, flex_fmt); } ================================================ FILE: tests/common/edge_cases.rs ================================================ #![allow(dead_code)] use core::fmt; use flexstr::{FlexStr, RefCounted, StringLike}; use flexstr_support::StringToFromBytes; use inline_flexstr::{INLINE_CAPACITY, InlineFlexStr, TooLongForInlining}; /// Test empty string operations pub fn test_empty_string(empty: &'static S) where S: ?Sized + StringToFromBytes + PartialEq + fmt::Debug, R: RefCounted + fmt::Debug, FlexStr<'static, S, R>: StringLike, Box: From, S::Owned: AsRef, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(empty); assert!(StringLike::is_empty(&flex_str)); assert_eq!(StringLike::len(&flex_str), 0); assert!(flex_str.is_borrowed()); // Test empty string can be cloned let cloned = flex_str.clone(); assert_eq!(flex_str, cloned); // Test empty string can be converted to owned let owned = flex_str.to_owned(); assert_eq!(owned.as_ref_type(), empty); assert!(StringLike::is_empty(&owned)); } /// Test capacity boundary - string at exact capacity /// Input must be exactly at INLINE_CAPACITY pub fn test_capacity_boundary_exact(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, { let bytes = s.self_as_raw_bytes(); assert_eq!( bytes.len(), INLINE_CAPACITY, "test input must be exactly at capacity" ); let inline_str = InlineFlexStr::try_from_type(s).expect("string at exact capacity should inline"); let flex_str: FlexStr<'_, S, R> = FlexStr::from_inline(inline_str); assert!(flex_str.is_inlined()); assert_eq!(flex_str.as_ref_type(), s); } /// Test capacity boundary - string one byte over capacity /// Input must be smaller than INLINE_CAPACITY pub fn test_capacity_boundary_overflow(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, { let bytes = s.self_as_raw_bytes(); assert!( bytes.len() < INLINE_CAPACITY, "test input must be smaller than capacity" ); // Since bytes.len() < INLINE_CAPACITY, bytes.len() <= INLINE_CAPACITY is always true // So try_from_type should always succeed let _inline_str = InlineFlexStr::try_from_type(s).expect("string smaller than capacity should succeed"); } /// Test TryFrom error cases - too long // Type parameter intentionally unused - kept for API consistency with other test functions #[allow(unused)] pub fn test_try_from_too_long() { // Create a string that's definitely too long // This is tricky to do generically, so we'll test the error type let _long_bytes = [0u8; INLINE_CAPACITY + 1]; // Try to create from bytes if possible // This will depend on the specific string type // For now, we'll just verify the error type exists let err = TooLongForInlining { length: INLINE_CAPACITY + 1, inline_capacity: INLINE_CAPACITY, }; assert_eq!(err.length, INLINE_CAPACITY + 1); assert_eq!(err.inline_capacity, INLINE_CAPACITY); } /// Test various string lengths pub fn test_various_lengths(s: &'static S) where S: ?Sized + StringToFromBytes + PartialEq + fmt::Debug, R: RefCounted, FlexStr<'static, S, R>: StringLike, { let bytes = s.self_as_bytes(); let len = bytes.len(); let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); // Test length matches assert_eq!(StringLike::len(&flex_str), len); // Test empty check assert_eq!(StringLike::is_empty(&flex_str), len == 0); // Test that we can always create a borrowed variant assert!(flex_str.is_borrowed()); // Test that we can convert to owned regardless of length let owned = flex_str.to_owned(); assert_eq!(StringLike::len(&owned), len); assert_eq!(owned.as_ref_type(), s); } /// Test special content (if applicable) pub fn test_special_content(s: &'static S) where S: ?Sized + StringToFromBytes + PartialEq, R: RefCounted, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); // Test that special characters/content are preserved let bytes = flex_str.as_bytes(); assert_eq!(bytes, s.self_as_bytes()); // Test that raw bytes match let raw_bytes = flex_str.as_raw_bytes(); assert_eq!(raw_bytes, s.self_as_raw_bytes()); // Test conversion preserves content let owned = flex_str.to_owned(); assert_eq!(owned.as_bytes(), bytes); assert_eq!(owned.as_raw_bytes(), raw_bytes); } /// Test clone with different variants pub fn test_clone_variants(s: &'static S) where S: ?Sized + StringToFromBytes + PartialEq + fmt::Debug, R: RefCounted + fmt::Debug, Box: From, S::Owned: AsRef, { // Test clone of borrowed let borrowed: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let cloned = borrowed.clone(); assert_eq!(borrowed, cloned); // Test clone of inlined (input should be small enough to inline) let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let inlined: FlexStr<'_, S, R> = FlexStr::from_inline(inline_str); let cloned = inlined.clone(); assert_eq!(inlined, cloned); // Test clone of ref_counted let rc: R = s.into(); let ref_counted: FlexStr<'_, S, R> = FlexStr::from_ref_counted(rc.clone()); let cloned = ref_counted.clone(); assert_eq!(ref_counted, cloned); // Test clone of boxed let boxed: FlexStr<'_, S, R> = FlexStr::from_boxed(Box::from(s.to_owned())); let cloned = boxed.clone(); assert!(matches!( cloned, FlexStr::Inlined(_) | FlexStr::RefCounted(_) )); assert_eq!(boxed, cloned); } ================================================ FILE: tests/common/errors.rs ================================================ #![allow(dead_code)] use core::fmt; use inline_flexstr::TooLongForInlining; #[cfg(feature = "str")] use inline_flexstr::TooLongOrUtf8Error; #[cfg(feature = "cstr")] use flexstr::InteriorNulError; #[cfg(feature = "cstr")] use inline_flexstr::TooLongOrNulError; /// Test Display implementation for error types pub fn test_error_display(error: E) where E: fmt::Display + fmt::Debug, { let display_str = format!("{}", error); let debug_str = format!("{:?}", error); // Display should produce a non-empty string assert!(!display_str.is_empty()); // Debug should also produce a non-empty string assert!(!debug_str.is_empty()); } /// Test TooLongForInlining error pub fn test_too_long_for_inlining() { let err = TooLongForInlining { length: 100, inline_capacity: 30, }; // Test that the error message contains relevant information let msg = format!("{}", err); assert!(msg.contains("too long")); assert!(msg.contains("100")); assert!(msg.contains("30")); test_error_display(err); } /// Test TooLongOrUtf8Error::TooLong variant #[cfg(feature = "str")] pub fn test_too_long_or_utf8_error_too_long() { let err = TooLongOrUtf8Error::TooLong(TooLongForInlining { length: 100, inline_capacity: 30, }); test_error_display(err); } /// Test TooLongOrUtf8Error::Utf8Error variant #[cfg(feature = "str")] pub fn test_too_long_or_utf8_error_utf8() { // Create an invalid UTF-8 sequence let invalid_utf8: &[u8] = unsafe { core::slice::from_raw_parts([0xFFu8, 0xFFu8, 0xFFu8].as_ptr(), 3) }; let utf8_err = str::from_utf8(invalid_utf8).unwrap_err(); let err = TooLongOrUtf8Error::Utf8Error(utf8_err); test_error_display(err); } /// Test InteriorNulError #[cfg(feature = "cstr")] pub fn test_interior_nul_error() { let err = InteriorNulError { position: 5 }; let msg = format!("{}", err); assert!(msg.contains("Interior NUL")); assert!(msg.contains("5")); test_error_display(err); } /// Test TooLongOrNulError::TooLong variant #[cfg(feature = "cstr")] pub fn test_too_long_or_nul_error_too_long() { let err = TooLongOrNulError::TooLong(TooLongForInlining { length: 100, inline_capacity: 30, }); test_error_display(err); } /// Test TooLongOrNulError::NulError variant #[cfg(feature = "cstr")] pub fn test_too_long_or_nul_error_nul() { let err = TooLongOrNulError::NulError(InteriorNulError { position: 3 }); test_error_display(err); } ================================================ FILE: tests/common/from.rs ================================================ #![allow(dead_code)] use core::fmt; use flexstr::{FlexStr, RefCounted}; use flexstr_support::StringToFromBytes; /// Test From implementation pub fn test_from<'s, T, S, R>(value: T) where T: Into> + fmt::Debug, S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, S::Owned: AsRef, { let flex_str: FlexStr<'s, S, R> = value.into(); // Basic sanity check - the conversion should succeed assert_eq!(flex_str.as_ref_type(), flex_str.as_ref_type()); } /// Test From for FlexStr #[cfg(feature = "str")] pub fn test_from_string_str() where R: RefCounted, { use alloc::string::String; let s = String::from("test"); let flex_str: FlexStr<'_, str, R> = s.into(); assert_eq!(flex_str.as_ref_type(), "test"); } /// Test From> for FlexStr<[u8], R> #[cfg(feature = "bytes")] pub fn test_from_vec_bytes() where R: RefCounted<[u8]>, { let v = alloc::vec![1u8, 2u8, 3u8]; let flex_str: FlexStr<'_, [u8], R> = v.into(); assert_eq!(flex_str.as_ref_type(), &[1u8, 2u8, 3u8][..]); } /// Test From<&str> for FlexStr<[u8], R> #[cfg(feature = "bytes")] pub fn test_from_str_bytes() where R: RefCounted<[u8]>, { let s = "test"; let flex_str: FlexStr<'_, [u8], R> = s.into(); assert_eq!(flex_str.as_ref_type(), b"test"); } /// Test From for FlexStr #[cfg(all(feature = "std", feature = "osstr"))] pub fn test_from_os_string() where R: RefCounted, { use std::ffi::OsString; let os_string: OsString = OsString::from("test"); let flex_str: FlexStr<'_, std::ffi::OsStr, R> = os_string.into(); assert_eq!(flex_str.as_ref_type(), std::ffi::OsStr::new("test")); } /// Test From for FlexStr #[cfg(all(feature = "std", feature = "osstr"))] pub fn test_from_string_osstr() where R: RefCounted, { let s = String::from("test"); let flex_str: FlexStr<'_, std::ffi::OsStr, R> = s.into(); assert_eq!(flex_str.as_ref_type(), std::ffi::OsStr::new("test")); } /// Test From for FlexStr #[cfg(all(feature = "std", feature = "osstr", feature = "path"))] pub fn test_from_path_buf_osstr() where R: RefCounted, { use std::path::PathBuf; let path_buf = PathBuf::from("test"); let flex_str: FlexStr<'_, std::ffi::OsStr, R> = path_buf.into(); assert_eq!(flex_str.as_ref_type(), std::ffi::OsStr::new("test")); } /// Test From<&str> for FlexStr #[cfg(all(feature = "std", feature = "osstr"))] pub fn test_from_str_ref_osstr() where R: RefCounted, { let s = "test"; let flex_str: FlexStr<'_, std::ffi::OsStr, R> = s.into(); assert_eq!(flex_str.as_ref_type(), std::ffi::OsStr::new("test")); } /// Test From<&Path> for FlexStr #[cfg(all(feature = "std", feature = "osstr", feature = "path"))] pub fn test_from_path_ref_osstr() where R: RefCounted, { use std::path::Path; let path = Path::new("test"); let flex_str: FlexStr<'_, std::ffi::OsStr, R> = path.into(); assert_eq!(flex_str.as_ref_type(), std::ffi::OsStr::new("test")); } /// Test From for FlexStr #[cfg(all(feature = "std", feature = "path"))] pub fn test_from_path_buf() where R: RefCounted, { use std::path::{Path, PathBuf}; let path_buf = PathBuf::from("test"); let flex_str: FlexStr<'_, Path, R> = path_buf.into(); assert_eq!(flex_str.as_ref_type(), Path::new("test")); } /// Test From for FlexStr #[cfg(all(feature = "std", feature = "path"))] pub fn test_from_string_path() where R: RefCounted, { use std::path::Path; let s = String::from("test"); let flex_str: FlexStr<'_, Path, R> = s.into(); assert_eq!(flex_str.as_ref_type(), Path::new("test")); } /// Test From for FlexStr #[cfg(all(feature = "std", feature = "path"))] pub fn test_from_os_string_path() where R: RefCounted, { use std::ffi::OsString; use std::path::Path; let os_string = OsString::from("test"); let flex_str: FlexStr<'_, Path, R> = os_string.into(); assert_eq!(flex_str.as_ref_type(), Path::new("test")); } /// Test From<&str> for FlexStr #[cfg(all(feature = "std", feature = "path"))] pub fn test_from_str_ref_path() where R: RefCounted, { use std::path::Path; let s = "test"; let flex_str: FlexStr<'_, Path, R> = s.into(); assert_eq!(flex_str.as_ref_type(), Path::new("test")); } /// Test From<&OsStr> for FlexStr #[cfg(all(feature = "std", feature = "path"))] pub fn test_from_osstr_ref_path() where R: RefCounted, { use std::ffi::OsStr; use std::path::Path; let os_str = OsStr::new("test"); let flex_str: FlexStr<'_, Path, R> = os_str.into(); assert_eq!(flex_str.as_ref_type(), Path::new("test")); } ================================================ FILE: tests/common/from_str.rs ================================================ #![allow(dead_code)] use core::fmt; use core::str::FromStr; use flexstr::{FlexStr, RefCounted}; use flexstr_support::StringToFromBytes; /// Test FromStr success for FlexStr pub fn test_from_str_flex_str_success(s: &str) where FlexStr<'static, S, R>: FromStr, S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, S::Owned: AsRef, { let flex_str = FlexStr::from_str(s).unwrap(); assert_eq!(flex_str.as_ref_type(), flex_str.as_ref_type()); // Basic sanity check } /// Test FromStr for FlexStr<[u8], R> #[cfg(feature = "bytes")] pub fn test_from_str_bytes_success() where R: RefCounted<[u8]>, { let flex_str = FlexStr::<'static, [u8], R>::from_str("test").unwrap(); assert_eq!(flex_str.as_ref_type(), b"test"); } /// Test FromStr for FlexStr #[cfg(all(feature = "std", feature = "osstr"))] pub fn test_from_str_osstr_success() where R: RefCounted, { use std::ffi::OsStr; let flex_str = FlexStr::<'static, OsStr, R>::from_str("test").unwrap(); assert_eq!(flex_str.as_ref_type(), OsStr::new("test")); } /// Test FromStr for FlexStr #[cfg(all(feature = "std", feature = "path"))] pub fn test_from_str_path_success() where R: RefCounted, { use std::path::Path; let flex_str = FlexStr::<'static, Path, R>::from_str("test").unwrap(); assert_eq!(flex_str.as_ref_type(), Path::new("test")); } /// Test FromStr for FlexStr success #[cfg(feature = "cstr")] pub fn test_from_str_cstr_success() where R: RefCounted + fmt::Debug, { use flexstr::FlexStr; let flex_str = FlexStr::<'static, core::ffi::CStr, R>::from_str("test").unwrap(); assert_eq!(flex_str.as_ref_type().to_bytes(), b"test"); } /// Test FromStr for FlexStr error (interior NUL) #[cfg(feature = "cstr")] pub fn test_from_str_cstr_error() where R: RefCounted + fmt::Debug, { use flexstr::{FlexStr, InteriorNulError}; // String with interior NUL should fail let result: Result, InteriorNulError> = FlexStr::from_str("test\0middle"); result.unwrap_err(); } ================================================ FILE: tests/common/index.rs ================================================ #![allow(dead_code)] use core::fmt; use flexstr::{FlexStr, RefCounted}; use flexstr_support::StringToFromBytes; /// Test Index implementation for FlexStr /// This tests that FlexStr can be dereferenced to &S, which is required for Index pub fn test_index(s: &'static S) where S: ?Sized + StringToFromBytes + PartialEq + fmt::Debug, R: RefCounted, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); // Test that we can deref to get &S (required for Index trait) // The dereferenced values should be equal, not necessarily the same pointer let original_ref: &S = s; let flex_ref: &S = &flex_str; // Verify the references are equal via PartialEq (not pointer equality) assert_eq!(original_ref, flex_ref); } ================================================ FILE: tests/common/inline_edge_cases.rs ================================================ #![allow(dead_code)] use core::fmt; use flexstr::{FlexStr, RefCounted}; use flexstr_support::StringToFromBytes; use inline_flexstr::INLINE_CAPACITY; /// Test optimize() path where RefCounted is converted to Inlined /// Input must be small enough to inline (<= INLINE_CAPACITY) pub fn test_optimize_ref_counted_to_inlined(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, { let bytes = S::self_as_raw_bytes(s); assert!( bytes.len() <= INLINE_CAPACITY, "test input must be small enough to inline" ); let rc: R = s.into(); let ref_counted: FlexStr<'_, S, R> = FlexStr::from_ref_counted(rc); let optimized = ref_counted.optimize(); // Should be inlined after optimization assert!(optimized.is_inlined()); assert_eq!(optimized.as_ref_type(), s); } /// Test optimize() path where RefCounted stays RefCounted (too large) /// Input must be too large to inline (> INLINE_CAPACITY) pub fn test_optimize_ref_counted_stays_ref_counted(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, { let bytes = S::self_as_raw_bytes(s); assert!( bytes.len() > INLINE_CAPACITY, "test input must be too large to inline" ); let rc: R = s.into(); let ref_counted: FlexStr<'_, S, R> = FlexStr::from_ref_counted(rc.clone()); let optimized = ref_counted.optimize(); // Should stay as ref_counted assert!(optimized.is_ref_counted()); assert_eq!(optimized.as_ref_type(), s); } ================================================ FILE: tests/common/mod.rs ================================================ pub mod as_ref; pub mod basic; pub mod borrow; pub mod comparison; pub mod conversion; #[cfg(feature = "cstr")] pub mod cstr_specific; pub mod display; pub mod edge_cases; pub mod errors; pub mod from; pub mod from_str; pub mod index; pub mod inline_edge_cases; #[cfg(any(feature = "str", feature = "bytes"))] pub mod mutate; #[cfg(any(feature = "cstr", feature = "osstr", feature = "path"))] pub mod mutate_fallback; #[cfg(feature = "prost")] pub mod prost; #[cfg(feature = "serde")] pub mod serialize; #[cfg(feature = "std")] pub mod socket; pub mod storage; pub mod stringlike; pub mod try_from; #[cfg(feature = "utoipa")] pub mod utoipa; #[cfg(feature = "zeroize")] pub mod zeroize; ================================================ FILE: tests/common/mutate.rs ================================================ use core::fmt; use flexstr::{FlexStr, RefCountedMut}; use flexstr_support::StringFromBytesMut; #[allow(dead_code)] pub fn test_mutation_borrowed(s: &'static S) where S: ?Sized + StringFromBytesMut + fmt::Debug + PartialEq, R: RefCountedMut, { let mut flex_str: FlexStr = s.into(); assert!(flex_str.is_borrowed()); let s2 = flex_str.to_mut_type(); assert_eq!(s2, s); assert!(flex_str.is_inlined()); let s2 = flex_str.to_mut_type(); assert_eq!(s2, s); } #[allow(dead_code)] pub fn test_mutation_inlined(s: &'static S) where S: ?Sized + StringFromBytesMut + fmt::Debug + PartialEq, R: RefCountedMut, { let mut flex_str: FlexStr = s.into(); flex_str = flex_str.into_owned(); assert!(flex_str.is_inlined()); let s2 = flex_str.to_mut_type(); assert_eq!(s2, s); } #[allow(dead_code)] pub fn test_mutation_ref_counted(s: R) where S: ?Sized + StringFromBytesMut + fmt::Debug + PartialEq, R: RefCountedMut + for<'a> Into>, { let mut flex_str: FlexStr = s.clone().into(); assert!(flex_str.is_ref_counted()); let s2 = flex_str.to_mut_type(); assert_eq!(s2, &*s); } #[allow(dead_code)] pub fn test_mutation_boxed(s: S::Owned) where S: ?Sized + StringFromBytesMut + fmt::Debug + PartialEq, R: RefCountedMut, S::Owned: for<'a> Into> + Clone + AsRef, { let mut flex_str: FlexStr = s.clone().into(); assert!(flex_str.is_boxed()); let s2 = flex_str.to_mut_type(); assert_eq!(s2, s.as_ref()); } ================================================ FILE: tests/common/mutate_fallback.rs ================================================ use core::fmt; use flexstr::{FlexStr, ImmutableBytes, RefCountedMut}; #[allow(dead_code)] pub fn test_mutation_immutable_bytes_borrowed(s: &'static S) where S: ?Sized + ImmutableBytes + fmt::Debug + PartialEq, R: RefCountedMut, { let mut flex_str: FlexStr = s.into(); assert!(flex_str.is_borrowed()); let s2 = flex_str.to_mut_type_fallback(); assert_eq!(s2, s); assert!(flex_str.is_ref_counted()); let s2 = flex_str.to_mut_type_fallback(); assert_eq!(s2, s); } #[allow(dead_code)] pub fn test_mutation_immutable_bytes_inlined(s: &'static S) where S: ?Sized + ImmutableBytes + fmt::Debug + PartialEq, R: RefCountedMut, { let mut flex_str: FlexStr = s.into(); flex_str = flex_str.into_owned(); assert!(flex_str.is_inlined()); let s2 = flex_str.to_mut_type_fallback(); assert_eq!(s2, s); assert!(flex_str.is_ref_counted()); let s2 = flex_str.to_mut_type_fallback(); assert_eq!(s2, s); } #[allow(dead_code)] pub fn test_mutation_immutable_bytes_ref_counted(s: R) where S: ?Sized + ImmutableBytes + fmt::Debug + PartialEq, R: RefCountedMut + for<'a> Into>, { let mut flex_str: FlexStr = s.clone().into(); assert!(flex_str.is_ref_counted()); let s2 = flex_str.to_mut_type_fallback(); assert_eq!(s2, &*s); } #[allow(dead_code)] pub fn test_mutation_immutable_bytes_boxed(s: S::Owned) where S: ?Sized + ImmutableBytes + fmt::Debug + PartialEq, R: RefCountedMut, S::Owned: for<'a> Into> + Clone + AsRef, { let mut flex_str: FlexStr = s.clone().into(); assert!(flex_str.is_boxed()); let s2 = flex_str.to_mut_type_fallback(); assert_eq!(s2, s.as_ref()); } ================================================ FILE: tests/common/prost.rs ================================================ #![allow(dead_code)] use core::fmt; use prost::Message; /// Test that encoding and decoding round-trips correctly. pub fn encode_decode_round_trip(s: &'static str) where F: Message + Default + TryFrom<&'static str> + PartialEq + fmt::Debug, >::Error: fmt::Debug, { let original: F = s.try_into().unwrap(); let encoded = original.encode_to_vec(); let decoded = F::decode(&encoded[..]).unwrap(); assert_eq!(original, decoded); } /// Test that length-delimited encoding and decoding round-trips correctly. pub fn encode_length_delimited_round_trip(s: &'static str) where F: Message + Default + TryFrom<&'static str> + PartialEq + fmt::Debug, >::Error: fmt::Debug, { let original: F = s.try_into().unwrap(); let encoded = original.encode_length_delimited_to_vec(); let decoded = F::decode_length_delimited(&encoded[..]).unwrap(); assert_eq!(original, decoded); } /// Test that encoded bytes are just raw UTF-8 (no field tags or wrapping). pub fn verify_wire_format(s: &'static str) where F: Message + Default + TryFrom<&'static str> + fmt::Debug, >::Error: fmt::Debug, { let original: F = s.try_into().unwrap(); let encoded = original.encode_to_vec(); assert_eq!(encoded, s.as_bytes(), "encoded bytes should be raw UTF-8"); assert_eq!( original.encoded_len(), s.len(), "encoded_len should match byte length" ); } /// Test that decoding an empty buffer produces the default (empty string). pub fn decode_empty() where F: Message + Default + AsRef + fmt::Debug, { let decoded = F::decode(&[][..]).unwrap(); assert_eq!( decoded.as_ref(), "", "decoding empty buffer should give empty string" ); } /// Test that clear resets to the default (empty string). pub fn clear_test(s: &'static str) where F: Message + Default + TryFrom<&'static str> + AsRef + fmt::Debug, >::Error: fmt::Debug, { let mut value: F = s.try_into().unwrap(); value.clear(); assert_eq!(value.as_ref(), "", "clear should reset to empty string"); } /// Verify that `message::encode` (for flex types) and `string::encode` (for String) /// produce identical wire format for the same string content. This is the foundation /// of cross-type compatibility: if the bytes on the wire are identical, the two types /// are interchangeable from a protocol perspective. pub fn cross_type_wire_compat(s: &'static str) where F: Message + Default + TryFrom<&'static str> + fmt::Debug, >::Error: fmt::Debug, { let flex_val: F = s.try_into().unwrap(); let string_val = s.to_string(); let tag = 1u32; // Encode the flex type as a message field let mut flex_buf = Vec::new(); prost::encoding::message::encode(tag, &flex_val, &mut flex_buf); // Encode the String as a string field let mut string_buf = Vec::new(); prost::encoding::string::encode(tag, &string_val, &mut string_buf); assert_eq!( flex_buf, string_buf, "message::encode(flex) and string::encode(String) should produce identical bytes" ); // Also verify encoded_len matches let flex_len = prost::encoding::message::encoded_len(tag, &flex_val); let string_len = prost::encoding::string::encoded_len(tag, &string_val); assert_eq!(flex_len, string_len, "encoded_len should match"); } /// Encode a flex type using `message::encode`, then decode as a String field using /// `string::merge`. Simulates: SharedStr/InlineStr server → String client. pub fn encode_flex_decode_string(s: &'static str) where F: Message + Default + TryFrom<&'static str> + fmt::Debug, >::Error: fmt::Debug, { let flex_val: F = s.try_into().unwrap(); let tag = 1u32; // Encode flex type as a message field let mut buf = Vec::new(); prost::encoding::message::encode(tag, &flex_val, &mut buf); // Decode the field key, then decode as a String let mut cursor = &buf[..]; let (decoded_tag, wire_type) = prost::encoding::decode_key(&mut cursor).unwrap(); assert_eq!(decoded_tag, tag); let mut decoded = String::new(); prost::encoding::string::merge( wire_type, &mut decoded, &mut cursor, prost::encoding::DecodeContext::default(), ) .unwrap(); assert_eq!( decoded, s, "String decoded from flex-encoded field should match" ); } /// Encode a String using `string::encode`, then decode as a flex type using /// `merge_length_delimited`. Simulates: String client → SharedStr/InlineStr server. pub fn encode_string_decode_flex(s: &'static str) where F: Message + Default + AsRef + fmt::Debug, { let string_val = s.to_string(); let tag = 1u32; // Encode String as a string field let mut buf = Vec::new(); prost::encoding::string::encode(tag, &string_val, &mut buf); // Read past the field key, then decode using our merge_length_delimited let mut cursor = &buf[..]; let (decoded_tag, wire_type) = prost::encoding::decode_key(&mut cursor).unwrap(); assert_eq!(decoded_tag, tag); assert_eq!(wire_type, prost::encoding::WireType::LengthDelimited); let mut decoded = F::default(); decoded.merge_length_delimited(cursor).unwrap(); assert_eq!( decoded.as_ref(), s, "flex type decoded from String-encoded field should match" ); } ================================================ FILE: tests/common/serialize.rs ================================================ #![allow(dead_code)] use core::fmt; use flexstr_support::StringToFromBytes; use serde::{Deserialize, Serialize}; pub fn serialize_deserialize_test<'s, F, S>(s: &'static S) where F: TryFrom<&'s S> + PartialEq + Serialize + for<'de> Deserialize<'de> + fmt::Debug, >::Error: fmt::Debug, S: ?Sized + StringToFromBytes + Serialize + fmt::Debug + PartialEq, Box: for<'de> Deserialize<'de>, { let expected_str: F = s.try_into().unwrap(); let serialized = serde_json::to_value(&expected_str).unwrap(); let expected_json = serde_json::to_value(s).unwrap(); assert_eq!(expected_json, serialized); let deserialized: F = serde_json::from_value(serialized).unwrap(); assert_eq!(expected_str, deserialized); } ================================================ FILE: tests/common/socket.rs ================================================ #![allow(dead_code)] use flexstr::{FlexStr, RefCounted}; use flexstr_support::StringToFromBytes; use std::net::ToSocketAddrs; /// Test ToSocketAddrs implementation for FlexStr pub fn test_to_socket_addrs(addr: &'static S) where S: ?Sized + StringToFromBytes + ToSocketAddrs, R: RefCounted, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(addr); // Test ToSocketAddrs - this should work if addr is a valid socket address // We'll use a simple test that doesn't require network access let mut iter = flex_str.to_socket_addrs().unwrap(); assert!(iter.next().is_some()); assert!(iter.next().is_none()); } ================================================ FILE: tests/common/storage.rs ================================================ #![allow(dead_code)] use core::fmt; use flexstr::{FlexStr, RefCounted}; use flexstr_support::StringToFromBytes; use inline_flexstr::{INLINE_CAPACITY, InlineFlexStr}; /// Test variant query methods pub fn test_variant_queries(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, Box: From, S::Owned: AsRef, { // Test borrowed variant let borrowed: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); assert!(borrowed.is_borrowed()); assert!(!borrowed.is_inlined()); assert!(!borrowed.is_ref_counted()); assert!(!borrowed.is_boxed()); assert!(borrowed.is_off_heap()); assert!(!borrowed.is_on_heap()); // Test inlined variant (input should be small enough to inline) let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let inlined: FlexStr<'_, S, R> = FlexStr::from_inline(inline_str); assert!(!inlined.is_borrowed()); assert!(inlined.is_inlined()); assert!(!inlined.is_ref_counted()); assert!(!inlined.is_boxed()); assert!(inlined.is_off_heap()); assert!(!inlined.is_on_heap()); // Test ref_counted variant let rc: R = s.into(); let ref_counted: FlexStr<'_, S, R> = FlexStr::from_ref_counted(rc); assert!(!ref_counted.is_borrowed()); assert!(!ref_counted.is_inlined()); assert!(ref_counted.is_ref_counted()); assert!(!ref_counted.is_boxed()); assert!(!ref_counted.is_off_heap()); assert!(ref_counted.is_on_heap()); // Test boxed variant let boxed: FlexStr<'_, S, R> = FlexStr::from_boxed(Box::from(s.to_owned())); assert!(!boxed.is_borrowed()); assert!(!boxed.is_inlined()); assert!(!boxed.is_ref_counted()); assert!(boxed.is_boxed()); assert!(!boxed.is_off_heap()); assert!(boxed.is_on_heap()); } /// Test variant transitions: borrowed -> inlined pub fn test_transition_borrowed_to_inlined(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, { let borrowed: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let owned = borrowed.to_owned(); // Input should be small enough to inline assert!( s.self_as_raw_bytes().len() <= INLINE_CAPACITY, "test input should be small enough to inline" ); assert!(owned.is_inlined() || owned.is_borrowed()); assert_eq!(owned.as_ref_type(), s); } /// Test variant transitions: borrowed -> ref_counted /// Input must be too large to inline (> INLINE_CAPACITY) pub fn test_transition_borrowed_to_ref_counted(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, { assert!( s.self_as_raw_bytes().len() > INLINE_CAPACITY, "test input must be too large to inline" ); let borrowed: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let owned = borrowed.to_owned(); assert!(owned.is_ref_counted()); assert_eq!(owned.as_ref_type(), s); } /// Test variant transitions: inlined -> ref_counted /// Input should be small enough to inline pub fn test_transition_inlined_to_ref_counted(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, { let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let inlined: FlexStr<'_, S, R> = FlexStr::from_inline(inline_str); let cloned = inlined.clone(); // Cloning inlined should still be inlined assert!(cloned.is_inlined()); assert_eq!(cloned.as_ref_type(), s); } /// Test variant transitions: boxed -> inlined/ref_counted pub fn test_transition_boxed_to_optimized(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, Box: From, S::Owned: AsRef, { let boxed: FlexStr<'_, S, R> = FlexStr::from_boxed(Box::from(s.to_owned())); let optimized = boxed.optimize(); // Should be inlined or ref_counted, not boxed assert!(matches!( optimized, FlexStr::Inlined(_) | FlexStr::RefCounted(_) )); assert_eq!(optimized.as_ref_type(), s); } /// Test storage optimization pub fn test_storage_optimization(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, Box: From, S::Owned: AsRef, { // Test optimize on boxed (should convert to inlined or ref_counted) let boxed: FlexStr<'_, S, R> = FlexStr::from_boxed(Box::from(s.to_owned())); let optimized = boxed.optimize(); assert!(matches!( optimized, FlexStr::Inlined(_) | FlexStr::RefCounted(_) )); assert_eq!(optimized.as_ref_type(), s); // Test optimize on borrowed (should stay borrowed) let borrowed: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let optimized = borrowed.optimize(); assert!(optimized.is_borrowed()); assert_eq!(optimized.as_ref_type(), s); // Test optimize on inlined (should stay inlined) // Input should be small enough to inline let inline_str = InlineFlexStr::try_from_type(s).expect("test input should be small enough to inline"); let inlined: FlexStr<'_, S, R> = FlexStr::from_inline(inline_str); let optimized = inlined.optimize(); assert!(optimized.is_inlined()); assert_eq!(optimized.as_ref_type(), s); } ================================================ FILE: tests/common/stringlike.rs ================================================ #![allow(dead_code)] use core::fmt; use flexstr::{FlexStr, RefCounted, StringLike}; use flexstr_support::StringToFromBytes; /// Test as_str() method for str types pub fn test_as_str(s: &'static S) where S: ?Sized + StringToFromBytes + AsRef + PartialEq, R: RefCounted, FlexStr<'static, S, R>: StringLike, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let str_ref = StringLike::as_str(&flex_str); assert_eq!(str_ref, s.as_ref()); } /// Test as_os_str() method for OsStr types #[cfg(all(feature = "std", feature = "osstr"))] pub fn test_as_os_str(s: &'static S) where S: ?Sized + StringToFromBytes + AsRef + PartialEq, R: RefCounted, FlexStr<'static, S, R>: StringLike, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let os_str_ref = StringLike::as_os_str(&flex_str); assert_eq!(os_str_ref, s.as_ref()); } /// Test as_path() method for Path types #[cfg(all(feature = "std", feature = "path"))] pub fn test_as_path(s: &'static S) where S: ?Sized + StringToFromBytes + AsRef + PartialEq, R: RefCounted, FlexStr<'static, S, R>: StringLike, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let path_ref = StringLike::as_path(&flex_str); assert_eq!(path_ref, s.as_ref()); } /// Test as_c_str() method for CStr types #[cfg(feature = "cstr")] pub fn test_as_c_str(s: &'static S) where S: ?Sized + StringToFromBytes + AsRef + PartialEq, R: RefCounted, FlexStr<'static, S, R>: StringLike, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let c_str_ref = StringLike::as_c_str(&flex_str); assert_eq!(c_str_ref, s.as_ref()); } /// Test into_string() method pub fn test_into_string(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, S::Owned: Into + From> + AsRef, FlexStr<'static, S, R>: StringLike, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let string = StringLike::into_string(flex_str); assert_eq!(string, s.to_owned().into()); } /// Test to_string() method pub fn test_to_string(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, S::Owned: Into, FlexStr<'static, S, R>: StringLike, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let string = StringLike::to_string(&flex_str); assert_eq!(string, s.to_owned().into()); } /// Test into_os_string() method #[cfg(all(feature = "std", feature = "osstr"))] pub fn test_into_os_string(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, S::Owned: Into + From> + AsRef, FlexStr<'static, S, R>: StringLike, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let os_string = StringLike::into_os_string(flex_str); assert_eq!(os_string, s.to_owned().into()); } /// Test to_os_string() method #[cfg(all(feature = "std", feature = "osstr"))] pub fn test_to_os_string(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, S::Owned: Into, FlexStr<'static, S, R>: StringLike, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let os_string = StringLike::to_os_string(&flex_str); assert_eq!(os_string, s.to_owned().into()); } /// Test into_path_buf() method #[cfg(all(feature = "std", feature = "path"))] pub fn test_into_path_buf(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, S::Owned: Into + From> + AsRef, FlexStr<'static, S, R>: StringLike, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let path_buf = StringLike::into_path_buf(flex_str); assert_eq!(path_buf, s.to_owned().into()); } /// Test to_path_buf() method #[cfg(all(feature = "std", feature = "path"))] pub fn test_to_path_buf(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, S::Owned: Into, FlexStr<'static, S, R>: StringLike, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let path_buf = StringLike::to_path_buf(&flex_str); assert_eq!(path_buf, s.to_owned().into()); } /// Test into_c_string() method #[cfg(feature = "cstr")] pub fn test_into_c_string(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted + fmt::Debug, S::Owned: Into + From> + AsRef, FlexStr<'static, S, R>: StringLike, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let c_string = StringLike::into_c_string(flex_str); assert_eq!( c_string.as_bytes_with_nul(), s.to_owned().into().as_bytes_with_nul() ); } /// Test to_c_string() method #[cfg(feature = "cstr")] pub fn test_to_c_string(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted + fmt::Debug, S::Owned: Into, FlexStr<'static, S, R>: StringLike, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let c_string = StringLike::to_c_string(&flex_str); let expected: alloc::ffi::CString = s.to_owned().into(); assert_eq!(c_string.as_bytes_with_nul(), expected.as_bytes_with_nul()); } /// Test into_vec_bytes() method #[cfg(feature = "bytes")] pub fn test_into_vec_bytes(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, S::Owned: Into> + From> + AsRef, FlexStr<'static, S, R>: StringLike, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let vec_bytes = StringLike::into_vec_bytes(flex_str); assert_eq!(vec_bytes, s.to_owned().into()); } /// Test to_vec_bytes() method #[cfg(feature = "bytes")] pub fn test_to_vec_bytes(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted, S::Owned: Into>, FlexStr<'static, S, R>: StringLike, { let flex_str: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); let vec_bytes = StringLike::to_vec_bytes(&flex_str); assert_eq!(vec_bytes, s.to_owned().into()); } ================================================ FILE: tests/common/try_from.rs ================================================ #![allow(dead_code)] use core::fmt; use flexstr::{FlexStr, RefCounted}; use flexstr_support::StringToFromBytes; /// Test TryFrom success path for FlexStr pub fn test_try_from_flex_str_success<'s, T, S, R>(value: T) where T: core::convert::TryInto>, T::Error: fmt::Debug, S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCounted + fmt::Debug, { let flex_str: FlexStr<'s, S, R> = value.try_into().unwrap(); assert_eq!(flex_str.as_ref_type(), flex_str.as_ref_type()); // Basic sanity check } /// Test TryFrom error path for FlexStr pub fn test_try_from_flex_str_error<'s, T, S, R>(value: T) where T: core::convert::TryInto>, T::Error: fmt::Debug + fmt::Display, S: ?Sized + StringToFromBytes + fmt::Debug, R: RefCounted + fmt::Debug, { let result: Result, T::Error> = value.try_into(); let err = result.unwrap_err(); // Test that error can be displayed let _ = format!("{}", err); } /// Test TryFrom<&[u8]> for FlexStr with invalid UTF-8 #[cfg(feature = "str")] pub fn test_try_from_bytes_invalid_utf8() where R: RefCounted + core::fmt::Debug, { use core::str::Utf8Error; // Invalid UTF-8 sequence let invalid_utf8: &[u8] = &[0xFF, 0xFF, 0xFF]; let result: Result, Utf8Error> = invalid_utf8.try_into(); let _err = result.unwrap_err(); // Test that error can be unwrapped } /// Test TryFrom> for FlexStr with invalid UTF-8 #[cfg(feature = "str")] pub fn test_try_from_vec_bytes_invalid_utf8() where R: RefCounted + fmt::Debug, { use alloc::string::FromUtf8Error; // Invalid UTF-8 sequence let invalid_utf8 = alloc::vec![0xFF, 0xFF, 0xFF]; let result: Result, FromUtf8Error> = invalid_utf8.try_into(); let _err = result.unwrap_err(); } /// Test TryFrom for FlexStr with invalid UTF-8 #[cfg(all(feature = "str", feature = "cstr"))] pub fn test_try_from_cstring_invalid_utf8() where R: RefCounted, { use alloc::ffi::{CString, IntoStringError}; // Create a CString with invalid UTF-8 (this is tricky, but we can try) // Note: CString::new will fail if there's a NUL byte, so we need a different approach // For now, we'll test with a valid CString that contains non-UTF-8 bytes // This test may need adjustment based on actual CString behavior let cstring = CString::new(b"test\0").unwrap(); // This should succeed since "test" is valid UTF-8 let result: Result, IntoStringError> = cstring.try_into(); let _flex_str = result.unwrap(); } /// Test TryFrom<&str> for FlexStr #[cfg(feature = "cstr")] pub fn test_try_from_str_cstr() where R: RefCounted + fmt::Debug, { use flexstr::{FlexStr, InteriorNulError}; // Valid CStr (no interior NUL) let s: &str = "test"; let result: Result, InteriorNulError> = s.try_into(); let flex_str = result.unwrap(); assert_eq!(flex_str.as_ref_type().to_bytes(), b"test"); // Invalid CStr (interior NUL) let s_with_nul: &str = "test\0middle"; let result: Result, InteriorNulError> = s_with_nul.try_into(); result.unwrap_err(); } /// Test TryFrom<&[u8]> for FlexStr #[cfg(feature = "cstr")] pub fn test_try_from_bytes_cstr() where R: RefCounted + fmt::Debug, { use flexstr::{FlexStr, InteriorNulError}; // Valid CStr (no interior NUL) let bytes: &[u8] = b"test"; let result: Result, InteriorNulError> = bytes.try_into(); let flex_str = result.unwrap(); assert_eq!(flex_str.as_ref_type().to_bytes(), b"test"); // Invalid CStr (interior NUL) let bytes_with_nul: &[u8] = b"test\0middle"; let result: Result, InteriorNulError> = bytes_with_nul.try_into(); result.unwrap_err(); } /// Test TryFrom<&OsStr> for FlexStr #[cfg(all(feature = "str", feature = "std"))] pub fn test_try_from_osstr_str() where R: RefCounted + fmt::Debug, { use flexstr::FlexStr; use std::ffi::OsStr; // Valid UTF-8 OsStr let os_str = OsStr::new("test"); let result: Result, core::str::Utf8Error> = os_str.try_into(); let flex_str = result.unwrap(); assert_eq!(flex_str.as_ref_type(), "test"); } /// Test TryFrom<&Path> for FlexStr #[cfg(all(feature = "str", feature = "std"))] pub fn test_try_from_path_str() where R: RefCounted + fmt::Debug, { use flexstr::FlexStr; use std::path::Path; // Valid UTF-8 Path let path = Path::new("test"); let result: Result, core::str::Utf8Error> = path.try_into(); let flex_str = result.unwrap(); assert_eq!(flex_str.as_ref_type(), "test"); } /// Test TryFrom> for FlexStr #[cfg(feature = "str")] pub fn test_try_from_vec_u8_str() where R: RefCounted + fmt::Debug, { use alloc::string::FromUtf8Error; use flexstr::FlexStr; // Valid UTF-8 Vec let vec = b"test".to_vec(); let result: Result, FromUtf8Error> = vec.try_into(); let flex_str = result.unwrap(); assert_eq!(flex_str.as_ref_type(), "test"); // Invalid UTF-8 Vec let invalid_vec = vec![0xFF, 0xFF, 0xFF]; let result: Result, FromUtf8Error> = invalid_vec.try_into(); result.unwrap_err(); } /// Test TryFrom for FlexStr #[cfg(all(feature = "str", feature = "cstr"))] pub fn test_try_from_cstring_str() where R: RefCounted + fmt::Debug, { use alloc::ffi::{CString, IntoStringError}; use flexstr::FlexStr; // Valid UTF-8 CString let cstring = CString::new("test").unwrap(); let result: Result, IntoStringError> = cstring.try_into(); let flex_str = result.unwrap(); assert_eq!(flex_str.as_ref_type(), "test"); } ================================================ FILE: tests/common/utoipa.rs ================================================ #![allow(dead_code)] use utoipa::openapi::RefOr; use utoipa::openapi::schema::Schema; use utoipa::{PartialSchema, ToSchema}; /// Verify that the schema is `{"type": "string"}` — identical to String's OpenAPI representation. pub fn schema_is_string() where F: PartialSchema, { let schema = F::schema(); let RefOr::T(Schema::Object(obj)) = &schema else { panic!("expected Object schema, got a Ref"); }; let json = serde_json::to_value(obj).unwrap(); assert_eq!(json, serde_json::json!({"type": "string"})); } /// Verify that name() returns "String" so it's indistinguishable from String in OpenAPI output. pub fn name_is_string() where F: ToSchema, { assert_eq!(F::name(), "String"); } ================================================ FILE: tests/common/zeroize.rs ================================================ #![allow(dead_code)] use core::fmt; use flexstr::{FlexStr, RefCountedMut, StringLike}; use flexstr_support::StringToFromBytes; use inline_flexstr::InlineFlexStr; use zeroize::{TryZeroize, Zeroize}; /// Test try_zeroize on an Inlined variant — should succeed pub fn test_zeroize_inlined(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCountedMut, { let inline = InlineFlexStr::try_from_type(s).expect("test input should be small enough"); let mut flex: FlexStr<'_, S, R> = FlexStr::from_inline(inline); assert!(flex.is_inlined()); assert!(flex.try_zeroize()); assert!(flex.is_inlined()); assert!(StringLike::is_empty(&flex)); } /// Test try_zeroize on a Borrowed variant — should fail (we don't own the data) pub fn test_zeroize_borrowed(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCountedMut, { let mut flex: FlexStr<'_, S, R> = FlexStr::from_borrowed(s); assert!(flex.is_borrowed()); assert!(!flex.try_zeroize()); // Value should be unchanged assert!(flex.is_borrowed()); assert_eq!(flex.as_ref_type(), s); } /// Test try_zeroize on a unique RefCounted variant (last reference) — should succeed pub fn test_zeroize_ref_counted(rc: R) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCountedMut, { let mut flex: FlexStr<'_, S, R> = FlexStr::from_ref_counted(rc); assert!(flex.is_ref_counted()); assert!(flex.try_zeroize()); assert!(flex.is_inlined()); assert!(StringLike::is_empty(&flex)); } /// Test try_zeroize on a Boxed variant — should succeed pub fn test_zeroize_boxed(s: &'static S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCountedMut, Box: From, S::Owned: AsRef, { let boxed = Box::from(s.to_owned()); let mut flex: FlexStr<'_, S, R> = FlexStr::from_boxed(boxed); assert!(flex.is_boxed()); assert!(flex.try_zeroize()); assert!(flex.is_inlined()); assert!(StringLike::is_empty(&flex)); } /// Test try_zeroize on a shared RefCounted variant — should fail (other references exist) pub fn test_zeroize_ref_counted_shared(rc: R) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, R: RefCountedMut + Clone, { let mut flex: FlexStr<'_, S, R> = FlexStr::from_ref_counted(rc); assert!(flex.is_ref_counted()); // Create a second reference so try_zeroize cannot get exclusive access let flex2 = flex.clone(); assert!(flex2.is_ref_counted()); assert!(!flex.try_zeroize()); // Value should be unchanged — still ref counted and pointing to the same data assert!(flex.is_ref_counted()); assert_eq!(flex.as_ref_type(), flex2.as_ref_type()); } /// Test that InlineFlexStr raw bytes are actually zeroed after zeroize pub fn test_zeroize_inline_bytes_cleared(s: &S) where S: ?Sized + StringToFromBytes + fmt::Debug + PartialEq, { let mut inline = InlineFlexStr::try_from_type(s).expect("test input should be small enough"); // Verify we have non-zero data assert!( !S::self_as_raw_bytes(s).is_empty(), "test input must be non-empty" ); // Get a raw pointer to the struct's memory (struct is on the stack, still alive after zeroize) let ptr = &inline as *const InlineFlexStr as *const u8; let size = core::mem::size_of::>(); inline.zeroize(); // Read the raw bytes of the struct — it's still alive on the stack let bytes = unsafe { core::slice::from_raw_parts(ptr, size) }; assert!( bytes.iter().all(|&b| b == 0), "all bytes of InlineFlexStr should be zero after zeroize, got: {bytes:?}" ); } ================================================ FILE: tests/test_bytes.rs ================================================ #![cfg(feature = "bytes")] extern crate alloc; use alloc::sync::Arc; #[cfg(feature = "serde")] use flexstr::{LocalBytes, SharedBytes}; use inline_flexstr::INLINE_CAPACITY; mod common; // *** Serialize/Deserialize Tests *** #[cfg(feature = "serde")] #[test] fn serialize_deserialize_test_local_bytes() { common::serialize::serialize_deserialize_test::(b"test"); } #[cfg(feature = "serde")] #[test] fn serialize_deserialize_test_shared_bytes() { common::serialize::serialize_deserialize_test::(b"test"); } // *** Basic Tests *** #[test] fn test_creation_from_borrowed_bytes() { common::basic::test_creation_from_borrowed::<[u8], Arc<[u8]>>(b"test"); } #[test] fn test_creation_from_inline_bytes() { common::basic::test_creation_from_inline::<[u8], Arc<[u8]>>(b"test"); } #[test] fn test_creation_from_ref_counted_bytes() { common::basic::test_creation_from_ref_counted::<[u8], Arc<[u8]>>((*b"test").into()); } #[test] fn test_empty_bytes() { common::basic::test_empty::<[u8], Arc<[u8]>>(b""); } #[test] fn test_accessors_bytes() { common::basic::test_accessors::<[u8], Arc<[u8]>>(b"test"); } #[test] fn test_clone_all_variants_bytes() { common::basic::test_clone_all_variants::<[u8], Arc<[u8]>>(b"test"); } #[test] fn test_default_bytes() { common::basic::test_default::<[u8], Arc<[u8]>>(); } // *** Conversion Tests *** #[test] fn test_to_owned_bytes() { common::conversion::test_to_owned::<[u8], Arc<[u8]>>(b"test"); } #[test] fn test_into_owned_bytes() { common::conversion::test_into_owned::<[u8], Arc<[u8]>>(b"test"); } #[test] fn test_to_owned_type_bytes() { common::conversion::test_to_owned_type::<[u8], Arc<[u8]>>(b"test"); } #[test] fn test_optimize_bytes() { common::conversion::test_optimize::<[u8], Arc<[u8]>>(b"test"); } #[test] fn test_from_borrowed_ref_bytes() { common::conversion::test_from_borrowed_ref::<[u8], Arc<[u8]>>(b"test"); } #[test] fn test_from_inline_flex_str_bytes() { common::conversion::test_from_inline_flex_str::<[u8], Arc<[u8]>>(b"test"); } // *** Comparison Tests *** #[test] fn test_partial_eq_bytes() { common::comparison::test_partial_eq::<[u8], Arc<[u8]>>(b"test", b"test"); common::comparison::test_partial_eq::<[u8], Arc<[u8]>>(b"test", b"other"); } #[test] fn test_eq_bytes() { common::comparison::test_eq::<[u8], Arc<[u8]>>(b"test"); } #[test] fn test_partial_ord_bytes() { common::comparison::test_partial_ord::<[u8], Arc<[u8]>>(b"a", b"b"); } #[test] fn test_ord_bytes() { common::comparison::test_ord::<[u8], Arc<[u8]>>(b"a", b"b"); } #[test] fn test_hash_bytes() { common::comparison::test_hash::<[u8], Arc<[u8]>>(b"test"); } #[test] fn test_comparison_with_ref_bytes() { common::comparison::test_comparison_with_ref::<[u8], Arc<[u8]>>(b"test"); } // *** Storage Tests *** #[test] fn test_variant_queries_bytes() { common::storage::test_variant_queries::<[u8], Arc<[u8]>>(b"test"); } #[test] fn test_transition_borrowed_to_inlined_bytes() { common::storage::test_transition_borrowed_to_inlined::<[u8], Arc<[u8]>>(b"test"); } #[test] fn test_storage_optimization_bytes() { common::storage::test_storage_optimization::<[u8], Arc<[u8]>>(b"test"); } // *** Edge Case Tests *** #[test] fn test_empty_string_bytes() { common::edge_cases::test_empty_string::<[u8], Arc<[u8]>>(b""); } #[test] fn test_various_lengths_bytes() { common::edge_cases::test_various_lengths::<[u8], Arc<[u8]>>(b"test"); common::edge_cases::test_various_lengths::<[u8], Arc<[u8]>>(b""); common::edge_cases::test_various_lengths::<[u8], Arc<[u8]>>(b"a"); } #[test] fn test_special_content_bytes() { common::edge_cases::test_special_content::<[u8], Arc<[u8]>>(b"test"); } #[test] fn test_clone_variants_bytes() { common::edge_cases::test_clone_variants::<[u8], Arc<[u8]>>(b"test"); } // *** StringLike Tests *** #[test] fn test_into_vec_bytes() { common::stringlike::test_into_vec_bytes::<[u8], Arc<[u8]>>(b"test"); } #[test] fn test_to_vec_bytes() { common::stringlike::test_to_vec_bytes::<[u8], Arc<[u8]>>(b"test"); } // *** TryFrom Tests *** // *** From Tests *** #[test] fn test_from_vec_bytes() { common::from::test_from_vec_bytes::>(); } #[test] fn test_from_str_bytes() { common::from::test_from_str_bytes::>(); } // *** FromStr Tests *** #[test] fn test_from_str_bytes_success() { common::from_str::test_from_str_bytes_success::>(); } // *** AsRef Tests *** #[test] fn test_as_ref_bytes_flex_str() { common::as_ref::test_as_ref_bytes_flex_str::>(b"test"); } // *** FlexStr Edge Cases *** #[test] fn test_optimize_ref_counted_to_inlined_bytes() { common::inline_edge_cases::test_optimize_ref_counted_to_inlined::<[u8], Arc<[u8]>>(b"test"); } #[test] fn test_optimize_ref_counted_stays_ref_counted_bytes() { let long_bytes: &'static [u8] = Box::leak(Box::new([0u8; INLINE_CAPACITY + 1])); common::inline_edge_cases::test_optimize_ref_counted_stays_ref_counted::<[u8], Arc<[u8]>>( long_bytes, ); } // *** Mutation Tests *** #[test] fn test_mutation_borrowed_bytes() { common::mutate::test_mutation_borrowed::<[u8], Arc<[u8]>>(b"test"); } #[test] fn test_mutation_inlined_bytes() { common::mutate::test_mutation_inlined::<[u8], Arc<[u8]>>(b"test"); } #[test] fn test_mutation_ref_counted_bytes() { common::mutate::test_mutation_ref_counted::<[u8], Arc<[u8]>>((*b"test").into()); } #[test] fn test_mutation_boxed_bytes() { common::mutate::test_mutation_boxed::<[u8], Arc<[u8]>>(b"test".into()); } // *** Zeroize Tests *** #[cfg(feature = "zeroize")] #[test] fn test_zeroize_inlined_bytes() { common::zeroize::test_zeroize_inlined::<[u8], Arc<[u8]>>(b"test"); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_borrowed_bytes() { common::zeroize::test_zeroize_borrowed::<[u8], Arc<[u8]>>(b"test"); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_ref_counted_bytes() { common::zeroize::test_zeroize_ref_counted::<[u8], Arc<[u8]>>(Arc::from(&b"test"[..])); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_ref_counted_shared_bytes() { common::zeroize::test_zeroize_ref_counted_shared::<[u8], Arc<[u8]>>(Arc::from(&b"test"[..])); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_boxed_bytes() { common::zeroize::test_zeroize_boxed::<[u8], Arc<[u8]>>(b"test"); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_inline_bytes_cleared_bytes() { common::zeroize::test_zeroize_inline_bytes_cleared::<[u8]>(b"test"); } ================================================ FILE: tests/test_cstr.rs ================================================ #![cfg(feature = "cstr")] extern crate alloc; use alloc::{rc::Rc, sync::Arc}; #[cfg(feature = "serde")] use flexstr::{LocalCStr, SharedCStr}; use core::ffi::CStr; mod common; // *** Serialize/Deserialize Tests *** #[cfg(feature = "serde")] #[test] fn serialize_deserialize_test_local_cstr() { common::serialize::serialize_deserialize_test::(c"test"); } #[cfg(feature = "serde")] #[test] fn serialize_deserialize_test_shared_cstr() { common::serialize::serialize_deserialize_test::(c"test"); } // *** Basic Tests *** #[test] fn test_creation_from_borrowed_cstr() { common::basic::test_creation_from_borrowed::>(c"test"); } #[test] fn test_creation_from_inline_cstr() { common::basic::test_creation_from_inline::>(c"test"); } #[test] fn test_creation_from_ref_counted_cstr() { common::basic::test_creation_from_ref_counted::>(c"test".into()); } #[test] fn test_empty_cstr() { common::basic::test_empty::>(c""); } #[test] fn test_accessors_cstr() { common::basic::test_accessors::>(c"test"); } #[test] fn test_clone_all_variants_cstr() { common::basic::test_clone_all_variants::>(c"test"); } #[test] fn test_default_cstr() { common::basic::test_default::>(); } // *** Conversion Tests *** #[test] fn test_to_owned_cstr() { common::conversion::test_to_owned::>(c"test"); } #[test] fn test_into_owned_cstr() { common::conversion::test_into_owned::>(c"test"); } #[test] fn test_to_owned_type_cstr() { common::conversion::test_to_owned_type::>(c"test"); } #[test] fn test_optimize_cstr() { common::conversion::test_optimize::>(c"test"); } #[test] fn test_from_borrowed_ref_cstr() { common::conversion::test_from_borrowed_ref::>(c"test"); } #[test] fn test_from_inline_flex_str_cstr() { common::conversion::test_from_inline_flex_str::>(c"test"); } // *** Comparison Tests *** #[test] fn test_partial_eq_cstr() { common::comparison::test_partial_eq::>(c"test", c"test"); common::comparison::test_partial_eq::>(c"test", c"other"); } #[test] fn test_eq_cstr() { common::comparison::test_eq::>(c"test"); } #[test] fn test_hash_cstr() { common::comparison::test_hash::>(c"test"); } #[test] fn test_comparison_with_ref_cstr() { common::comparison::test_comparison_with_ref::>(c"test"); } // *** Storage Tests *** #[test] fn test_variant_queries_cstr() { common::storage::test_variant_queries::>(c"test"); } #[test] fn test_transition_borrowed_to_inlined_cstr() { common::storage::test_transition_borrowed_to_inlined::>(c"test"); } #[test] fn test_storage_optimization_cstr() { common::storage::test_storage_optimization::>(c"test"); } // *** Edge Case Tests *** #[test] fn test_empty_string_cstr() { common::edge_cases::test_empty_string::>(c""); } #[test] fn test_various_lengths_cstr() { common::edge_cases::test_various_lengths::>(c"test"); common::edge_cases::test_various_lengths::>(c""); } #[test] fn test_special_content_cstr() { common::edge_cases::test_special_content::>(c"test"); } #[test] fn test_clone_variants_cstr() { common::edge_cases::test_clone_variants::>(c"test"); } // *** Error Tests *** #[test] fn test_interior_nul_error() { common::errors::test_interior_nul_error(); } #[test] fn test_too_long_or_nul_error_too_long() { common::errors::test_too_long_or_nul_error_too_long(); } #[test] fn test_too_long_or_nul_error_nul() { common::errors::test_too_long_or_nul_error_nul(); } // *** StringLike Tests *** #[test] fn test_as_c_str() { common::stringlike::test_as_c_str::>(c"test"); } #[test] fn test_into_c_string() { common::stringlike::test_into_c_string::>(c"test"); } #[test] fn test_to_c_string() { common::stringlike::test_to_c_string::>(c"test"); } // *** CStr-Specific Tests *** #[test] fn test_try_from_bytes_with_nul() { common::cstr_specific::test_try_from_bytes_with_nul::>(); } #[test] fn test_try_from_bytes_without_nul() { common::cstr_specific::test_try_from_bytes_without_nul::>(); } #[test] fn test_try_from_bytes_interior_nul() { common::cstr_specific::test_try_from_bytes_interior_nul::>(); } #[test] fn test_as_bytes_with_nul() { common::cstr_specific::test_as_bytes_with_nul::>(c"test"); } // *** Mutation Tests *** #[test] fn test_mutation_borrowed_shared_cstr() { common::mutate_fallback::test_mutation_immutable_bytes_borrowed::>(c"test"); } #[test] fn test_mutation_borrowed_local_cstr() { common::mutate_fallback::test_mutation_immutable_bytes_borrowed::>(c"test"); } #[test] fn test_mutation_inlined_shared_cstr() { common::mutate_fallback::test_mutation_immutable_bytes_inlined::>(c"test"); } #[test] fn test_mutation_inlined_local_cstr() { common::mutate_fallback::test_mutation_immutable_bytes_inlined::>(c"test"); } #[test] fn test_mutation_shared_ref_counted_cstr() { common::mutate_fallback::test_mutation_immutable_bytes_ref_counted::>( c"test".into(), ); } #[test] fn test_mutation_local_ref_counted_cstr() { common::mutate_fallback::test_mutation_immutable_bytes_ref_counted::>( c"test".into(), ); } // NOTE: Boxed strings don't use Rc/Arc, so we don't need to test both #[test] fn test_mutation_boxed_cstr() { common::mutate_fallback::test_mutation_immutable_bytes_boxed::>(c"test".into()); } // *** PartialEq with Owned Types Tests *** #[test] fn test_partial_eq_with_owned_types_cstr() { common::comparison::test_partial_eq_with_owned_types::>(c"test"); } // *** TryFrom Tests *** #[test] fn test_try_from_str_cstr() { common::try_from::test_try_from_str_cstr::>(); } #[test] fn test_try_from_bytes_cstr() { common::try_from::test_try_from_bytes_cstr::>(); } // *** FromStr Tests *** #[test] fn test_from_str_cstr_success() { common::from_str::test_from_str_cstr_success::>(); } #[test] fn test_from_str_cstr_error() { common::from_str::test_from_str_cstr_error::>(); } // *** AsRef Tests *** #[test] fn test_as_ref_cstr_flex_str() { common::as_ref::test_as_ref_cstr_flex_str::>(c"test"); } // *** Zeroize Tests *** #[cfg(feature = "zeroize")] #[test] fn test_zeroize_inlined_cstr() { common::zeroize::test_zeroize_inlined::>(c"test"); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_borrowed_cstr() { common::zeroize::test_zeroize_borrowed::>(c"test"); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_ref_counted_cstr() { common::zeroize::test_zeroize_ref_counted::>(Arc::from(c"test")); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_ref_counted_shared_cstr() { common::zeroize::test_zeroize_ref_counted_shared::>(Arc::from(c"test")); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_boxed_cstr() { common::zeroize::test_zeroize_boxed::>(c"test"); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_inline_bytes_cleared_cstr() { common::zeroize::test_zeroize_inline_bytes_cleared::(c"test"); } ================================================ FILE: tests/test_osstr.rs ================================================ #![cfg(all(feature = "std", feature = "osstr"))] extern crate alloc; use alloc::{rc::Rc, sync::Arc}; use std::ffi::OsStr; #[cfg(feature = "serde")] use flexstr::{LocalOsStr, SharedOsStr}; use inline_flexstr::INLINE_CAPACITY; mod common; // *** Serialize/Deserialize Tests *** #[cfg(feature = "serde")] #[test] fn serialize_deserialize_test_local_osstr() { common::serialize::serialize_deserialize_test::(OsStr::new("test")); } #[cfg(feature = "serde")] #[test] fn serialize_deserialize_test_shared_osstr() { common::serialize::serialize_deserialize_test::(OsStr::new("test")); } // *** Basic Tests *** #[test] fn test_creation_from_borrowed_osstr() { common::basic::test_creation_from_borrowed::>(OsStr::new("test")); } #[test] fn test_creation_from_inline_osstr() { common::basic::test_creation_from_inline::>(OsStr::new("test")); } #[test] fn test_creation_from_ref_counted_osstr() { common::basic::test_creation_from_ref_counted::>(OsStr::new("test").into()); } #[test] fn test_empty_osstr() { common::basic::test_empty::>(OsStr::new("")); } #[test] fn test_accessors_osstr() { common::basic::test_accessors::>(OsStr::new("test")); } #[test] fn test_clone_all_variants_osstr() { common::basic::test_clone_all_variants::>(OsStr::new("test")); } #[test] fn test_default_osstr() { common::basic::test_default::>(); } // *** Conversion Tests *** #[test] fn test_to_owned_osstr() { common::conversion::test_to_owned::>(OsStr::new("test")); } #[test] fn test_into_owned_osstr() { common::conversion::test_into_owned::>(OsStr::new("test")); } #[test] fn test_to_owned_type_osstr() { common::conversion::test_to_owned_type::>(OsStr::new("test")); } #[test] fn test_optimize_osstr() { common::conversion::test_optimize::>(OsStr::new("test")); } #[test] fn test_from_borrowed_ref_osstr() { common::conversion::test_from_borrowed_ref::>(OsStr::new("test")); } #[test] fn test_from_inline_flex_str_osstr() { common::conversion::test_from_inline_flex_str::>(OsStr::new("test")); } // *** Comparison Tests *** #[test] fn test_partial_eq_osstr() { common::comparison::test_partial_eq::>( OsStr::new("test"), OsStr::new("test"), ); common::comparison::test_partial_eq::>( OsStr::new("test"), OsStr::new("other"), ); } #[test] fn test_eq_osstr() { common::comparison::test_eq::>(OsStr::new("test")); } #[test] fn test_hash_osstr() { common::comparison::test_hash::>(OsStr::new("test")); } #[test] fn test_comparison_with_ref_osstr() { common::comparison::test_comparison_with_ref::>(OsStr::new("test")); } // *** Storage Tests *** #[test] fn test_variant_queries_osstr() { common::storage::test_variant_queries::>(OsStr::new("test")); } #[test] fn test_transition_borrowed_to_inlined_osstr() { common::storage::test_transition_borrowed_to_inlined::>(OsStr::new("test")); } #[test] fn test_storage_optimization_osstr() { common::storage::test_storage_optimization::>(OsStr::new("test")); } // *** Edge Case Tests *** #[test] fn test_empty_string_osstr() { common::edge_cases::test_empty_string::>(OsStr::new("")); } #[test] fn test_various_lengths_osstr() { common::edge_cases::test_various_lengths::>(OsStr::new("test")); common::edge_cases::test_various_lengths::>(OsStr::new("")); } #[test] fn test_special_content_osstr() { common::edge_cases::test_special_content::>(OsStr::new("test")); } #[test] fn test_clone_variants_osstr() { common::edge_cases::test_clone_variants::>(OsStr::new("test")); } // *** StringLike Tests *** #[test] fn test_as_os_str() { common::stringlike::test_as_os_str::>(OsStr::new("test")); } #[test] fn test_into_os_string() { common::stringlike::test_into_os_string::>(OsStr::new("test")); } #[test] fn test_to_os_string() { common::stringlike::test_to_os_string::>(OsStr::new("test")); } // *** TryFrom Tests *** // *** From Tests *** #[test] fn test_from_os_string() { common::from::test_from_os_string::>(); } #[test] fn test_from_string_osstr() { common::from::test_from_string_osstr::>(); } #[test] fn test_from_path_buf_osstr() { common::from::test_from_path_buf_osstr::>(); } #[test] fn test_from_str_ref_osstr() { common::from::test_from_str_ref_osstr::>(); } #[test] fn test_from_path_ref_osstr() { common::from::test_from_path_ref_osstr::>(); } // *** FromStr Tests *** #[test] fn test_from_str_osstr_success() { common::from_str::test_from_str_osstr_success::>(); } // *** AsRef Tests *** #[test] fn test_as_ref_osstr_flex_str() { common::as_ref::test_as_ref_osstr_flex_str::>(OsStr::new("test")); } // *** FlexStr Edge Cases *** #[test] fn test_optimize_ref_counted_to_inlined_osstr() { common::inline_edge_cases::test_optimize_ref_counted_to_inlined::>( OsStr::new("test"), ); } #[test] fn test_optimize_ref_counted_stays_ref_counted_osstr() { let long_str: &'static str = Box::leak(Box::new("x".repeat(INLINE_CAPACITY + 1))); common::inline_edge_cases::test_optimize_ref_counted_stays_ref_counted::>( OsStr::new(long_str), ); } // *** Mutation Tests *** #[test] fn test_mutation_shared_borrowed_osstr() { common::mutate_fallback::test_mutation_immutable_bytes_borrowed::>( OsStr::new("test"), ); } #[test] fn test_mutation_local_borrowed_osstr() { common::mutate_fallback::test_mutation_immutable_bytes_borrowed::>( OsStr::new("test"), ); } #[test] fn test_mutation_shared_inlined_osstr() { common::mutate_fallback::test_mutation_immutable_bytes_inlined::>( OsStr::new("test"), ); } #[test] fn test_mutation_local_inlined_osstr() { common::mutate_fallback::test_mutation_immutable_bytes_inlined::>(OsStr::new( "test", )); } #[test] fn test_mutation_shared_ref_counted_osstr() { common::mutate_fallback::test_mutation_immutable_bytes_ref_counted::>( OsStr::new("test").into(), ); } #[test] fn test_mutation_local_ref_counted_osstr() { common::mutate_fallback::test_mutation_immutable_bytes_ref_counted::>( OsStr::new("test").into(), ); } // NOTE: Boxed strings don't use Rc/Arc, so we don't need to test both #[test] fn test_mutation_boxed_osstr() { common::mutate_fallback::test_mutation_immutable_bytes_boxed::>( OsStr::new("test").into(), ); } // *** Zeroize Tests *** #[cfg(feature = "zeroize")] #[test] fn test_zeroize_inlined_osstr() { common::zeroize::test_zeroize_inlined::>(OsStr::new("test")); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_borrowed_osstr() { common::zeroize::test_zeroize_borrowed::>(OsStr::new("test")); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_ref_counted_osstr() { common::zeroize::test_zeroize_ref_counted::>(Arc::from(OsStr::new("test"))); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_ref_counted_shared_osstr() { common::zeroize::test_zeroize_ref_counted_shared::>(Arc::from(OsStr::new( "test", ))); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_boxed_osstr() { common::zeroize::test_zeroize_boxed::>(OsStr::new("test")); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_inline_bytes_cleared_osstr() { common::zeroize::test_zeroize_inline_bytes_cleared::(OsStr::new("test")); } ================================================ FILE: tests/test_path.rs ================================================ #![cfg(all(feature = "std", feature = "path"))] extern crate alloc; use alloc::{rc::Rc, sync::Arc}; #[cfg(feature = "serde")] use flexstr::{LocalPath, SharedPath}; use inline_flexstr::INLINE_CAPACITY; use std::path::Path; mod common; // *** Serialize/Deserialize Tests *** #[cfg(feature = "serde")] #[test] fn serialize_deserialize_test_local_path() { common::serialize::serialize_deserialize_test::(Path::new("test")); } #[cfg(feature = "serde")] #[test] fn serialize_deserialize_test_shared_path() { common::serialize::serialize_deserialize_test::(Path::new("test")); } // *** Basic Tests *** #[test] fn test_creation_from_borrowed_path() { common::basic::test_creation_from_borrowed::>(Path::new("test")); } #[test] fn test_creation_from_inline_path() { common::basic::test_creation_from_inline::>(Path::new("test")); } #[test] fn test_creation_from_ref_counted_path() { common::basic::test_creation_from_ref_counted::>(Path::new("test").into()); } #[test] fn test_empty_path() { common::basic::test_empty::>(Path::new("")); } #[test] fn test_accessors_path() { common::basic::test_accessors::>(Path::new("test")); } #[test] fn test_clone_all_variants_path() { common::basic::test_clone_all_variants::>(Path::new("test")); } // Path doesn't implement Default, so skip this test // #[test] // fn test_default_path() { // common::basic::test_default::>(); // } // *** Conversion Tests *** #[test] fn test_to_owned_path() { common::conversion::test_to_owned::>(Path::new("test")); } #[test] fn test_into_owned_path() { common::conversion::test_into_owned::>(Path::new("test")); } #[test] fn test_to_owned_type_path() { common::conversion::test_to_owned_type::>(Path::new("test")); } #[test] fn test_optimize_path() { common::conversion::test_optimize::>(Path::new("test")); } #[test] fn test_from_borrowed_ref_path() { common::conversion::test_from_borrowed_ref::>(Path::new("test")); } #[test] fn test_from_inline_flex_str_path() { common::conversion::test_from_inline_flex_str::>(Path::new("test")); } // *** Comparison Tests *** #[test] fn test_partial_eq_path() { common::comparison::test_partial_eq::>(Path::new("test"), Path::new("test")); common::comparison::test_partial_eq::>(Path::new("test"), Path::new("other")); } #[test] fn test_eq_path() { common::comparison::test_eq::>(Path::new("test")); } #[test] fn test_hash_path() { common::comparison::test_hash::>(Path::new("test")); } #[test] fn test_comparison_with_ref_path() { common::comparison::test_comparison_with_ref::>(Path::new("test")); } // *** Storage Tests *** #[test] fn test_variant_queries_path() { common::storage::test_variant_queries::>(Path::new("test")); } #[test] fn test_transition_borrowed_to_inlined_path() { common::storage::test_transition_borrowed_to_inlined::>(Path::new("test")); } #[test] fn test_storage_optimization_path() { common::storage::test_storage_optimization::>(Path::new("test")); } // *** Edge Case Tests *** #[test] fn test_empty_string_path() { common::edge_cases::test_empty_string::>(Path::new("")); } #[test] fn test_various_lengths_path() { common::edge_cases::test_various_lengths::>(Path::new("test")); common::edge_cases::test_various_lengths::>(Path::new("")); } #[test] fn test_special_content_path() { common::edge_cases::test_special_content::>(Path::new("test")); } #[test] fn test_clone_variants_path() { common::edge_cases::test_clone_variants::>(Path::new("test")); } // *** StringLike Tests *** #[test] fn test_as_path() { common::stringlike::test_as_path::>(Path::new("test")); } #[test] fn test_into_path_buf() { common::stringlike::test_into_path_buf::>(Path::new("test")); } #[test] fn test_to_path_buf() { common::stringlike::test_to_path_buf::>(Path::new("test")); } // *** TryFrom Tests *** // *** From Tests *** #[test] fn test_from_path_buf() { common::from::test_from_path_buf::>(); } #[test] fn test_from_string_path() { common::from::test_from_string_path::>(); } #[test] fn test_from_os_string_path() { common::from::test_from_os_string_path::>(); } #[test] fn test_from_str_ref_path() { common::from::test_from_str_ref_path::>(); } #[test] fn test_from_osstr_ref_path() { common::from::test_from_osstr_ref_path::>(); } // *** FromStr Tests *** #[test] fn test_from_str_path_success() { common::from_str::test_from_str_path_success::>(); } // *** AsRef Tests *** #[test] fn test_as_ref_path_flex_str() { common::as_ref::test_as_ref_path_flex_str::>(Path::new("test")); } // *** FlexStr Edge Cases *** #[test] fn test_optimize_ref_counted_to_inlined_path() { common::inline_edge_cases::test_optimize_ref_counted_to_inlined::>(Path::new( "test", )); } #[test] fn test_optimize_ref_counted_stays_ref_counted_path() { let long_str: &'static str = Box::leak(Box::new("x".repeat(INLINE_CAPACITY + 1))); common::inline_edge_cases::test_optimize_ref_counted_stays_ref_counted::>( Path::new(long_str), ); } // *** Mutation Tests *** #[test] fn test_mutation_borrowed_shared_path() { common::mutate_fallback::test_mutation_immutable_bytes_borrowed::>(Path::new( "test", )); } #[test] fn test_mutation_borrowed_local_path() { common::mutate_fallback::test_mutation_immutable_bytes_borrowed::>(Path::new( "test", )); } #[test] fn test_mutation_inlined_shared_path() { common::mutate_fallback::test_mutation_immutable_bytes_inlined::>(Path::new( "test", )); } #[test] fn test_mutation_inlined_local_path() { common::mutate_fallback::test_mutation_immutable_bytes_inlined::>(Path::new( "test", )); } #[test] fn test_mutation_shared_ref_counted_path() { common::mutate_fallback::test_mutation_immutable_bytes_ref_counted::>( Path::new("test").into(), ); } #[test] fn test_mutation_local_ref_counted_path() { common::mutate_fallback::test_mutation_immutable_bytes_ref_counted::>( Path::new("test").into(), ); } // NOTE: Boxed strings don't use Rc/Arc, so we don't need to test both #[test] fn test_mutation_boxed_path() { common::mutate_fallback::test_mutation_immutable_bytes_boxed::>( Path::new("test").into(), ); } // *** Zeroize Tests *** #[cfg(feature = "zeroize")] #[test] fn test_zeroize_inlined_path() { common::zeroize::test_zeroize_inlined::>(Path::new("test")); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_borrowed_path() { common::zeroize::test_zeroize_borrowed::>(Path::new("test")); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_ref_counted_path() { common::zeroize::test_zeroize_ref_counted::>(Arc::from(Path::new("test"))); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_ref_counted_shared_path() { common::zeroize::test_zeroize_ref_counted_shared::>(Arc::from(Path::new( "test", ))); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_boxed_path() { common::zeroize::test_zeroize_boxed::>(Path::new("test")); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_inline_bytes_cleared_path() { common::zeroize::test_zeroize_inline_bytes_cleared::(Path::new("test")); } ================================================ FILE: tests/test_str.rs ================================================ #![cfg(feature = "str")] extern crate alloc; use alloc::sync::Arc; #[cfg(feature = "serde")] use flexstr::LocalStr; #[cfg(any(feature = "prost", feature = "serde", feature = "utoipa"))] use flexstr::SharedStr; use inline_flexstr::INLINE_CAPACITY; mod common; // *** Serialize/Deserialize Tests *** #[cfg(feature = "serde")] #[test] fn serialize_deserialize_test_local_str() { common::serialize::serialize_deserialize_test::("test"); } #[cfg(feature = "serde")] #[test] fn serialize_deserialize_test_shared_str() { common::serialize::serialize_deserialize_test::("test"); } // *** Basic Tests *** #[test] fn test_creation_from_borrowed_str() { common::basic::test_creation_from_borrowed::>("test"); } #[test] fn test_creation_from_owned_str() { common::basic::test_creation_from_owned::>("test".to_string()); } #[test] fn test_creation_from_inline_str() { common::basic::test_creation_from_inline::>("test"); } #[test] fn test_creation_from_ref_counted_str() { common::basic::test_creation_from_ref_counted::>("test".into()); } #[test] fn test_creation_from_boxed_str() { common::basic::test_creation_from_boxed::>("test"); } #[test] fn test_empty_str() { common::basic::test_empty::>(""); } #[test] fn test_accessors_str() { common::basic::test_accessors::>("test"); } #[test] fn test_clone_all_variants_str() { common::basic::test_clone_all_variants::>("test"); } #[test] fn test_default_str() { common::basic::test_default::>(); } // *** Conversion Tests *** #[test] fn test_to_owned_str() { common::conversion::test_to_owned::>("test"); } #[test] fn test_into_owned_str() { common::conversion::test_into_owned::>("test"); } #[test] fn test_to_owned_type_str() { common::conversion::test_to_owned_type::>("test"); } #[test] fn test_into_owned_type_str() { common::conversion::test_into_owned_type::>("test"); } #[test] fn test_to_local_str() { common::conversion::test_to_local::("test"); } #[test] fn test_into_local_str() { common::conversion::test_into_local::("test"); } #[test] fn test_to_shared_str() { common::conversion::test_to_shared::("test"); } #[test] fn test_into_shared_str() { common::conversion::test_into_shared::("test"); } #[test] fn test_optimize_str() { common::conversion::test_optimize::>("test"); } #[test] fn test_from_borrowed_ref_str() { common::conversion::test_from_borrowed_ref::>("test"); } #[test] fn test_from_box_str() { common::conversion::test_from_box::>("test"); } #[test] fn test_from_inline_flex_str_str() { common::conversion::test_from_inline_flex_str::>("test"); } #[test] fn test_from_cow_str() { common::conversion::test_from_cow::>("test"); } // *** Comparison Tests *** #[test] fn test_partial_eq_str() { common::comparison::test_partial_eq::>("test", "test"); common::comparison::test_partial_eq::>("test", "other"); } #[test] fn test_eq_str() { common::comparison::test_eq::>("test"); } #[test] fn test_partial_ord_str() { common::comparison::test_partial_ord::>("a", "b"); } #[test] fn test_ord_str() { common::comparison::test_ord::>("a", "b"); } #[test] fn test_hash_str() { common::comparison::test_hash::>("test"); } #[test] fn test_comparison_with_ref_str() { common::comparison::test_comparison_with_ref::>("test"); } #[test] fn test_comparison_with_owned_str() { common::comparison::test_comparison_with_owned::>("test"); } #[test] fn test_comparison_with_inline_str() { common::comparison::test_comparison_with_inline::>("test"); } #[test] fn test_partial_eq_with_owned_types_str() { common::comparison::test_partial_eq_with_owned_types::>("test"); } // *** Storage Tests *** #[test] fn test_variant_queries_str() { common::storage::test_variant_queries::>("test"); } #[test] fn test_transition_borrowed_to_inlined_str() { common::storage::test_transition_borrowed_to_inlined::>("test"); } #[test] fn test_transition_borrowed_to_ref_counted_str() { common::storage::test_transition_borrowed_to_ref_counted::>( "this is a very long string that definitely won't fit inline", ); } #[test] fn test_transition_inlined_to_ref_counted_str() { common::storage::test_transition_inlined_to_ref_counted::>("test"); } #[test] fn test_transition_boxed_to_optimized_str() { common::storage::test_transition_boxed_to_optimized::>("test"); } #[test] fn test_storage_optimization_str() { common::storage::test_storage_optimization::>("test"); } // *** Edge Case Tests *** #[test] fn test_empty_string_str() { common::edge_cases::test_empty_string::>(""); } #[test] fn test_capacity_boundary_exact_str() { // Create a string exactly at capacity let s = "a".repeat(INLINE_CAPACITY); let s_static: &'static str = Box::leak(s.into_boxed_str()); common::edge_cases::test_capacity_boundary_exact::>(s_static); } #[test] fn test_capacity_boundary_overflow_str() { common::edge_cases::test_capacity_boundary_overflow::("test"); } #[test] fn test_try_from_too_long_str() { common::edge_cases::test_try_from_too_long(); } #[test] fn test_various_lengths_str() { common::edge_cases::test_various_lengths::>("test"); common::edge_cases::test_various_lengths::>(""); common::edge_cases::test_various_lengths::>("a"); } #[test] fn test_special_content_str() { common::edge_cases::test_special_content::>("test"); common::edge_cases::test_special_content::>("hello\nworld"); common::edge_cases::test_special_content::>("🚀"); } #[test] fn test_clone_variants_str() { common::edge_cases::test_clone_variants::>("test"); } // *** Error Tests *** #[test] fn test_too_long_for_inlining() { common::errors::test_too_long_for_inlining(); } #[test] fn test_too_long_or_utf8_error_too_long() { common::errors::test_too_long_or_utf8_error_too_long(); } #[test] fn test_too_long_or_utf8_error_utf8() { common::errors::test_too_long_or_utf8_error_utf8(); } // *** StringLike Tests *** #[test] fn test_as_str() { common::stringlike::test_as_str::>("test"); } #[test] fn test_into_string() { common::stringlike::test_into_string::>("test"); } #[test] fn test_to_string() { common::stringlike::test_to_string::>("test"); } // *** TryFrom Tests *** #[test] fn test_try_from_bytes_invalid_utf8() { common::try_from::test_try_from_bytes_invalid_utf8::>(); } #[test] fn test_try_from_vec_bytes_invalid_utf8() { common::try_from::test_try_from_vec_bytes_invalid_utf8::>(); } // *** From Tests *** #[test] fn test_from_string() { common::from::test_from_string_str::>(); } // *** FromStr Tests *** #[test] fn test_from_str_flex_str_success() { common::from_str::test_from_str_flex_str_success::>("test"); } // *** FlexStr Edge Cases *** #[test] fn test_optimize_ref_counted_to_inlined() { common::inline_edge_cases::test_optimize_ref_counted_to_inlined::>("test"); } #[test] fn test_optimize_ref_counted_stays_ref_counted() { let long_str: &'static str = Box::leak(Box::new("x".repeat(INLINE_CAPACITY + 1))); common::inline_edge_cases::test_optimize_ref_counted_stays_ref_counted::>( long_str, ); } // *** Mutation Tests *** #[test] fn test_mutation_borrowed_str() { common::mutate::test_mutation_borrowed::>("test"); } #[test] fn test_mutation_inlined_str() { common::mutate::test_mutation_inlined::>("test"); } #[test] fn test_mutation_ref_counted_str() { common::mutate::test_mutation_ref_counted::>("test".into()); } #[test] fn test_mutation_boxed_str() { common::mutate::test_mutation_boxed::>("test".into()); } // *** Display Tests *** #[test] fn test_display_str() { common::display::test_display::>("test"); } // *** Borrow Tests *** #[test] fn test_borrow_str() { common::borrow::test_borrow::>("test"); } // *** Index Tests *** #[test] fn test_index_str() { common::index::test_index::>("test"); } // *** ToSocketAddrs Tests *** #[cfg(feature = "std")] #[test] fn test_to_socket_addrs_str() { common::socket::test_to_socket_addrs::>("127.0.0.1:8080"); } // *** TryFrom Tests *** #[cfg(feature = "std")] #[test] fn test_try_from_osstr_str() { common::try_from::test_try_from_osstr_str::>(); } #[cfg(feature = "std")] #[test] fn test_try_from_path_str() { common::try_from::test_try_from_path_str::>(); } #[test] fn test_try_from_vec_u8_str() { common::try_from::test_try_from_vec_u8_str::>(); } #[cfg(feature = "cstr")] #[test] fn test_try_from_cstring_str() { common::try_from::test_try_from_cstring_str::>(); } // *** FromStr Tests *** #[cfg(feature = "cstr")] #[test] fn test_from_str_cstr_success() { common::from_str::test_from_str_cstr_success::>(); } #[cfg(feature = "cstr")] #[test] fn test_from_str_cstr_error() { common::from_str::test_from_str_cstr_error::>(); } // *** AsRef Tests *** #[test] fn test_as_ref_str_flex_str() { common::as_ref::test_as_ref_str_flex_str::>("test"); } // *** Prost Tests *** #[cfg(feature = "prost")] #[test] fn prost_encode_decode_shared_str() { common::prost::encode_decode_round_trip::("test"); } #[cfg(feature = "prost")] #[test] fn prost_encode_decode_shared_str_long() { common::prost::encode_decode_round_trip::( "this is a very long string that definitely won't fit inline", ); } #[cfg(feature = "prost")] #[test] fn prost_encode_decode_shared_str_empty() { common::prost::encode_decode_round_trip::(""); } #[cfg(feature = "prost")] #[test] fn prost_encode_decode_shared_str_unicode() { common::prost::encode_decode_round_trip::("hello 🌍🚀"); } #[cfg(feature = "prost")] #[test] fn prost_length_delimited_shared_str() { common::prost::encode_length_delimited_round_trip::("test"); } #[cfg(feature = "prost")] #[test] fn prost_wire_format_shared_str() { common::prost::verify_wire_format::("test"); common::prost::verify_wire_format::(""); common::prost::verify_wire_format::("hello 🌍🚀"); } #[cfg(feature = "prost")] #[test] fn prost_decode_empty_shared_str() { common::prost::decode_empty::(); } #[cfg(feature = "prost")] #[test] fn prost_clear_shared_str() { common::prost::clear_test::("test"); } #[cfg(feature = "prost")] #[test] fn prost_encode_decode_inline_str() { use inline_flexstr::InlineStr; common::prost::encode_decode_round_trip::("test"); } #[cfg(feature = "prost")] #[test] fn prost_encode_decode_inline_str_empty() { use inline_flexstr::InlineStr; common::prost::encode_decode_round_trip::(""); } #[cfg(feature = "prost")] #[test] fn prost_wire_format_inline_str() { use inline_flexstr::InlineStr; common::prost::verify_wire_format::("test"); common::prost::verify_wire_format::(""); } #[cfg(feature = "prost")] #[test] fn prost_decode_empty_inline_str() { use inline_flexstr::InlineStr; common::prost::decode_empty::(); } #[cfg(feature = "prost")] #[test] fn prost_clear_inline_str() { use inline_flexstr::InlineStr; common::prost::clear_test::("test"); } #[cfg(feature = "prost")] #[test] fn prost_inline_str_too_long() { use inline_flexstr::InlineStr; use prost::Message; // Encode a string that's too long for inline storage let long: SharedStr = "this is a very long string that definitely won't fit inline".into(); let encoded = long.encode_to_vec(); // Decoding into InlineStr should fail let result = InlineStr::decode(&encoded[..]); assert!( result.is_err(), "should fail for string too long for inline storage" ); } // *** Prost Cross-Type Interoperability Tests *** #[cfg(feature = "prost")] #[test] fn prost_cross_type_wire_compat_shared_str() { common::prost::cross_type_wire_compat::("test"); common::prost::cross_type_wire_compat::("hello 🌍🚀"); common::prost::cross_type_wire_compat::(""); common::prost::cross_type_wire_compat::( "this is a very long string that definitely won't fit inline", ); } #[cfg(feature = "prost")] #[test] fn prost_cross_type_wire_compat_inline_str() { use inline_flexstr::InlineStr; common::prost::cross_type_wire_compat::("test"); common::prost::cross_type_wire_compat::(""); } #[cfg(feature = "prost")] #[test] fn prost_encode_shared_str_decode_string() { common::prost::encode_flex_decode_string::("test"); common::prost::encode_flex_decode_string::("hello 🌍🚀"); common::prost::encode_flex_decode_string::(""); common::prost::encode_flex_decode_string::( "this is a very long string that definitely won't fit inline", ); } #[cfg(feature = "prost")] #[test] fn prost_encode_inline_str_decode_string() { use inline_flexstr::InlineStr; common::prost::encode_flex_decode_string::("test"); common::prost::encode_flex_decode_string::(""); } #[cfg(feature = "prost")] #[test] fn prost_encode_string_decode_shared_str() { common::prost::encode_string_decode_flex::("test"); common::prost::encode_string_decode_flex::("hello 🌍🚀"); common::prost::encode_string_decode_flex::(""); common::prost::encode_string_decode_flex::( "this is a very long string that definitely won't fit inline", ); } #[cfg(feature = "prost")] #[test] fn prost_encode_string_decode_inline_str() { use inline_flexstr::InlineStr; common::prost::encode_string_decode_flex::("test"); common::prost::encode_string_decode_flex::(""); } // *** Utoipa Tests *** #[cfg(feature = "utoipa")] #[test] fn utoipa_schema_is_string_shared_str() { common::utoipa::schema_is_string::(); } #[cfg(feature = "utoipa")] #[test] fn utoipa_name_is_string_shared_str() { common::utoipa::name_is_string::(); } #[cfg(feature = "utoipa")] #[test] fn utoipa_schema_is_string_inline_str() { use inline_flexstr::InlineStr; common::utoipa::schema_is_string::(); } #[cfg(feature = "utoipa")] #[test] fn utoipa_name_is_string_inline_str() { use inline_flexstr::InlineStr; common::utoipa::name_is_string::(); } // *** Zeroize Tests *** #[cfg(feature = "zeroize")] #[test] fn test_zeroize_inlined_str() { common::zeroize::test_zeroize_inlined::>("test"); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_borrowed_str() { common::zeroize::test_zeroize_borrowed::>("test"); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_ref_counted_str() { common::zeroize::test_zeroize_ref_counted::>("test".into()); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_ref_counted_shared_str() { common::zeroize::test_zeroize_ref_counted_shared::>("test".into()); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_boxed_str() { common::zeroize::test_zeroize_boxed::>("test"); } #[cfg(feature = "zeroize")] #[test] fn test_zeroize_inline_bytes_cleared_str() { common::zeroize::test_zeroize_inline_bytes_cleared::("test"); } // *** Serialize Tests ***