Rust 拥有各种“封装”类型,比如 RefCell
和 Mutex
,它们为值提供了特殊的行为。访问这些值可能需要一定的时间。如果通常一起访问多个这样的值,将它们放在单个封装内可能更好。
例如,像这样的结构体:
#![allow(unused)]
fn main() {
use std::sync::{Arc, Mutex};
struct S {
x: Arc<Mutex<u32>>,
y: Arc<Mutex<u32>>,
}
}
可能更好地表示为:
#![allow(unused)]
fn main() {
use std::sync::{Arc, Mutex};
struct S {
xy: Arc<Mutex<(u32, u32)>>,
}
}
这是否有助于性能取决于值的确切访问模式。
示例。