1

我发现的更接近的选择是pyo3,但我不清楚与传统的 C 扩展相比它是否增加了任何额外的开销。从这里看来,通过借用对象似乎可以实现这种 C 扩展行为 (我仍然需要详细了解这个概念)。我的部分问题来自于构建过程(此处为Rust 的 Python 部分)完全由同时引用cpythonpyo3的cargo管理。

有关增加一些开销但不是基于 rust 的方法示例,请参阅此比较

一个相关的问题是关于可移植性的,因为似乎存在一种开销-可移植性权衡。

对于那些喜欢了解具体案例的人来说,它是关于以不可预测的顺序使用数百万次的类似散列的小型操作。因此,无论是纯 Python 还是批处理原生方法都无济于事。此外,与纯 Python 相比,第一次尝试使用 C 扩展已经有收获。现在,我想在编写其余函数之前在 Rust 中实现它。

4

0 回答 0