On Sat, Sep 26, 2020 at 2:19 AM Marco Sulla Marco.Sulla.Python@gmail.com wrote:
That I hope it's not the place where this proposal will be sent.
My idea is apparently simple: what if, anytime we create an object, instead of deleting it, we send it in a trash bin? If the object is, for some reason, recreated, we can take it from the trash bin. If there is no more memory, the trash bin will be empty.
The problem is that, probably, args and kwargs used by object creation must be stored. Maybe also copied? This could slow down the object creation instead of speed it up? Could this be done by a separate thread?
This is actually the way certain objects ARE handled, but since memory is allocated in chunks (not all objects are the same size), there are in fact several "trash bins". They're called "free lists" and you can explore the CPython source code if you're curious about how they work!
For info on free lists in general, Wikipedia might be of value: https://en.wikipedia.org/wiki/Free_list