Разделяется ли память между StringIO, если я это сделаю? У меня такое ощущение, что память процесса python не увеличилась в строке 6.
In [1]: from StringIO import StringIO
In [2]: s = StringIO()
In [3]: s.write('abcd'*10000000) # memory increases
In [4]: s.tell()
Out[4]: 40000000
In [5]: s.seek(0)
In [6]: a = StringIO(s.read()) # memory DOES NOT increase
In [7]: a.tell()
Out[7]: 0
In [8]: a.read(10)
Out[8]: 'abcdabcdab'
Однако меня беспокоит то, что когда я удаляю эти 2 переменные, потребление памяти процессом python больше не уменьшается... почему? Создает ли этот код утечку памяти?
Когда я просто использовал одну переменную, память хорошо освобождается, когда я удаляю переменную.
Мне было бы любопытно лучше понять, что здесь происходит. Спасибо.