Hướng dẫn how does memory gets managed in python - làm thế nào để bộ nhớ được quản lý trong python
Hiểu phân bổ bộ nhớ rất quan trọng đối với bất kỳ nhà phát triển phần mềm nào vì viết mã hiệu quả có nghĩa là viết mã tiết kiệm bộ nhớ. Phân bổ bộ nhớ có thể được định nghĩa là phân bổ một khối không gian trong bộ nhớ máy tính cho một chương trình. Trong phương pháp phân bổ và phân bổ bộ nhớ Python là tự động vì các nhà phát triển Python đã tạo ra một trình thu thập rác cho Python để người dùng không phải thực hiện bộ sưu tập rác thủ công. Show Thu gom rác thảiBộ sưu tập rác là một quá trình trong đó trình thông dịch giải phóng bộ nhớ khi không sử dụng để cung cấp cho nó cho các đối tượng khác. Tôi là một trường hợp không có tham chiếu nào chỉ vào một đối tượng trong bộ nhớ, tức là nó không được sử dụng như vậy, máy ảo có Bộ thu gom rác tự động xóa đối tượng đó khỏi bộ nhớ heap Lưu ý: Để biết thêm thông tin, hãy tham khảo Bộ sưu tập rác trong Python For more information, refer to Garbage Collection in Python Đếm tham chiếuĐếm tham chiếu hoạt động bằng cách đếm số lần một đối tượng được tham chiếu bởi các đối tượng khác trong hệ thống. Khi các tham chiếu đến một đối tượng được xóa, số lượng tham chiếu cho một đối tượng bị giảm. Khi số lượng tham chiếu trở thành 0, đối tượng được giải quyết. Ví dụ: giả sử có hai hoặc nhiều biến có cùng một giá trị, vì vậy, máy ảo Python làm gì, thay vì tạo một đối tượng khác có cùng giá trị trong đống riêng tư, nó thực sự tạo ra biến thứ hai Giá trị hiện có trong đống riêng tư. Do đó, trong trường hợp của các lớp, có một số tài liệu tham khảo có thể chiếm một lượng lớn không gian trong bộ nhớ, trong trường hợp như vậy, việc đếm tính rất có lợi để bảo tồn bộ nhớ có sẵn cho các đối tượng khác Example: Khi Hãy để xác minh nếu nó đúng
x and y do not refer to the same object0 x and y do not refer to the same object1 = = x and y do not refer to the same object0 x and y do not refer to the same object5 x and y do not refer to the same object6 x and y do not refer to the same object7 x and y do not refer to the same object8 x and y do not refer to the same object9 x = 10 0Output: x and y refer to the same object Trong ví dụ trên, Bây giờ, hãy để thay đổi giá trị của X và xem điều gì sẽ xảy ra.
x and y do not refer to the same object0 x and y do not refer to the same object1 = = x and y do not refer to the same object0 x and y do not refer to the same object5 Trong ví dụ trên, x and y do not refer to the same object6 x and y do not refer to the same object7 x and y do not refer to the same object8 = 1x = 10 0Output: x and y do not refer to the same object Bây giờ, hãy để thay đổi giá trị của X và xem điều gì sẽ xảy ra. x x = 109____4 x 1
x and y do not refer to the same object0 x 4= x and y do not refer to the same object0 x and y do not refer to the same object5
Có hai phần của bộ nhớ:stack memory and all the values objects are stored in a private heap. ngăn xếp bộ nhớbộ nhớ đống Các phương thức/gọi phương thức và các tham chiếu được lưu trữ trong bộ nhớ ngăn xếp và tất cả các đối tượng giá trị được lưu trữ trong một đống riêng tư. Example: Công việc của bộ nhớ ngăn xếp Việc phân bổ xảy ra trên các khối bộ nhớ liền kề. Chúng tôi gọi nó là phân bổ bộ nhớ ngăn xếp vì phân bổ xảy ra trong ngăn xếp gọi hàm. Kích thước của bộ nhớ được phân bổ được biết đến với trình biên dịch và bất cứ khi nào một hàm được gọi, các biến của nó sẽ được phân bổ bộ nhớ trên ngăn xếp. Đó là bộ nhớ chỉ cần thiết bên trong một cuộc gọi chức năng hoặc phương thức cụ thể. Khi một hàm được gọi, nó được thêm vào ngăn xếp cuộc gọi của chương trình. Bất kỳ gán bộ nhớ cục bộ nào như khởi tạo biến bên trong các hàm cụ thể đều được lưu trữ tạm thời trên ngăn xếp gọi hàm, trong đó nó bị xóa khi hàm quay lại và ngăn xếp cuộc gọi chuyển sang tác vụ tiếp theo. Phân bổ này vào một khối bộ nhớ tiếp giáp được xử lý bởi trình biên dịch bằng cách sử dụng các thói quen được xác định trước và các nhà phát triển không cần phải lo lắng về nó.
x and y do not refer to the same object6=6= =8x and y do not refer to the same object6 10 0__ 10 2Example: Làm thế nào để Python giải phóng bộ nhớ?Như đã giải thích trước đó, Python xóa các đối tượng không còn được tham chiếu trong chương trình để giải phóng không gian bộ nhớ.Quá trình này trong đó Python giải phóng các khối bộ nhớ không còn được sử dụng được gọi là bộ sưu tập rác.deletes objects that are no longer referenced in the program to free up memory space. This process in which Python frees blocks of memory that are no longer used is called Garbage Collection.
Làm thế nào để Python lưu trữ dữ liệu trong bộ nhớ?Có thể lưu trữ trạng thái của một đối tượng Python dưới dạng luồng byte trực tiếp vào một tệp hoặc luồng bộ nhớ và truy xuất trạng thái ban đầu của nó.Quá trình này được gọi là tuần tự hóa và khử serialization.Thư viện được xây dựng của Python chứa các mô -đun khác nhau cho quá trình tuần tự hóa và giải phóng hóa.byte stream directly to a file, or memory stream and retrieve to its original state. This process is called serialization and de-serialization. Python's built in library contains various modules for serialization and deserialization process.
Python có quản lý bộ nhớ tự động không?Phân bổ bộ nhớ có thể được định nghĩa là phân bổ một khối không gian trong bộ nhớ máy tính cho một chương trình.Trong phương pháp phân bổ và phân bổ bộ nhớ Python là tự động vì các nhà phát triển Python đã tạo ra một trình thu thập rác cho Python để người dùng không phải thực hiện bộ sưu tập rác thủ công. |