Tại sao tất cả bộ nhớ không được giải phóng khi Python thoát?

{{FormatNumbertoThousand(model.total_like)}} lượt thích
89 lượt xem
Python master

Các đối tượng được tham chiếu từ global namespace của các module Python không phải lúc nào cũng được giải phóng khi Python thoát (exit). Điều này có thể xảy ra nếu có các Circular reference (tham chiếu xoay vòng). Cũng có một số bit bộ nhớ nhất định được phân bổ bởi thư viện C không thể giải phóng được (ví dụ: một công cụ như Purify sẽ phàn nàn về những điều này). Tuy nhiên, Python rất mạnh về việc dọn dẹp bộ nhớ khi thoát và cố gắng phá hủy mọi đối tượng.

Nếu bạn muốn buộc Python xóa một số thứ nhất định khi phân bổ, bạn có thể sử dụng module atexit để đăng ký một hoặc nhiều hàm exit để xử lý các thao tác giải phóng đó.

{{login.error}}