Hey Antoine,

On Thu, Jan 21, 2010 at 4:25 AM, Antoine Pitrou <solip...@pitrou.net> wrote:
>> The increased memory usage comes from a) LLVM code generation, analysis
>> and optimization libraries; b) native code; c) memory usage issues or
>> leaks in LLVM; d) data structures needed to optimize and generate
>> machine code; e) as-yet uncategorized other sources.
>
> Does the increase in memory occupation disappear when the JIT is disabled
> from the command-line?

It does not disappear, but it is significantly reduced. Running our
django benchmark against three different configurations gives me these
max memory usage numbers:

CPython 2.6.4: 8508 kb
Unladen Swallow default: 26768 kb
Unladen Swallow -j never: 15144 kb

"-j never" is Unladen Swallow's flag to disable JIT compilation.

As it stands right now, -j never gives a 1.76x reduction in memory
usage, but is still 1.77x larger than CPython. It occurs to me that
we're still doing a lot of LLVM-side initialization and setup that we
don't need to do under -j never. We're also collecting runtime
feedback in the eval loop, which is yet more memory usage. Optimizing
this mode has not yet been a priority for us, but it seems to be the
emerging consensus of python-dev that we need to give -j never some
more love. There's a lot of low-hanging fruit there.

I've added this information to
http://code.google.com/p/unladen-swallow/issues/detail?id=123, which
is our issue tracking -j never improvements.

> Do you think LLVM might suffer from a lot of memory leaks?

I don't know that it suffers from a lot of memory leaks, though we
have certainly observed and fixed quadratic memory usage in some of
the optimization passes. We've fixed all the memory leaks that
Google's internal heapchecker has found.

Thanks,
Collin Winter
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to