小编rus*_*ner的帖子

如何加速我的自定义结构中的 Rust 克隆方法?

我在 Rust 中有结构体,其中包含以下字段及其类型:

\n
    \n
  • 五个i8
  • \n
  • 六架F32
  • \n
  • 一布尔
  • \n
  • 一个大小为 4 的 Vec
  • \n
  • 一个大小为 4x20x7 的 Vec<Vec<Vec>>
  • \n
  • 一个大小为 4x20 的 Vec<Vec>
  • \n
  • 一个 HashMap<i8, Vec> 有 4 个键
  • \n
  • 一个大小从 0 到 30 变化的 Vec<(i8, i8)>
  • \n
\n

我的问题是如何加速这种结构的对象的克隆?\n现在我只使用

\n
fn py_make_copy(&self) -> PyResult<Self> {\n    Ok(self.clone())\n}\n
Run Code Online (Sandbox Code Playgroud)\n

它需要 4 到 6 \xc2\xb5s,这对我来说太慢了。我正在用 Python 测量它。\n不幸的是,我必须深度复制这些对象。

\n

我不知道这是否相关,但我使用

\n
#[pyclass(subclass)]\n#[derive(Clone)]\n
Run Code Online (Sandbox Code Playgroud)\n

定义此 Struct 和 #[pyo3(get)] 到所有字段时。

\n

我尝试使用 par_iter 并行克隆,但它的持续时间比 py_make_copy 长得多。

\n

python struct clone rust pyo3

0
推荐指数
1
解决办法
208
查看次数

标签 统计

clone ×1

pyo3 ×1

python ×1

rust ×1

struct ×1