[pypy-dev] BList strategy

Armin Rigo arigo at tunes.org
Fri May 6 12:36:14 EDT 2016


Hi Omer,

On 6 May 2016 at 11:04, Omer Katz <omer.drow at gmail.com> wrote:
> I agree that we can certainly benefit from using blists in large enough
> lists. How much is large enough? We'll probably need to benchmark right?
>
> Are there any JIT paths for blist operations?

Do you mean "would we need to add specific JIT support for blists"?
No, unlikely.

> Will blists run faster because of the JIT or just because the rest of the
> runtime is more efficient?

I think you're talking about my sentence "it would hardly be a noticable
overhead with the rest of the CPython interpreter around.", is that
correct?  If that's correct, then I'm saying that our JIT usually
turns a Python line like "x = somelist[index]" into a single
load-from-memory CPU instruction, plus the check that "index" is not
out of bounds.  I'm saying that blists will most likely need more than
a single CPU instruction here.  So, at least in microbenchmarks,
blists could easily be several times slower than regular lists, after
the JIT has removed everything around it.


A bientôt,

Armin.


More information about the pypy-dev mailing list