如果我这样做,是否在 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'
但是我担心的是,当我删除这两个变量时,python 进程的内存消耗不再减少......为什么?此代码是否会造成内存泄漏?
当我只使用一个变量时,当我删除该变量时,内存得到了很好的释放。
我很想更好地了解这里发生了什么。谢谢。