封装类型
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)>>, } }
这是否有助于性能取决于值的确切访问模式。 示例。