[pypy-dev] Freelist in PyPy? Reuse short lived objects?

PIERRE AUGIER pierre.augier at univ-grenoble-alpes.fr
Thu Jan 21 08:42:32 EST 2021


----- Mail original -----
> De: "Carl Friedrich Bolz-Tereick" <cfbolz at gmx.de>
> À: "pypy-dev" <pypy-dev at python.org>, "PIERRE AUGIER" <pierre.augier at univ-grenoble-alpes.fr>, "pypy-dev"
> <pypy-dev at python.org>
> Envoyé: Mercredi 20 Janvier 2021 12:33:43
> Objet: Re: [pypy-dev] Freelist in PyPy? Reuse short lived objects?

> On 15.01.21 07:44, Carl Friedrich Bolz-Tereick wrote:
>> This is not ready at all and I don't have enough time to work on it at
>> the moment, *however*: I have a small prototype (on the branch
>> map-improvements) that changes the instance layout in PyPy to store
>> type-stable instances with several fields that contain ints or floats
>> much more efficiently. It seems to give a 50% speedup on your micro
>> benchmark, so that's promising. There's still a bug somewhere and it
>> needs very careful investigation whether it costs too much on
>> non-numerical programs, but potentially this is a good improvement.
> 
> Seems to be even more like a 90% improvement on your microbench (from
> 13.0 to 7.0). I also fixed the bug. Some more work is needed, but it
> looks relatively promising at this point.

Yes, it looks really promising! It could bring the pure Python implementation much closer to the C and Fortran implementations used for the benchmark in the Nature Astro paper (Zwart, 2020).

Note that I'm doing some power usage measurements with serious hardware so I'll soon be able to reproduce and extend the figure shown here: https://github.com/paugier/nbabel. It means that I will soon have everything to propose a serious reply to Zwart (2020).

To try your version, I guess I need to compile PyPy? And I also guess that it's only for PyPy2 first?

Pierre



More information about the pypy-dev mailing list