Một số ngôn ngữ mới hơn đang triển khai ARC vào trình biên dịch của chúng (Swift và Rust, để đặt tên cho một cặp vợ chồng). Theo tôi hiểu điều này đạt được điều tương tự như thời gian chạy GC (lấy gánh nặng của deallocation hướng dẫn sử dụng đi từ lập trình viên), trong khi hiệu quả hơn đáng kể.Lợi thế của thời gian chạy GC trên ARC thời gian biên dịch là gì?
Tôi hiểu rằng ARC có thể trở thành một quá trình phức tạp, nhưng với sự phức tạp của các nhà sưu tập rác hiện đại, có vẻ như sẽ không phức tạp hơn khi triển khai ARC. Tuy nhiên, vẫn còn rất nhiều ngôn ngữ và khuôn khổ sử dụng GC để quản lý bộ nhớ, và thậm chí cả ngôn ngữ Go, trong đó nhắm mục tiêu lập trình hệ thống, sử dụng GC.
Tôi thực sự không thể hiểu tại sao GC lại thích hợp hơn với ARC. Am i thiếu cái gì ở đây?
Đối với một so sánh khái niệm chung về truy tìm GC so với đếm tham chiếu, bài báo này, "Lý thuyết thống nhất của bộ sưu tập rác", cho thấy cách chúng có thể được xem như là các nhị phân nghiêm ngặt của nhau. Tối ưu hóa và chỉnh sửa khác nhau cho mỗi phương pháp chỉ đơn giản là di chuyển bạn dọc theo một phổ kết nối chúng: https://www.cs.virginia.edu/~cs415/reading/bacon-garbage.pdf – algal
oh, yeah, tôi thích giấy đó: D cảm ơn vì đã liên kết nó –