Gc coll không giải phóng bộ nhớ python
Thu gom rác hoặc GC là một kỹ thuật được sử dụng trong các ngôn ngữ lập trình để khôi phục bộ nhớ. Bộ sưu tập rác là một tính năng tích hợp sẵn trong các ngôn ngữ lập trình khác nhau như Python, C#, Java, v.v. Trong các ngôn ngữ lập trình khác như C và Cpp (C++), lập trình viên hoặc nhà phát triển cần cấp phát và hủy cấp phát bộ nhớ theo cách thủ công Show
Bộ sưu tập rác trong Python tự động quản lý bộ nhớ và cấp phát heap (Tham khảo tại đây). Nói một cách đơn giản hơn, quá trình tự động xóa các đối tượng không mong muốn hoặc không sử dụng để giải phóng bộ nhớ được gọi là thu gom rác trong Python. Nó cũng giải phóng bộ nhớ chết và lấy lại khối bộ nhớ không còn được sử dụng để sử dụng tiếp Trình thu gom rác trong Python bắt đầu chạy ngay khi chương trình bắt đầu thực thi. Bất cứ khi nào bộ đếm tham chiếu của đối tượng đạt đến 0, bộ thu gom rác được kích hoạt. Bộ đếm tham chiếu của đối tượng thay đổi khi số lượng bí danh của đối tượng (các tham chiếu khác của cùng một đối tượng) thay đổi Có hai tình huống khi bộ đếm tham chiếu của một đối tượng tăng lên
Mặt khác, bộ đếm tham chiếu của một đối tượng giảm khi đối tượng bị xóa (với del). Bất cứ khi nào số lượng tham chiếu của một đối tượng đạt đến 0, trình thu gom rác trong Python sẽ tự động thu thập nó. Chúng ta cũng có thể nói rằng tham chiếu của đối tượng nằm ngoài phạm vi Khi bộ đếm tham chiếu về 0, không có ai tham chiếu đến phiên bản đó của vị trí bộ nhớ. Vì vậy, các phiên bản bộ nhớ không còn được tham chiếu bởi một đối tượng được gọi là phiên bản mồ côi. Vì vậy, trình thu gom rác sẽ lấy lại phiên bản bộ nhớ đó để nó có thể được phân bổ cho các đối tượng khác trong tương lai Trước khi xóa bất kỳ đối tượng nào, trình thông dịch Python gọi hàm hủy của một lớp gọi là __del__(). Hàm hủy được gọi khi thể hiện của lớp (đối tượng) sắp bị hủy. Hàm hủy có thể được sử dụng để xóa mọi tài nguyên không phải bộ nhớ khác được sử dụng bởi các đối tượng Chúng ta hãy lấy một ví dụ để hình dung bộ đếm (bộ đếm tham chiếu) tăng và giảm như thế nào
|