Tôi có quyền giả định rằng điều duy nhất "chậm lại" Rc
s là nó có kiểm tra xem có nên xử lý lại đối tượng khi nó rơi xuống không? Bên cạnh đó, "số tiền" là phí tổn của cuộc hội thảo là Rc
, tức là tôi có nên lo lắng về điều đó không?
Hai chức năng này có gần như bằng nhau không? Hay có sự khác biệt đáng chú ý về tốc độ?Tôi có phải lo ngại về chi phí của `Rc` không?
fn test_with_box() {
let b = Box::new(1.0);
let x = b * 2;
}
fn test_with_rc() {
let rc = Rc::new(1.0);
let x = rc * 2;
}
Kể từ khi đối tượng được tham chiếu trong test_with_rc()
luôn chỉ có một tài liệu tham khảo và cư xử như một Box
trong chức năng đó (nhìn từ bên ngoài, chứ không phải trong nội bộ, tất nhiên).
Tôi nghi ngờ rằng Rc
s thực sự nhanh hơn tôi nghĩ.
PS: Khi nói về "nhanh", tôi có nghĩa là cả hội nghị và phân bổ/deallocating.
Như thường lệ với các câu hỏi về hiệu suất, cách duy nhất để biết là lập hồ sơ tại chỗ. Micro-điểm chuẩn không phù hợp. –