- Trending Categories
- Data Structure
- Operating System
- MS Excel
- C Programming
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Memory Management in Python
Writing a memory-efficient and a code that executes quickly is what every developer wants while working on any programming language. In Python, memory allocation and deallocation is not manual, since Python has a Garbage Collector.
Now, what is a Garbage Collector.
Garbage Collection is how the memory is freed when not use and how it can be made available for other objects. Python deletes the objects that are no longer in use. This is what we call Garbage Collection. The garbage collector initiates its execution with the program and is activated if the reference count drops to zero.
Python's garbage collector runs during program execution and is triggered when an object's reference count reaches zero. An object's reference count changes as the number of aliases that point to it changes.
Let us now see how memory is allocated in Python −
Static Memory Allocation – Stack
In static memory allocation, the memory is allocated at the compile time. The Stack data structure stores the static memory.
A quick example where the memory allocates on stack −
static int x=2;
Dynamic Memory Allocation – Heap
In dynamic memory allocation, the memory is allocated at the run time. The Heap stores the dynamic memory. It frees up the memory space if the object is no longer needed.
A quick example where the memory allocates on heap for 2 integers −
x = *2
As we discussed above, the garbage collector initiates its execution with the program and is activated if the reference count drops to zero. Let’s see what is a reference count.
The Python garbage collector initiates its execution with the program and is activated if the reference count drops to zero. Let us see when the reference count increase or decreases
The reference count value increase when −
When a new name is assigned or in a dictionary or tuple, the reference count increases its value.
If we reassign the reference to an object, the reference counts decrease its value.
The reference count value decreases when −
- The value decreases when the object's reference goes out of scope.
- The value decreases when an object is deleted.
Therefore, reference counting is actually how many times other objects reference an object. With that, The de-allocation occurs when the reference count drops to zero.
Kickstart Your Career
Get certified by completing the courseGet Started