Avatar for the PyO3 user
PyO3
pyo3
BlogDocsChangelog

migrate many `FromPyObject` implementations to `Bound` API

#3784Merged
Comparing
davidhewitt:more-extract-bound
(
0d4df9c
) with
main
(
975f182
)
CodSpeed Performance Gauge
+77%
Improvement
12
Untouched
50
Ignored
17

Benchmarks

79 total
f64_from_pyobject
pyo3-benches/benches/bench_frompyobject.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+77%
701.4 ns395.8 ns
iter_set
pyo3-benches/benches/bench_set.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+54%
16 ms10.3 ms
iter_tuple
pyo3-benches/benches/bench_tuple.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+32%
7 ms5.3 ms
tuple_get_borrowed_item_unchecked
pyo3-benches/benches/bench_tuple.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+28%
3.8 ms3 ms
iter_list
pyo3-benches/benches/bench_list.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+26%
7.7 ms6.1 ms
tuple_get_item_unchecked
pyo3-benches/benches/bench_tuple.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+25%
4 ms3.2 ms
list_get_item_unchecked
pyo3-benches/benches/bench_list.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+25%
4.1 ms3.3 ms
tuple_get_borrowed_item
pyo3-benches/benches/bench_tuple.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+23%
4.4 ms3.6 ms
list_get_item
pyo3-benches/benches/bench_list.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+21%
4.6 ms3.8 ms
tuple_get_item
pyo3-benches/benches/bench_tuple.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+21%
4.6 ms3.8 ms
extract_btreeset
pyo3-benches/benches/bench_set.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+11%
17.2 ms15.4 ms
extract_hashmap
pyo3-benches/benches/bench_dict.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+11%
22.1 ms20 ms
decimal_via_extract
pyo3-benches/benches/bench_decimal.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+8%
15.9 µs14.7 µs
extract_float_extract_fail
pyo3-benches/benches/bench_extract.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+7%
12.2 µs11.4 µs
not_a_list_via_extract_enum
pyo3-benches/benches/bench_frompyobject.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+7%
14.1 µs13.2 µs
extract_btreemap
pyo3-benches/benches/bench_dict.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+6%
38.6 ms36.4 ms
extract_hashset
pyo3-benches/benches/bench_set.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+6%
22.1 ms20.9 ms
err_new_without_gil
pyo3-benches/benches/bench_err.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+2%
1.3 µs1.3 µs
identify_object_type
pyo3-benches/benches/bench_any.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+2%
16.1 µs15.7 µs
tuple_into_py
pyo3-benches/benches/bench_tuple.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+2%
2.9 µs2.9 µs
ordered_dunder_methods
pyo3-benches/benches/bench_comparisons.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+1%
3 µs3 µs
ordered_richcmp
pyo3-benches/benches/bench_comparisons.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+1%
3.1 µs3.1 µs
test_empty_class_init_py
pytests/tests/test_pyclasses.py
CodSpeed Performance Gauge
+1%
16.9 µs16.8 µs
extract_int_extract_fail
pyo3-benches/benches/bench_extract.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+1%
11.5 µs11.4 µs
drop_many_objects
pyo3-benches/benches/bench_pyobject.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
0%
9.4 µs9.4 µs

Commits

Click on a commit to change the comparison range
Base
main
975f182
+77.19%
adjust `FromPyObject` implementations to always use `'py` lifetime
0d4df9c
2 years ago
by davidhewitt
© 2026 CodSpeed Technology
Home Terms Privacy Docs