From bf9f7b83989988f87a1d88520a86d9c3c9937de5 Mon Sep 17 00:00:00 2001 From: Martin Wendt Date: Fri, 27 Dec 2024 23:33:32 +0100 Subject: [PATCH] Stable --- CHANGELOG.md | 5 +- docs/sphinx/ug_benchmarks.md | 220 +++++++++++++++++------------------ setup.cfg | 4 +- tox_benchmarks.ini | 5 +- 4 files changed, 120 insertions(+), 114 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6071607..25bf681 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,10 @@ # Changelog -## 0.11.2 (unreleased) +## 1.0.1 (unreleased) + +## 1.0.0 (2024-12-27) - Add benchmarks (using [Benchman](https://github.com/mar10/benchman)). +- Drop support for Python 3.8 ## 0.11.1 (2024-11-08) - `t0.diff(t1, ...)` adds nodes from t1 when possible, so the new status is diff --git a/docs/sphinx/ug_benchmarks.md b/docs/sphinx/ug_benchmarks.md index a06ab23..f1a7ba3 100644 --- a/docs/sphinx/ug_benchmarks.md +++ b/docs/sphinx/ug_benchmarks.md @@ -1,122 +1,122 @@ # Benchmarks -## Benchmark Data + +# Benchmark Data > Client: arm64_16_GB, Darwin_24.1.0 -| Full Name | Python | Minimum time | maxOPS | OPSrel | Std Dev (σ) | -|:--------------------------------------------------------|:-----------|:---------------|:----------|:----------|:--------------| -| access node.data(node._data (attr)) | 3.10.15 | 29 ns | 34.012 M | 34.012 M | 1 ns | -| access node.data(node._data (attr)) | 3.12.6 | 9 ns | 116.281 M | 116.281 M | 0 ns | -| access node.data(node._data (attr)) | 3.13.0rc3+ | 7 ns | 134.332 M | 134.332 M | 0 ns | -| access node.data(node._data (attr)) | 3.9.20 | 29 ns | 34.911 M | 34.911 M | 1 ns | -| access node.data(node._data (attr)) | 3.11.10 | 22 ns | 44.912 M | 44.912 M | 0 ns | -| access node.data(node.data (property)) | 3.9.20 | 75 ns | 13.334 M | 13.334 M | 0 ns | -| access node.data(node.data (property)) | 3.13.0rc3+ | 49 ns | 20.374 M | 20.374 M | 0 ns | -| access node.data(node.data (property)) | 3.12.6 | 52 ns | 19.222 M | 19.222 M | 0 ns | -| access node.data(node.data (property)) | 3.11.10 | 56 ns | 17.833 M | 17.833 M | 0 ns | -| access node.data(node.data (property)) | 3.10.15 | 79 ns | 12.616 M | 12.616 M | 0 ns | -| iterate(for _ in tree.iterator(): ..., n=8) | 3.10.15 | 2,563 ns | 0.390 M | 3.122 M | 6 ns | -| iterate(for _ in tree.iterator(): ..., n=8) | 3.12.6 | 1,666 ns | 0.600 M | 4.802 M | 53 ns | -| iterate(for _ in tree.iterator(): ..., n=8) | 3.13.0rc3+ | 1,508 ns | 0.663 M | 5.305 M | 6 ns | -| iterate(for _ in tree.iterator(): ..., n=8) | 3.11.10 | 2,138 ns | 0.468 M | 3.741 M | 223 ns | -| iterate(for _ in tree.iterator(): ..., n=8) | 3.9.20 | 2,639 ns | 0.379 M | 3.031 M | 12 ns | -| iterate(for _ in tree.iterator(LEVEL_ORDER): ..., n=8) | 3.13.0rc3+ | 1,222 ns | 0.818 M | 6.545 M | 3 ns | -| iterate(for _ in tree.iterator(LEVEL_ORDER): ..., n=8) | 3.10.15 | 1,908 ns | 0.524 M | 4.192 M | 9 ns | -| iterate(for _ in tree.iterator(LEVEL_ORDER): ..., n=8) | 3.12.6 | 1,309 ns | 0.764 M | 6.110 M | 4 ns | -| iterate(for _ in tree.iterator(LEVEL_ORDER): ..., n=8) | 3.11.10 | 1,552 ns | 0.644 M | 5.154 M | 4 ns | -| iterate(for _ in tree.iterator(LEVEL_ORDER): ..., n=8) | 3.9.20 | 1,776 ns | 0.563 M | 4.504 M | 6 ns | -| iterate(for _ in tree.iterator(POST_ORDER): ..., n=8) | 3.10.15 | 3,134 ns | 0.319 M | 2.553 M | 6 ns | -| iterate(for _ in tree.iterator(POST_ORDER): ..., n=8) | 3.12.6 | 2,292 ns | 0.436 M | 3.491 M | 7 ns | -| iterate(for _ in tree.iterator(POST_ORDER): ..., n=8) | 3.9.20 | 3,201 ns | 0.312 M | 2.500 M | 7 ns | -| iterate(for _ in tree.iterator(POST_ORDER): ..., n=8) | 3.11.10 | 2,667 ns | 0.375 M | 3.000 M | 10 ns | -| iterate(for _ in tree.iterator(POST_ORDER): ..., n=8) | 3.13.0rc3+ | 2,088 ns | 0.479 M | 3.831 M | 87 ns | -| iterate(for _ in tree.iterator(PRE_ORDER): ..., n=8) | 3.10.15 | 2,566 ns | 0.390 M | 3.118 M | 5 ns | -| iterate(for _ in tree.iterator(PRE_ORDER): ..., n=8) | 3.12.6 | 1,690 ns | 0.592 M | 4.735 M | 47 ns | -| iterate(for _ in tree.iterator(PRE_ORDER): ..., n=8) | 3.9.20 | 2,696 ns | 0.371 M | 2.968 M | 93 ns | -| iterate(for _ in tree.iterator(PRE_ORDER): ..., n=8) | 3.11.10 | 2,109 ns | 0.474 M | 3.794 M | 92 ns | -| iterate(for _ in tree.iterator(PRE_ORDER): ..., n=8) | 3.13.0rc3+ | 1,498 ns | 0.668 M | 5.341 M | 7 ns | -| iterate(for _ in tree.iterator(RANDOM_ORDER): ..., n=8) | 3.12.6 | 1,825 ns | 0.548 M | 4.383 M | 43 ns | -| iterate(for _ in tree.iterator(RANDOM_ORDER): ..., n=8) | 3.11.10 | 1,766 ns | 0.566 M | 4.529 M | 46 ns | -| iterate(for _ in tree.iterator(RANDOM_ORDER): ..., n=8) | 3.9.20 | 2,561 ns | 0.390 M | 3.123 M | 96 ns | -| iterate(for _ in tree.iterator(RANDOM_ORDER): ..., n=8) | 3.10.15 | 2,556 ns | 0.391 M | 3.130 M | 12 ns | -| iterate(for _ in tree.iterator(RANDOM_ORDER): ..., n=8) | 3.13.0rc3+ | 1,728 ns | 0.579 M | 4.629 M | 7 ns | -| iterate(for _ in tree.iterator(UNORDERED): ..., n=8) | 3.12.6 | 398 ns | 2.510 M | 20.080 M | 3 ns | -| iterate(for _ in tree.iterator(UNORDERED): ..., n=8) | 3.10.15 | 492 ns | 2.032 M | 16.256 M | 4 ns | -| iterate(for _ in tree.iterator(UNORDERED): ..., n=8) | 3.13.0rc3+ | 336 ns | 2.977 M | 23.819 M | 1 ns | -| iterate(for _ in tree.iterator(UNORDERED): ..., n=8) | 3.11.10 | 394 ns | 2.538 M | 20.301 M | 0 ns | -| iterate(for _ in tree.iterator(UNORDERED): ..., n=8) | 3.9.20 | 491 ns | 2.035 M | 16.283 M | 4 ns | -| iterate(for _ in tree: ..., n=8) | 3.9.20 | 2,652 ns | 0.377 M | 3.017 M | 21 ns | -| iterate(for _ in tree: ..., n=8) | 3.12.6 | 1,687 ns | 0.593 M | 4.741 M | 18 ns | -| iterate(for _ in tree: ..., n=8) | 3.13.0rc3+ | 1,527 ns | 0.655 M | 5.238 M | 107 ns | -| iterate(for _ in tree: ..., n=8) | 3.10.15 | 2,554 ns | 0.392 M | 3.133 M | 233 ns | -| iterate(for _ in tree: ..., n=8) | 3.11.10 | 2,157 ns | 0.464 M | 3.709 M | 4 ns | -| iterate(tree.visit(lambda node, memo: None), n=8) | 3.12.6 | 1,513 ns | 0.661 M | 5.286 M | 38 ns | -| iterate(tree.visit(lambda node, memo: None), n=8) | 3.11.10 | 1,998 ns | 0.501 M | 4.004 M | 7 ns | -| iterate(tree.visit(lambda node, memo: None), n=8) | 3.13.0rc3+ | 1,383 ns | 0.723 M | 5.785 M | 42 ns | -| iterate(tree.visit(lambda node, memo: None), n=8) | 3.10.15 | 2,595 ns | 0.385 M | 3.083 M | 88 ns | -| iterate(tree.visit(lambda node, memo: None), n=8) | 3.9.20 | 2,532 ns | 0.395 M | 3.159 M | 85 ns | -| search(by index, n=8) | 3.13.0rc3+ | 348 ns | 2.875 M | 23.004 M | 30 ns | -| search(by index, n=8) | 3.12.6 | 342 ns | 2.922 M | 23.375 M | 30 ns | -| search(by index, n=8) | 3.9.20 | 516 ns | 1.937 M | 15.497 M | 48 ns | -| search(by index, n=8) | 3.11.10 | 287 ns | 3.480 M | 27.839 M | 27 ns | -| search(by index, n=8) | 3.10.15 | 487 ns | 2.052 M | 16.415 M | 31 ns | -| search(find(), n=8) | 3.9.20 | 274 ns | 3.647 M | 29.175 M | 1 ns | -| search(find(), n=8) | 3.13.0rc3+ | 148 ns | 6.766 M | 54.127 M | 7 ns | -| search(find(), n=8) | 3.10.15 | 247 ns | 4.053 M | 32.422 M | 15 ns | -| search(find(), n=8) | 3.11.10 | 145 ns | 6.912 M | 55.299 M | 8 ns | -| search(find(), n=8) | 3.12.6 | 151 ns | 6.632 M | 53.056 M | 8 ns | -| search(find_all(), n=8) | 3.9.20 | 267 ns | 3.748 M | 29.980 M | 10 ns | -| search(find_all(), n=8) | 3.11.10 | 141 ns | 7.104 M | 56.832 M | 5 ns | -| search(find_all(), n=8) | 3.12.6 | 156 ns | 6.392 M | 51.134 M | 5 ns | -| search(find_all(), n=8) | 3.10.15 | 240 ns | 4.160 M | 33.278 M | 12 ns | -| search(find_all(), n=8) | 3.13.0rc3+ | 148 ns | 6.768 M | 54.147 M | 6 ns | -| serialize_load(ZIP_BZIP2 ('.bz2')) | 3.11.10 | 163 ms | 6.129 | 6.129 | 0 ms | -| serialize_load(ZIP_BZIP2 ('.bz2')) | 3.12.6 | 165 ms | 6.055 | 6.055 | 0 ms | -| serialize_load(ZIP_BZIP2 ('.bz2')) | 3.10.15 | 208 ms | 4.808 | 4.808 | 0 ms | -| serialize_load(ZIP_BZIP2 ('.bz2')) | 3.9.20 | 240 ms | 4.168 | 4.168 | 0 ms | -| serialize_load(ZIP_BZIP2 ('.bz2')) | 3.13.0rc3+ | 175 ms | 5.722 | 5.722 | 0 ms | -| serialize_load(ZIP_DEFLATED ('.zip')) | 3.11.10 | 148 ms | 6.756 | 6.756 | 0 ms | -| serialize_load(ZIP_DEFLATED ('.zip')) | 3.13.0rc3+ | 159 ms | 6.294 | 6.294 | 0 ms | -| serialize_load(ZIP_DEFLATED ('.zip')) | 3.12.6 | 164 ms | 6.102 | 6.102 | 0 ms | -| serialize_load(ZIP_DEFLATED ('.zip')) | 3.10.15 | 210 ms | 4.770 | 4.770 | 0 ms | -| serialize_load(ZIP_DEFLATED ('.zip')) | 3.9.20 | 209 ms | 4.785 | 4.785 | 0 ms | -| serialize_load(ZIP_LZMA ('.lzma')) | 3.10.15 | 208 ms | 4.805 | 4.805 | 0 ms | -| serialize_load(ZIP_LZMA ('.lzma')) | 3.9.20 | 204 ms | 4.907 | 4.907 | 0 ms | -| serialize_load(ZIP_LZMA ('.lzma')) | 3.13.0rc3+ | 156 ms | 6.424 | 6.424 | 0 ms | -| serialize_load(ZIP_LZMA ('.lzma')) | 3.11.10 | 162 ms | 6.187 | 6.187 | 0 ms | -| serialize_load(ZIP_LZMA ('.lzma')) | 3.12.6 | 167 ms | 5.975 | 5.975 | 0 ms | -| serialize_load(uncompressed ('.json')) | 3.13.0rc3+ | 149 ms | 6.709 | 6.709 | 0 ms | -| serialize_load(uncompressed ('.json')) | 3.9.20 | 203 ms | 4.926 | 4.926 | 0 ms | -| serialize_load(uncompressed ('.json')) | 3.12.6 | 171 ms | 5.848 | 5.848 | 0 ms | -| serialize_load(uncompressed ('.json')) | 3.11.10 | 145 ms | 6.902 | 6.902 | 0 ms | -| serialize_load(uncompressed ('.json')) | 3.10.15 | 200 ms | 4.990 | 4.990 | 0 ms | -| serialize_save(ZIP_BZIP2 ('.bz2')) | 3.12.6 | 325 ms | 3.081 | 3.081 | 0 ms | -| serialize_save(ZIP_BZIP2 ('.bz2')) | 3.11.10 | 320 ms | 3.125 | 3.125 | 0 ms | -| serialize_save(ZIP_BZIP2 ('.bz2')) | 3.13.0rc3+ | 281 ms | 3.558 | 3.558 | 0 ms | -| serialize_save(ZIP_BZIP2 ('.bz2')) | 3.10.15 | 378 ms | 2.649 | 2.649 | 0 ms | -| serialize_save(ZIP_BZIP2 ('.bz2')) | 3.9.20 | 353 ms | 2.835 | 2.835 | 0 ms | -| serialize_save(ZIP_DEFLATED ('.zip')) | 3.11.10 | 286 ms | 3.498 | 3.498 | 0 ms | -| serialize_save(ZIP_DEFLATED ('.zip')) | 3.13.0rc3+ | 244 ms | 4.091 | 4.091 | 0 ms | -| serialize_save(ZIP_DEFLATED ('.zip')) | 3.12.6 | 268 ms | 3.738 | 3.738 | 0 ms | -| serialize_save(ZIP_DEFLATED ('.zip')) | 3.9.20 | 333 ms | 3.000 | 3.000 | 0 ms | -| serialize_save(ZIP_DEFLATED ('.zip')) | 3.10.15 | 344 ms | 2.907 | 2.907 | 0 ms | -| serialize_save(ZIP_LZMA ('.lzma')) | 3.13.0rc3+ | 568 ms | 1.762 | 1.762 | 0 ms | -| serialize_save(ZIP_LZMA ('.lzma')) | 3.10.15 | 660 ms | 1.515 | 1.515 | 0 ms | -| serialize_save(ZIP_LZMA ('.lzma')) | 3.9.20 | 626 ms | 1.597 | 1.597 | 0 ms | -| serialize_save(ZIP_LZMA ('.lzma')) | 3.12.6 | 566 ms | 1.766 | 1.766 | 0 ms | -| serialize_save(ZIP_LZMA ('.lzma')) | 3.11.10 | 593 ms | 1.685 | 1.685 | 0 ms | -| serialize_save(uncompressed ('.json')) | 3.10.15 | 305 ms | 3.274 | 3.274 | 0 ms | -| serialize_save(uncompressed ('.json')) | 3.11.10 | 272 ms | 3.671 | 3.671 | 0 ms | -| serialize_save(uncompressed ('.json')) | 3.12.6 | 230 ms | 4.352 | 4.352 | 0 ms | -| serialize_save(uncompressed ('.json')) | 3.13.0rc3+ | 215 ms | 4.660 | 4.660 | 0 ms | -| serialize_save(uncompressed ('.json')) | 3.9.20 | 293 ms | 3.410 | 3.410 | 0 ms | +| Name | Variant | Python | Minimum time | maxOPS | Std Dev (σ) | +|:-----------------|:------------------------------------------|:-----------|:---------------|:----------|:--------------| +| access node.data | node._data (attr) | 3.9.20 | 29 ns | 34.911 M | 1 ns | +| access node.data | node._data (attr) | 3.10.15 | 29 ns | 34.012 M | 1 ns | +| access node.data | node._data (attr) | 3.11.10 | 22 ns | 44.912 M | 0 ns | +| access node.data | node._data (attr) | 3.12.6 | 9 ns | 116.281 M | 0 ns | +| access node.data | node._data (attr) | 3.13.0rc3+ | 7 ns | 134.332 M | 0 ns | +| access node.data | node.data (property) | 3.9.20 | 75 ns | 13.334 M | 0 ns | +| access node.data | node.data (property) | 3.10.15 | 79 ns | 12.616 M | 0 ns | +| access node.data | node.data (property) | 3.11.10 | 56 ns | 17.833 M | 0 ns | +| access node.data | node.data (property) | 3.12.6 | 52 ns | 19.222 M | 0 ns | +| access node.data | node.data (property) | 3.13.0rc3+ | 49 ns | 20.374 M | 0 ns | +| iterate | for _ in tree.iterator(): ... | 3.9.20 | 2,639 ns | 0.379 M | 12 ns | +| iterate | for _ in tree.iterator(): ... | 3.10.15 | 2,563 ns | 0.390 M | 6 ns | +| iterate | for _ in tree.iterator(): ... | 3.11.10 | 2,138 ns | 0.468 M | 223 ns | +| iterate | for _ in tree.iterator(): ... | 3.12.6 | 1,666 ns | 0.600 M | 53 ns | +| iterate | for _ in tree.iterator(): ... | 3.13.0rc3+ | 1,508 ns | 0.663 M | 6 ns | +| iterate | for _ in tree.iterator(LEVEL_ORDER): ... | 3.9.20 | 1,776 ns | 0.563 M | 6 ns | +| iterate | for _ in tree.iterator(LEVEL_ORDER): ... | 3.10.15 | 1,908 ns | 0.524 M | 9 ns | +| iterate | for _ in tree.iterator(LEVEL_ORDER): ... | 3.11.10 | 1,552 ns | 0.644 M | 4 ns | +| iterate | for _ in tree.iterator(LEVEL_ORDER): ... | 3.12.6 | 1,309 ns | 0.764 M | 4 ns | +| iterate | for _ in tree.iterator(LEVEL_ORDER): ... | 3.13.0rc3+ | 1,222 ns | 0.818 M | 3 ns | +| iterate | for _ in tree.iterator(POST_ORDER): ... | 3.9.20 | 3,201 ns | 0.312 M | 7 ns | +| iterate | for _ in tree.iterator(POST_ORDER): ... | 3.10.15 | 3,134 ns | 0.319 M | 6 ns | +| iterate | for _ in tree.iterator(POST_ORDER): ... | 3.11.10 | 2,667 ns | 0.375 M | 10 ns | +| iterate | for _ in tree.iterator(POST_ORDER): ... | 3.12.6 | 2,292 ns | 0.436 M | 7 ns | +| iterate | for _ in tree.iterator(POST_ORDER): ... | 3.13.0rc3+ | 2,088 ns | 0.479 M | 87 ns | +| iterate | for _ in tree.iterator(PRE_ORDER): ... | 3.9.20 | 2,696 ns | 0.371 M | 93 ns | +| iterate | for _ in tree.iterator(PRE_ORDER): ... | 3.10.15 | 2,566 ns | 0.390 M | 5 ns | +| iterate | for _ in tree.iterator(PRE_ORDER): ... | 3.11.10 | 2,109 ns | 0.474 M | 92 ns | +| iterate | for _ in tree.iterator(PRE_ORDER): ... | 3.12.6 | 1,690 ns | 0.592 M | 47 ns | +| iterate | for _ in tree.iterator(PRE_ORDER): ... | 3.13.0rc3+ | 1,498 ns | 0.668 M | 7 ns | +| iterate | for _ in tree.iterator(RANDOM_ORDER): ... | 3.9.20 | 2,561 ns | 0.390 M | 96 ns | +| iterate | for _ in tree.iterator(RANDOM_ORDER): ... | 3.10.15 | 2,556 ns | 0.391 M | 12 ns | +| iterate | for _ in tree.iterator(RANDOM_ORDER): ... | 3.11.10 | 1,766 ns | 0.566 M | 46 ns | +| iterate | for _ in tree.iterator(RANDOM_ORDER): ... | 3.12.6 | 1,825 ns | 0.548 M | 43 ns | +| iterate | for _ in tree.iterator(RANDOM_ORDER): ... | 3.13.0rc3+ | 1,728 ns | 0.579 M | 7 ns | +| iterate | for _ in tree.iterator(UNORDERED): ... | 3.9.20 | 491 ns | 2.035 M | 4 ns | +| iterate | for _ in tree.iterator(UNORDERED): ... | 3.10.15 | 492 ns | 2.032 M | 4 ns | +| iterate | for _ in tree.iterator(UNORDERED): ... | 3.11.10 | 394 ns | 2.538 M | 0 ns | +| iterate | for _ in tree.iterator(UNORDERED): ... | 3.12.6 | 398 ns | 2.510 M | 3 ns | +| iterate | for _ in tree.iterator(UNORDERED): ... | 3.13.0rc3+ | 336 ns | 2.977 M | 1 ns | +| iterate | for _ in tree: ... | 3.9.20 | 2,652 ns | 0.377 M | 21 ns | +| iterate | for _ in tree: ... | 3.10.15 | 2,554 ns | 0.392 M | 233 ns | +| iterate | for _ in tree: ... | 3.11.10 | 2,157 ns | 0.464 M | 4 ns | +| iterate | for _ in tree: ... | 3.12.6 | 1,687 ns | 0.593 M | 18 ns | +| iterate | for _ in tree: ... | 3.13.0rc3+ | 1,527 ns | 0.655 M | 107 ns | +| iterate | tree.visit(lambda node, memo: None) | 3.9.20 | 2,532 ns | 0.395 M | 85 ns | +| iterate | tree.visit(lambda node, memo: None) | 3.10.15 | 2,595 ns | 0.385 M | 88 ns | +| iterate | tree.visit(lambda node, memo: None) | 3.11.10 | 1,998 ns | 0.501 M | 7 ns | +| iterate | tree.visit(lambda node, memo: None) | 3.12.6 | 1,513 ns | 0.661 M | 38 ns | +| iterate | tree.visit(lambda node, memo: None) | 3.13.0rc3+ | 1,383 ns | 0.723 M | 42 ns | +| search | by index | 3.9.20 | 516 ns | 1.937 M | 48 ns | +| search | by index | 3.10.15 | 487 ns | 2.052 M | 31 ns | +| search | by index | 3.11.10 | 287 ns | 3.480 M | 27 ns | +| search | by index | 3.12.6 | 342 ns | 2.922 M | 30 ns | +| search | by index | 3.13.0rc3+ | 348 ns | 2.875 M | 30 ns | +| search | find() | 3.9.20 | 274 ns | 3.647 M | 1 ns | +| search | find() | 3.10.15 | 247 ns | 4.053 M | 15 ns | +| search | find() | 3.11.10 | 145 ns | 6.912 M | 8 ns | +| search | find() | 3.12.6 | 151 ns | 6.632 M | 8 ns | +| search | find() | 3.13.0rc3+ | 148 ns | 6.766 M | 7 ns | +| search | find_all() | 3.9.20 | 267 ns | 3.748 M | 10 ns | +| search | find_all() | 3.10.15 | 240 ns | 4.160 M | 12 ns | +| search | find_all() | 3.11.10 | 141 ns | 7.104 M | 5 ns | +| search | find_all() | 3.12.6 | 156 ns | 6.392 M | 5 ns | +| search | find_all() | 3.13.0rc3+ | 148 ns | 6.768 M | 6 ns | +| serialize_load | ZIP_BZIP2 ('.bz2') | 3.9.20 | 240 ms | 4.168 | 0 ms | +| serialize_load | ZIP_BZIP2 ('.bz2') | 3.10.15 | 208 ms | 4.808 | 0 ms | +| serialize_load | ZIP_BZIP2 ('.bz2') | 3.11.10 | 163 ms | 6.129 | 0 ms | +| serialize_load | ZIP_BZIP2 ('.bz2') | 3.12.6 | 165 ms | 6.055 | 0 ms | +| serialize_load | ZIP_BZIP2 ('.bz2') | 3.13.0rc3+ | 175 ms | 5.722 | 0 ms | +| serialize_load | ZIP_DEFLATED ('.zip') | 3.9.20 | 209 ms | 4.785 | 0 ms | +| serialize_load | ZIP_DEFLATED ('.zip') | 3.10.15 | 210 ms | 4.770 | 0 ms | +| serialize_load | ZIP_DEFLATED ('.zip') | 3.11.10 | 148 ms | 6.756 | 0 ms | +| serialize_load | ZIP_DEFLATED ('.zip') | 3.12.6 | 164 ms | 6.102 | 0 ms | +| serialize_load | ZIP_DEFLATED ('.zip') | 3.13.0rc3+ | 159 ms | 6.294 | 0 ms | +| serialize_load | ZIP_LZMA ('.lzma') | 3.9.20 | 204 ms | 4.907 | 0 ms | +| serialize_load | ZIP_LZMA ('.lzma') | 3.10.15 | 208 ms | 4.805 | 0 ms | +| serialize_load | ZIP_LZMA ('.lzma') | 3.11.10 | 162 ms | 6.187 | 0 ms | +| serialize_load | ZIP_LZMA ('.lzma') | 3.12.6 | 167 ms | 5.975 | 0 ms | +| serialize_load | ZIP_LZMA ('.lzma') | 3.13.0rc3+ | 156 ms | 6.424 | 0 ms | +| serialize_load | uncompressed ('.json') | 3.9.20 | 203 ms | 4.926 | 0 ms | +| serialize_load | uncompressed ('.json') | 3.10.15 | 200 ms | 4.990 | 0 ms | +| serialize_load | uncompressed ('.json') | 3.11.10 | 145 ms | 6.902 | 0 ms | +| serialize_load | uncompressed ('.json') | 3.12.6 | 171 ms | 5.848 | 0 ms | +| serialize_load | uncompressed ('.json') | 3.13.0rc3+ | 149 ms | 6.709 | 0 ms | +| serialize_save | ZIP_BZIP2 ('.bz2') | 3.9.20 | 353 ms | 2.835 | 0 ms | +| serialize_save | ZIP_BZIP2 ('.bz2') | 3.10.15 | 378 ms | 2.649 | 0 ms | +| serialize_save | ZIP_BZIP2 ('.bz2') | 3.11.10 | 320 ms | 3.125 | 0 ms | +| serialize_save | ZIP_BZIP2 ('.bz2') | 3.12.6 | 325 ms | 3.081 | 0 ms | +| serialize_save | ZIP_BZIP2 ('.bz2') | 3.13.0rc3+ | 281 ms | 3.558 | 0 ms | +| serialize_save | ZIP_DEFLATED ('.zip') | 3.9.20 | 333 ms | 3.000 | 0 ms | +| serialize_save | ZIP_DEFLATED ('.zip') | 3.10.15 | 344 ms | 2.907 | 0 ms | +| serialize_save | ZIP_DEFLATED ('.zip') | 3.11.10 | 286 ms | 3.498 | 0 ms | +| serialize_save | ZIP_DEFLATED ('.zip') | 3.12.6 | 268 ms | 3.738 | 0 ms | +| serialize_save | ZIP_DEFLATED ('.zip') | 3.13.0rc3+ | 244 ms | 4.091 | 0 ms | +| serialize_save | ZIP_LZMA ('.lzma') | 3.9.20 | 626 ms | 1.597 | 0 ms | +| serialize_save | ZIP_LZMA ('.lzma') | 3.10.15 | 660 ms | 1.515 | 0 ms | +| serialize_save | ZIP_LZMA ('.lzma') | 3.11.10 | 593 ms | 1.685 | 0 ms | +| serialize_save | ZIP_LZMA ('.lzma') | 3.12.6 | 566 ms | 1.766 | 0 ms | +| serialize_save | ZIP_LZMA ('.lzma') | 3.13.0rc3+ | 568 ms | 1.762 | 0 ms | +| serialize_save | uncompressed ('.json') | 3.9.20 | 293 ms | 3.410 | 0 ms | +| serialize_save | uncompressed ('.json') | 3.10.15 | 305 ms | 3.274 | 0 ms | +| serialize_save | uncompressed ('.json') | 3.11.10 | 272 ms | 3.671 | 0 ms | +| serialize_save | uncompressed ('.json') | 3.12.6 | 230 ms | 4.352 | 0 ms | +| serialize_save | uncompressed ('.json') | 3.13.0rc3+ | 215 ms | 4.660 | 0 ms | Benchmark date: 2024-12-27T21:32:29.559992+00:00 Fixed dataset values: client='61bdee7c56e0e5f7', debug_mode=False, hardware='arm64_16_GB', project='nutree', system='Darwin_24.1.0', tag='latest', version='0.11.2a1'. Variant dataset values: name, python, sample_size, variant. Showing 105 rows. -Sort order: full_name. - +Sort order: name, variant, python. ## Ops by python diff --git a/setup.cfg b/setup.cfg index 4aaf247..3b840ca 100644 --- a/setup.cfg +++ b/setup.cfg @@ -36,8 +36,8 @@ license = MIT license_files = LICENSE.txt classifiers = # Development Status :: 3 - Alpha - Development Status :: 4 - Beta - # Development Status :: 5 - Production/Stable + # Development Status :: 4 - Beta + Development Status :: 5 - Production/Stable Environment :: Console Intended Audience :: Developers License :: OSI Approved :: MIT License diff --git a/tox_benchmarks.ini b/tox_benchmarks.ini index d595ad1..1e202ef 100644 --- a/tox_benchmarks.ini +++ b/tox_benchmarks.ini @@ -38,7 +38,10 @@ commands: --dyn-col-name python --dyn-col-value ops \ --output .benchman/report-by-pyver.latest.md ; benchman report --columns name,mean,median,stdev --dyn-col-name python --dyn-col-value best - benchman report --output .benchman/report.latest.md + benchman report \ + --columns name,variant,python,min,ops,stdev \ + --sort name,variant,python \ + --output .benchman/report.latest.md ; ignore_outcome = true ; parallel_show_output = true \ No newline at end of file