[issue13483] Use VirtualAlloc to allocate memory arenas

STINNER Victor report at bugs.python.org
Sat Jun 1 01:29:07 CEST 2013


STINNER Victor added the comment:

I tested VirtualAlloc/VirtualFree versus malloc/free on Windows 7 SP1 64-bit. On my small test, when using VirtualAlloc/VirtualFree, the memory peak is lower (ex: 58.1 MB vs 59.0), and the memory usage is the same or sometimes lower. The difference is small, malloc() implementation on Windows 7 is efficient! But I am in favor of using VirtualAlloc/VirtualFree because it is the native API and the gain may be bigger on a real application.

--

I used the following script for my test:
https://bitbucket.org/haypo/misc/raw/98eb42a3ed2144141d62c75e3d07933839fe2a0c/python/python_memleak.py

I reused get_process_mem_info() code from psutil to get current and peak memory usage (I failed to install psutil, I don't understand why).

I also replace func() of my script with tuples.py to create many tuples.

--

Python < 3.3 wastes a lot of memory with python_memleak.py. Python 3.3 behaves much better thanks to the usage of mmap() on Linux, and the fixed threshold on 64-bit (min=512 bytes, instead of 256).

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue13483>
_______________________________________


More information about the Python-bugs-list mailing list