Home > database >  Memory behaivor of Python
Memory behaivor of Python

Time:10-16

I have a list which will get really big. So I will save the List on my HDD and continue with an empty list. My question is: when I do myList[] will the old data be deleted or will it remain somewhere on the Ram. I fear, that the pointer of myList will just point somewhere else and and the old data will not be toched.

myList = []
for i in range(bigNumber1)
    for k in range(bigNumber2)
        myList.append( bigData(i,k) )
    savemat("data" str(i), "data":{myList})
    myList = []

CodePudding user response:

Good day.

In python and many other programming languages, object pointers that reference an unused object will be collected by the garbage collector, a feature that looks for these objects and clears them from memory. How this is done exactly under the hook, can be read about in more detail here:

https://stackify.com/python-garbage-collection/

Happy codings!

CodePudding user response:

Python uses Garbage Collection for memory management (read more here).

The garbage collector attempts to reclaim memory which was allocated by the program, but is no longer referenced—also called garbage.

So your data will automatically be deleted. However, if you want to sure that the memory is free at a particular point, you can call the GC directly with

import gc
gc.collect()

This is not recommended though.

  • Related