diff --git a/dev/bench/data.js b/dev/bench/data.js index 7c443256723..b3cf46f7496 100644 --- a/dev/bench/data.js +++ b/dev/bench/data.js @@ -1,5 +1,5 @@ window.BENCHMARK_DATA = { - "lastUpdate": 1715900803737, + "lastUpdate": 1715919184572, "repoUrl": "https://github.com/PyO3/pyo3", "entries": { "pyo3-bench": [ @@ -319940,6 +319940,414 @@ window.BENCHMARK_DATA = { "unit": "ns/iter" } ] + }, + { + "commit": { + "author": { + "email": "nikolas.vonlonski@googlemail.com", + "name": "newcomertv", + "username": "newcomertv" + }, + "committer": { + "email": "noreply@github.com", + "name": "GitHub", + "username": "web-flow" + }, + "distinct": false, + "id": "88f2f6f4d56f2bac1220d1f0d0ac912b8c160c4a", + "message": "feat: support pyclass on tuple enums (#4072)\n\n* feat: support pyclass on tuple enums\n\n* cargo fmt\n\n* changelog\n\n* ruff format\n\n* rebase with adaptation for FnArg refactor\n\n* fix class.md from pr comments\n\n* add enum tuple variant getitem implementation\n\n* fmt\n\n* progress toward getitem and len impl on derive pyclass for complex enum tuple\n\n* working getitem and len slots for complex tuple enum pyclass derivation\n\n* refactor code generation\n\n* address PR concerns\n- take py from function argument on get_item\n- make more general slot def implementation\n- remove unnecessary function arguments\n- add testcases for uncovered cases including future feature match_args\n\n* add tracking issue\n\n* fmt\n\n* ruff\n\n* remove me\n\n* support match_args for tuple enum\n\n* integrate FnArg now takes Cow\n\n* fix empty and single element tuples\n\n* use impl_py_slot_def for cimplex tuple enum slots\n\n* reverse erroneous doc change\n\n* Address latest comments\n\n* formatting suggestion\n\n* fix :\n- clippy beta\n- better compile error (+related doc and test)\n\n---------\n\nCo-authored-by: Chris Arderne ", + "timestamp": "2024-05-17T02:59:00Z", + "tree_id": "1885ac6f607980fc250eb426c57e679c8cdc4e3c", + "url": "https://github.com/PyO3/pyo3/commit/88f2f6f4d56f2bac1220d1f0d0ac912b8c160c4a" + }, + "date": 1715919161900, + "tool": "cargo", + "benches": [ + { + "name": "identify_object_type", + "value": 487, + "range": "± 8", + "unit": "ns/iter" + }, + { + "name": "collect_generic_iterator", + "value": 10201391, + "range": "± 222894", + "unit": "ns/iter" + }, + { + "name": "extract_bigint_extract_fail", + "value": 258, + "range": "± 3", + "unit": "ns/iter" + }, + { + "name": "extract_bigint_small", + "value": 57, + "range": "± 0", + "unit": "ns/iter" + }, + { + "name": "extract_bigint_big_negative", + "value": 180, + "range": "± 1", + "unit": "ns/iter" + }, + { + "name": "extract_bigint_big_positive", + "value": 142, + "range": "± 0", + "unit": "ns/iter" + }, + { + "name": "extract_bigint_huge_negative", + "value": 1253, + "range": "± 18", + "unit": "ns/iter" + }, + { + "name": "extract_bigint_huge_positive", + "value": 995, + "range": "± 24", + "unit": "ns/iter" + }, + { + "name": "call_0", + "value": 30343, + "range": "± 538", + "unit": "ns/iter" + }, + { + "name": "call_method_0", + "value": 95245, + "range": "± 1144", + "unit": "ns/iter" + }, + { + "name": "ordered_dunder_methods", + "value": 44, + "range": "± 2", + "unit": "ns/iter" + }, + { + "name": "ordered_richcmp", + "value": 44, + "range": "± 0", + "unit": "ns/iter" + }, + { + "name": "decimal_via_extract", + "value": 363, + "range": "± 17", + "unit": "ns/iter" + }, + { + "name": "iter_dict", + "value": 1140970, + "range": "± 12838", + "unit": "ns/iter" + }, + { + "name": "dict_new", + "value": 3044601, + "range": "± 30277", + "unit": "ns/iter" + }, + { + "name": "dict_get_item", + "value": 2156258, + "range": "± 14413", + "unit": "ns/iter" + }, + { + "name": "extract_hashmap", + "value": 4775492, + "range": "± 36829", + "unit": "ns/iter" + }, + { + "name": "extract_btreemap", + "value": 7581105, + "range": "± 101516", + "unit": "ns/iter" + }, + { + "name": "mapping_from_dict", + "value": 0, + "range": "± 0", + "unit": "ns/iter" + }, + { + "name": "err_new_restore_and_fetch", + "value": 159, + "range": "± 6", + "unit": "ns/iter" + }, + { + "name": "err_new_without_gil", + "value": 13, + "range": "± 0", + "unit": "ns/iter" + }, + { + "name": "extract_str_extract_success", + "value": 10, + "range": "± 0", + "unit": "ns/iter" + }, + { + "name": "extract_str_extract_fail", + "value": 23, + "range": "± 0", + "unit": "ns/iter" + }, + { + "name": "extract_str_downcast_success", + "value": 10, + "range": "± 0", + "unit": "ns/iter" + }, + { + "name": "extract_str_downcast_fail", + "value": 1, + "range": "± 0", + "unit": "ns/iter" + }, + { + "name": "extract_int_extract_success", + "value": 5, + "range": "± 0", + "unit": "ns/iter" + }, + { + "name": "extract_int_extract_fail", + "value": 250, + "range": "± 2", + "unit": "ns/iter" + }, + { + "name": "extract_int_downcast_success", + "value": 5, + "range": "± 0", + "unit": "ns/iter" + }, + { + "name": "extract_int_downcast_fail", + "value": 1, + "range": "± 0", + "unit": "ns/iter" + }, + { + "name": "extract_float_extract_success", + "value": 2, + "range": "± 0", + "unit": "ns/iter" + }, + { + "name": "extract_float_extract_fail", + "value": 245, + "range": "± 2", + "unit": "ns/iter" + }, + { + "name": "extract_float_downcast_success", + "value": 1, + "range": "± 0", + "unit": "ns/iter" + }, + { + "name": "extract_float_downcast_fail", + "value": 3, + "range": "± 0", + "unit": "ns/iter" + }, + { + "name": "enum_from_pyobject", + "value": 872, + "range": "± 8", + "unit": "ns/iter" + }, + { + "name": "list_via_downcast", + "value": 0, + "range": "± 0", + "unit": "ns/iter" + }, + { + "name": "list_via_extract", + "value": 6, + "range": "± 0", + "unit": "ns/iter" + }, + { + "name": "not_a_list_via_downcast", + "value": 1, + "range": "± 0", + "unit": "ns/iter" + }, + { + "name": "not_a_list_via_extract", + "value": 30, + "range": "± 0", + "unit": "ns/iter" + }, + { + "name": "not_a_list_via_extract_enum", + "value": 498, + "range": "± 4", + "unit": "ns/iter" + }, + { + "name": "clean_acquire_gil", + "value": 66, + "range": "± 0", + "unit": "ns/iter" + }, + { + "name": "dirty_acquire_gil", + "value": 88, + "range": "± 0", + "unit": "ns/iter" + }, + { + "name": "getattr_direct", + "value": 112, + "range": "± 1", + "unit": "ns/iter" + }, + { + "name": "getattr_intern", + "value": 27, + "range": "± 0", + "unit": "ns/iter" + }, + { + "name": "iter_list", + "value": 739547, + "range": "± 13838", + "unit": "ns/iter" + }, + { + "name": "list_new", + "value": 889661, + "range": "± 188779", + "unit": "ns/iter" + }, + { + "name": "list_get_item", + "value": 543471, + "range": "± 3997", + "unit": "ns/iter" + }, + { + "name": "list_get_item_unchecked", + "value": 450522, + "range": "± 10725", + "unit": "ns/iter" + }, + { + "name": "sequence_from_list", + "value": 0, + "range": "± 0", + "unit": "ns/iter" + }, + { + "name": "first_time_init", + "value": 3195, + "range": "± 132", + "unit": "ns/iter" + }, + { + "name": "drop_many_objects", + "value": 2170, + "range": "± 8", + "unit": "ns/iter" + }, + { + "name": "set_new", + "value": 2856071, + "range": "± 34866", + "unit": "ns/iter" + }, + { + "name": "iter_set", + "value": 1156715, + "range": "± 10560", + "unit": "ns/iter" + }, + { + "name": "extract_hashset", + "value": 5369942, + "range": "± 20423", + "unit": "ns/iter" + }, + { + "name": "extract_btreeset", + "value": 1873623, + "range": "± 11096", + "unit": "ns/iter" + }, + { + "name": "iter_tuple", + "value": 683216, + "range": "± 2871", + "unit": "ns/iter" + }, + { + "name": "tuple_new", + "value": 942695, + "range": "± 185666", + "unit": "ns/iter" + }, + { + "name": "tuple_get_item", + "value": 590203, + "range": "± 8143", + "unit": "ns/iter" + }, + { + "name": "tuple_get_item_unchecked", + "value": 481196, + "range": "± 23035", + "unit": "ns/iter" + }, + { + "name": "tuple_get_borrowed_item", + "value": 558711, + "range": "± 5164", + "unit": "ns/iter" + }, + { + "name": "tuple_get_borrowed_item_unchecked", + "value": 465649, + "range": "± 53581", + "unit": "ns/iter" + }, + { + "name": "sequence_from_tuple", + "value": 0, + "range": "± 0", + "unit": "ns/iter" + }, + { + "name": "tuple_new_list", + "value": 247635, + "range": "± 39035", + "unit": "ns/iter" + }, + { + "name": "tuple_to_list", + "value": 169770, + "range": "± 41689", + "unit": "ns/iter" + }, + { + "name": "tuple_into_py", + "value": 88, + "range": "± 1", + "unit": "ns/iter" + } + ] } ], "pytest-bench": [