gpt4 book ai didi

rust - 什么是最有效的: a reference to an ArrayBase or an ArrayView?

转载 作者:行者123 更新时间:2023-12-03 08:11:41 25 4
gpt4 key购买 nike

我正在改进 Rust 代码库,该代码库使用 ndarray crate 来操作数组。我有一个问题,在文档中找不到明确的答案。

ArrayView 实例作为参数传递给函数是否更有效,还是应该使用对 Array 的引用?我的直觉是,由于 ArrayView 是数组的 View ,因此在进行计算时,它仅传递数组的 View ,并且不向函数授予所有权(因此不复制)底层数据。

简而言之,从传递 ArrayView 实例切换到传递 Array 引用是否会带来速度提升?

我的目标是避免无用的内存分配/重复,这在处理大型数组时可能会非常昂贵。

最佳答案

ArrayBase 是一个通用结构,可以充当 ArrayViewArray,所以我假设您的意思是对拥有的引用数据,即数组

这两个版本都不会克隆数组,因此它们的效率应该大致相同。您始终可以进行基准测试来验证这一点。

在我看来,区别主要在于 ArrayView 将使函数更加灵活 - 您可以传入较大数组的一部分,或者从一个数组创建的 ArrayView slice,而引用 Array 的变体只能在您确实拥有所需大小的 Array 时调用。

关于rust - 什么是最有效的: a reference to an ArrayBase or an ArrayView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70626384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com