An analysis of memory management in Python