pyo3-benchmarks: add benchmark for class init
This commit is contained in:
parent
64a0391fb1
commit
ab8925572b
|
@ -55,6 +55,17 @@ fn args_kwargs<'a>(
|
|||
(args, kwargs)
|
||||
}
|
||||
|
||||
#[pyclass]
|
||||
struct EmptyClass {}
|
||||
|
||||
#[pymethods]
|
||||
impl EmptyClass {
|
||||
#[new]
|
||||
fn new() -> Self {
|
||||
EmptyClass {}
|
||||
}
|
||||
}
|
||||
|
||||
#[pymodule]
|
||||
fn _pyo3_benchmarks(_py: Python<'_>, m: &PyModule) -> PyResult<()> {
|
||||
m.add_function(wrap_pyfunction!(none, m)?)?;
|
||||
|
@ -63,5 +74,6 @@ fn _pyo3_benchmarks(_py: Python<'_>, m: &PyModule) -> PyResult<()> {
|
|||
m.add_function(wrap_pyfunction!(simple_kwargs, m)?)?;
|
||||
m.add_function(wrap_pyfunction!(simple_args_kwargs, m)?)?;
|
||||
m.add_function(wrap_pyfunction!(args_kwargs, m)?)?;
|
||||
m.add_class::<EmptyClass>()?;
|
||||
Ok(())
|
||||
}
|
||||
|
|
|
@ -89,3 +89,15 @@ def test_args_kwargs_rs(benchmark):
|
|||
py = args_kwargs_py(1, "foo", {1: 2}, bar=4, foo=10)
|
||||
assert rust == py
|
||||
benchmark(pyo3_benchmarks.args_kwargs, 1, "foo", {1: 2}, a=4, foo=10)
|
||||
|
||||
|
||||
def test_empty_class_init(benchmark):
|
||||
benchmark(pyo3_benchmarks.EmptyClass)
|
||||
|
||||
|
||||
class EmptyClassPy:
|
||||
pass
|
||||
|
||||
|
||||
def test_empty_class_init_py(benchmark):
|
||||
benchmark(EmptyClassPy)
|
||||
|
|
Loading…
Reference in a new issue