use*_*r89 10 arrays vector rust
在 Rust 中使用向量与数组时,我在性能方面损失了多少?
我所说的性能是指:元素访问速度或迭代速度。
phu*_*clv 13
它们都将数据存储在线性连续数组中,其中访问或迭代都是 O(1) 操作,因此性能没有差异。vector 较慢的唯一情况可能是一些小列表,因为数组存储在当前堆栈帧的堆栈中,因此它们的数据很可能已经加载到 CPU 缓存中。Vector OTOH 将数据存储在堆上,因此数据在第一次访问之前不会在缓存中可用
Vector 还具有更多级别的重定向,因为您需要首先加载数组的地址,因此第一次内存访问也可能会更慢,但这可以忽略不计
vector 更糟糕的另一种情况是,当您使用 vector 向量 vs 多维数组时,因为每个向量都是单独分配的,并且遍布内存,这不利于缓存。查看vec 与数组的访问时间
| 归档时间: |
|
| 查看次数: |
6121 次 |
| 最近记录: |