Có, gc được khấu hao thời gian không đổi. Giả sử bạn có một thuật toán chạy trong thời gian với một tập hợp kích thước cực đại k . Bây giờ, lưu ý rằng bạn có thể phân bổ tối đa các từ O ( n ) trong khi thực hiện chương trình và chi phí thời gian để chạy bộ thu gom rác sao chép là O ( k ) (nghĩa là chi phí của một gc tỷ lệ thuận với tổng lượng dữ liệu trực tiếp). Vì vậy, nếu bạn chạy gc nhiều nhất là O ( n / k ) , thì tổng chi phí thời gian chạy bị giới hạn bởi O ( n )nkÔ ( n )Ô ( k )O ( n / k )Ô ( n ), có nghĩa là chi phí khấu hao của gc là không đổi. Vì vậy, nếu bạn có bộ sưu tập kiểu Cheney, với mỗi bán kết có kích thước , thì bạn sẽ dễ dàng thấy rằng một bộ sưu tập đầy đủ không thể được gọi nhiều hơn một lần mỗi n / k , vì việc phân bổ k từ sẽ mất O ( k ) thời gian và bộ làm việc không bao giờ vượt quá kích thước k , điều này mang lại cho bạn ràng buộc mà bạn muốn. Điều này biện minh cho việc bỏ qua các vấn đề gc.2 kn / kkÔi ( k)k
Tuy nhiên, một trường hợp mà sự hiện diện hay vắng mặt của gc không thể bỏ qua là khi viết cấu trúc dữ liệu không khóa. Nhiều cấu trúc dữ liệu không khóa hiện đại cố tình rò rỉ bộ nhớ và dựa vào gc cho chính xác. Điều này là do ở cấp độ cao, cách họ làm việc là sao chép một số dữ liệu, thay đổi dữ liệu và cố gắng cập nhật nguyên tử bằng lệnh CAS và chạy vòng lặp này cho đến khi CAS thành công. Việc thêm sự phân bổ xác định vào các thuật toán này làm cho chúng phức tạp hơn nhiều và vì vậy mọi người thường không bận tâm (đặc biệt vì chúng thường được nhắm mục tiêu vào các môi trường giống như Java).
EDIT: Nếu bạn muốn giới hạn không được khấu hao, nhà sưu tập Cheney sẽ không làm điều đó - nó sẽ quét toàn bộ thiết lập trực tiếp mỗi khi nó được gọi. Từ khóa để google cho là "bộ sưu tập rác thời gian thực" và Djikstra et al. và Steele đã cho các nhà sưu tập đánh dấu và quét thời gian thực đầu tiên, và Baker đã cho gc nén thời gian thực đầu tiên.
@article {dijkstra1978fly,
title = {{Bộ sưu tập rác trên đường bay: Một bài tập hợp tác}},
tác giả = {Dijkstra, EW và Lamport, L. và Martin, AJ và Scholten, CS và Steffens, EFM},
tạp chí = {Truyền thông của ACM},
khối lượng = {21},
số = {11},
trang = {966--975},
hiệnn = {0001-0782},
năm = {1978},
nhà xuất bản = {ACM}
}
@article {Steele1975multiprocessing,
title = {{Đa xử lý thu gom rác}},
tác giả = {Steele Jr, GL},
tạp chí = {Truyền thông của ACM},
khối lượng = {18},
số = {9},
trang = {495--508},
hiệnn = {0001-0782},
năm = {1975},
nhà xuất bản = {ACM}
}
@article {baker1978list,
title = {{Xử lý danh sách theo thời gian thực trên máy tính nối tiếp}},
tác giả = {Baker Jr, HG},
tạp chí = {Truyền thông của ACM},
khối lượng = {21},
số = {4},
trang = {280--294},
hiệnn = {0001-0782},
năm = {1978},
nhà xuất bản = {ACM}
}