commit
78c51d3596
|
@ -19,3 +19,17 @@ fn iter_dict(b: &mut Bencher) {
|
|||
}
|
||||
});
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn dict_get_item(b: &mut Bencher) {
|
||||
let gil = Python::acquire_gil();
|
||||
let py = gil.python();
|
||||
const LEN: usize = 50_000;
|
||||
let dict = (0..LEN as u64).map(|i| (i, i * 2)).into_py_dict(py);
|
||||
let mut sum = 0;
|
||||
b.iter(|| {
|
||||
for i in 0..LEN {
|
||||
sum += dict.get_item(i).unwrap().extract::<usize>().unwrap();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
#![feature(test)]
|
||||
|
||||
extern crate test;
|
||||
use pyo3::prelude::*;
|
||||
use pyo3::types::PyList;
|
||||
use test::Bencher;
|
||||
|
||||
#[bench]
|
||||
fn iter_list(b: &mut Bencher) {
|
||||
let gil = Python::acquire_gil();
|
||||
let py = gil.python();
|
||||
const LEN: usize = 100_000;
|
||||
let list = PyList::new(py, 0..LEN);
|
||||
let mut sum = 0;
|
||||
b.iter(|| {
|
||||
for x in list.iter() {
|
||||
let i: u64 = x.extract().unwrap();
|
||||
sum += i;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn list_get_item(b: &mut Bencher) {
|
||||
let gil = Python::acquire_gil();
|
||||
let py = gil.python();
|
||||
const LEN: usize = 50_000;
|
||||
let list = PyList::new(py, 0..LEN);
|
||||
let mut sum = 0;
|
||||
b.iter(|| {
|
||||
for i in 0..LEN {
|
||||
sum += list.get_item(i as isize).extract::<usize>().unwrap();
|
||||
}
|
||||
});
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
#![feature(test)]
|
||||
|
||||
extern crate test;
|
||||
use pyo3::prelude::*;
|
||||
use pyo3::types::PyTuple;
|
||||
use test::Bencher;
|
||||
|
||||
#[bench]
|
||||
fn iter_tuple(b: &mut Bencher) {
|
||||
let gil = Python::acquire_gil();
|
||||
let py = gil.python();
|
||||
const LEN: usize = 100_000;
|
||||
let tuple = PyTuple::new(py, 0..LEN);
|
||||
let mut sum = 0;
|
||||
b.iter(|| {
|
||||
for x in tuple.iter() {
|
||||
let i: u64 = x.extract().unwrap();
|
||||
sum += i;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn tuple_get_item(b: &mut Bencher) {
|
||||
let gil = Python::acquire_gil();
|
||||
let py = gil.python();
|
||||
const LEN: usize = 50_000;
|
||||
let tuple = PyTuple::new(py, 0..LEN);
|
||||
let mut sum = 0;
|
||||
b.iter(|| {
|
||||
for i in 0..LEN {
|
||||
sum += tuple.get_item(i).extract::<usize>().unwrap();
|
||||
}
|
||||
});
|
||||
}
|
Loading…
Reference in New Issue