Grant Edwards wrote: > Assuming the python interpreter free()s the memory, my > understanding is that on Unixes the memory is returned to the > pool used by malloc(), but is not returned to the OS since > there isn't a practical way to ensure that the memory at the > "end" of the data segment is not used.
http://www.dent.med.uni-muenchen.de/~wmglo/malloc-slides.html > Large chunks are allocated via mmap(). The threshold is set > through the environment variable MALLOC_MMAP_THRESHOLD_. > The maximum number of chunks allocated in this way is limited > through MALLOC_MMAP_MAX_. I think these large chunks are returned to the OS when freed. > Trimming occurs when the size of the top chunk exceeds > MALLOC_TRIM_THRESHOLD_. I think this means that memory for small chunks is returned to the OS if the free space at the top of the heap exceeds the threshold. > Asking on the gnu libc mailing list would probably provide a > more authoritative answer. I'd wager that they even know what > other non-Gnu libc implementations do. Agreed, they would be authoritative for GNU libc. Charles -- http://mail.python.org/mailman/listinfo/python-list