Mục lục:
Định nghĩa - Bộ sưu tập Rác (GC) có nghĩa là gì?
Bộ sưu tập rác (GC) là một cách tiếp cận năng động để quản lý bộ nhớ tự động và phân bổ heap xử lý và xác định các khối bộ nhớ chết và phân bổ lại bộ nhớ để tái sử dụng. Mục đích chính của thu gom rác là để giảm rò rỉ bộ nhớ.
Việc thực hiện GC đòi hỏi ba cách tiếp cận chính, như sau:
- Đánh dấu và quét - Trong quá trình khi hết bộ nhớ, GC định vị tất cả bộ nhớ có thể truy cập và sau đó lấy lại bộ nhớ khả dụng.
- Đếm tham chiếu - Các đối tượng được phân bổ chứa số tham chiếu của số tham chiếu. Khi số lượng bộ nhớ bằng 0, đối tượng là rác và sau đó bị phá hủy. Bộ nhớ giải phóng trở về đống bộ nhớ.
- Sao chép bộ sưu tập - Có hai phân vùng bộ nhớ. Nếu phân vùng thứ nhất đầy, GC sẽ định vị tất cả các cấu trúc dữ liệu có thể truy cập và sao chép chúng vào phân vùng thứ hai, nén bộ nhớ sau quá trình GC và cho phép bộ nhớ trống liên tục.
Một số ngôn ngữ lập trình và nền tảng có tích hợp rò rỉ bộ nhớ tự quản lý (ví dụ: Java, Lisp, C # và .Net), cho phép lập trình hiệu quả hơn.
Techopedia giải thích Bộ sưu tập rác (GC)
Cách tiếp cận năng động của bộ sưu tập rác đối với phân bổ đống tự động giải quyết các lỗi phổ biến và tốn kém thường dẫn đến lỗi chương trình trong thế giới thực khi không bị phát hiện.
Bởi vì chúng khó xác định và sửa chữa, lỗi phân bổ rất tốn kém. Do đó, bộ sưu tập rác được nhiều người coi là một tính năng ngôn ngữ thiết yếu giúp công việc của lập trình viên dễ dàng hơn với quản lý phân bổ heap thủ công thấp hơn. Tuy nhiên, GC không hoàn hảo và cần xem xét các nhược điểm sau:
- Khi giải phóng bộ nhớ, GC tiêu thụ tài nguyên máy tính.
- Quá trình GC là không thể đoán trước, dẫn đến sự chậm trễ phiên rải rác.
- Khi các tham chiếu đối tượng không sử dụng không được xử lý thủ công, GC gây rò rỉ bộ nhớ logic.
- Không phải lúc nào GC cũng biết khi nào xử lý trong môi trường bộ nhớ ảo của máy tính để bàn hiện đại.
- Quá trình GC tương tác kém với bộ nhớ cache và hệ thống bộ nhớ ảo, dẫn đến khó khăn trong việc điều chỉnh hiệu năng.
