Python recuperando memória após excluir itens em um dicionário

Eu tenho um dicionário relativamente grande em Python e gostaria de poder não apenas excluir itens dele, mas, na verdade,recuperar a memória de volta dessas exclusões no meu programa. Estou enfrentando um problema pelo qual, embora eu exclua itens do dicionário e até execute o coletor de lixo manualmente, o Python não parece estar liberando a própria memória.

Um exemplo simples disso:

>>> tupdict = {}
# consumes around 2 GB of memory
>>> for i in xrange(12500000):
...   tupdict[i] = (i,i)
... 
# delete over half the entries, no drop in consumed memory
>>> for i in xrange(7500000):
...   del tupdict[i]
... 
>>> import gc
# manually garbage collect, still no drop in consumed memory after this
>>> gc.collect()
0
>>> 

Imagino o que está acontecendo é que, embora as entradas sejam excluídas e o coletor de lixo seja executado, o Python não avança e redimensiona o dicionário. Minha pergunta é: existe alguma maneira simples de contornar isso ou é provável que exija uma revisão mais séria sobre como eu escrevo meu programa?

questionAnswers(2)

yourAnswerToTheQuestion