封装类型

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)>>, } }

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