封装类型

Rust 拥有各种“封装”类型,比如 RefCellMutex,它们为值提供了特殊的行为。访问这些值可能需要一定的时间。如果通常一起访问多个这样的值,将它们放在单个封装内可能更好。

例如,像这样的结构体:

#![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)>>,
}
}

这是否有助于性能取决于值的确切访问模式。 示例