On 9/10/07, Guido van Rossum <[EMAIL PROTECTED]> wrote:
> On 9/9/07, Nicholas Bastin <[EMAIL PROTECTED]> wrote:
> > On 9/9/07, Guido van Rossum <[EMAIL PROTECTED]> wrote:
> > > On 9/9/07, Nicholas Bastin <[EMAIL PROTECTED]> wrote:
> > > > I'm not suggesting that Python handle small ints itself  and then farm
> > > > out large integer computations, I'm suggesting that since we've
> > > > already coalesced small ints into 'large' ones, we might want to
> > > > review the performance implications of that decision, and possibly
> > > > consider that other people have already solved this problem.  Clearly
> > > > GMP appears to fail on a technical level, but there might be other
> > > > options worth investigating.
> > >
> > > The performance problems that are affecting us most are for
> > > small-value ints. The old PyInt type has many custom optimizations to
> > > help. I think we could do worse than re-introducing some of the same
> > > tricks, retargeted to PyLong (which never got much attention for
> > > small-value performance).
> >
> > I did redo my benchmark using 200 as the increment number instead of
> > 1, to duck any impact from the interning of small value ints in 2.6,
> > and it made no discernible difference in the results.
>
> I'm sorry, I've lost context. I'm not at all clear at this point what
> benchmark you might have ran.

I posted a tiny snippet of code earlier in the thread that was a
sortof silly benchmark of integer math operations.

> Note that when I said "small values" I meant (in part) anything that
> fits in a Python long -- while there's a special cache in 2.x for ints
> < 100, there's also a special allocator that outperforms the obmalloc
> allocator.

Yeah, my point was mostly an aside to anyone that might have
questioned my earlier results of a 2.3x slowdown on integer-sized
values because I used 1.  A quick switch to 200 netted the exact same
results, and a more extensive refactoring to get the same number of
operations on a random set of larger numbers netted the same result as
well.

--
Nick
_______________________________________________
Python-3000 mailing list
Python-3000@python.org
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe: 
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com

Reply via email to