Avatar for the PyO3 user
PyO3
pyo3
BlogDocsChangelog

Specialize self conversion for descriptor slots

#5930
Comparing
MatthieuDartiailh:descriptor
(
3b39386
) with
main
(
8a654f6
)
CodSpeed Performance Gauge
0%
Untouched
105
Ignored
21
Skipped
1

Benchmarks

127 total
call_method
pyo3-benches/benches/bench_call.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+5%
1.3 ms1.2 ms
bench_pyclass_create
pyo3-benches/benches/bench_pyclass.rs::benches::bench_pyclass
CodSpeed Performance Gauge
+1%
3.9 µs3.9 µs
call_method_1
pyo3-benches/benches/bench_call.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+1%
709.4 µs699.5 µs
tuple_into_pyobject
pyo3-benches/benches/bench_tuple.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+1%
2.6 µs2.6 µs
extract_bigint_small
pyo3-benches/benches/bench_bigint.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+1%
2.7 µs2.6 µs
ordered_richcmp
pyo3-benches/benches/bench_comparisons.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+1%
2.8 µs2.8 µs
test_proto_call
pytests/tests/test_pyclasses.py
CodSpeed Performance Gauge
+1%
10.9 µs10.9 µs
test_many_keyword_arguments_rs
pytests/tests/test_pyfunctions.py
CodSpeed Performance Gauge
0%
17.5 µs17.4 µs
extract_float_extract_fail
pyo3-benches/benches/bench_extract.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
0%
8.5 µs8.5 µs
test_simple_py
pytests/tests/test_pyfunctions.py
CodSpeed Performance Gauge
0%
13.9 µs13.8 µs
test_simple_args_py
pytests/tests/test_pyfunctions.py
CodSpeed Performance Gauge
0%
14.5 µs14.4 µs
test_simple_rs
pytests/tests/test_pyfunctions.py
CodSpeed Performance Gauge
0%
14.8 µs14.8 µs
test_simple_kwargs_py
pytests/tests/test_pyfunctions.py
CodSpeed Performance Gauge
0%
15.8 µs15.8 µs
test_simple_args_kwargs_py
pytests/tests/test_pyfunctions.py
CodSpeed Performance Gauge
0%
16.4 µs16.4 µs
not_a_list_via_extract_enum
pyo3-benches/benches/bench_frompyobject.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
0%
17.4 µs17.4 µs
enum_from_pyobject
pyo3-benches/benches/bench_frompyobject.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
0%
20.1 µs20.1 µs
first_time_init
pyo3-benches/benches/bench_pyclass.rs::benches::bench_first_time_init
CodSpeed Performance Gauge
0%
41 µs41 µs
drop_many_objects_without_gil
pyo3-benches/benches/bench_py.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
0%
55.9 µs55.9 µs
call_0
pyo3-benches/benches/bench_call.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
0%
166.2 µs166.2 µs
test_many_keyword_arguments_py
pytests/tests/test_pyfunctions.py
CodSpeed Performance Gauge
0%
15.5 µs15.5 µs
call
pyo3-benches/benches/bench_call.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
0%
607.2 µs607.1 µs
list_new
pyo3-benches/benches/bench_list.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
0%
3.9 ms3.9 ms
iter_tuple
pyo3-benches/benches/bench_tuple.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
0%
5.1 ms5.1 ms
iter_list
pyo3-benches/benches/bench_list.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
0%
11.7 ms11.7 ms
dict_new
pyo3-benches/benches/bench_dict.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
0%
20.4 ms20.4 ms

Commits

Click on a commit to change the comparison range
Base
main
8a654f6
-0.19%
speicialize self conversion for descriptor slots for which CPython does ensure a bad type cannot be passed from Python
3b39386
3 days ago
by MatthieuDartiailh
© 2026 CodSpeed Technology
Home Terms Privacy Docs