"Andrew Kuchling" <akuchlin at mems-exchange.org> wrote in message news:3dpudzu4ij.fsf at ute.cnri.reston.va.us... > javalist <javalist at 21cn.com> writes: > > also the interpreter has 20M in memory,but seems python knows they are > > pointing nothing and reuse these 20M when I try again allocating more > > object in python,it didn't increase memory until the first 20M is > > occupied by the new allocated object > > This is also dependent on your platform's malloc. The malloc used on > Linux, for example, uses mmap() for allocations above a given size, > and on freeing an mmap()'ed area, the process size drops. For > example, I just tried creating a 20Mb string, watched the process size > jumped appropriately, then deleted it and watched the process go back > to around 2Mb. I just tried and confirmed Python 2.0 works this way on Windows NT, too. As you say, it does depend on the platform library. > 20Mb of smaller objects probably won't have this > pleasant predictability. I'm not sure how enabling pymalloc would > change this picture. On NT, >>> x=[str(i) for i in range(100000)] makes python.exe's VM Size stat in the Task Manager jump up to over 7000K, and a "del x" now makes it jump back down to 2200K (was below 1000K before). Repeating this a few time confirms identical numbers (nothing's being leaked here). Alex
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4