Asked By – Nathan Fellman
I wrote a Python program that acts on a large input file to create a few million objects representing triangles. The algorithm is:
- read an input file
- process the file and create a list of triangles, represented by their vertices
- output the vertices in the OFF format: a list of vertices followed by a list of triangles. The triangles are represented by indices into the list of vertices
The requirement of OFF that I print out the complete list of vertices before I print out the triangles means that I have to hold the list of triangles in memory before I write the output to file. In the meanwhile I’m getting memory errors because of the sizes of the lists.
What is the best way to tell Python that I no longer need some of the data, and it can be freed?
Now we will see solution for issue: How can I explicitly free memory in Python?
According to Python Official Documentation, you can explicitly invoke the Garbage Collector to release unreferenced memory with
import gc gc.collect()
You should do that after marking what you want to discard using
del my_array del my_object gc.collect()