On Dec 7, 3:08 pm, "Joe Goldthwaite" <[EMAIL PROTECTED]> wrote: > Here's the simple benchmark; > > start = time.time() > for x in xrange(3): > for y in xrange(10000000): > pass > print 'xRange %s' % (time.time() - start) > > start = time.time() > for x in range(3): > for y in range(10000000): > pass > print 'Range %s' % (time.time() - start) > > Here's what I get; > > xRange 92.5529999733 > Range 95.2669999599 > > Not a lot of difference. Range is slower but not by much. I know that range > builds > a list then iterates through it. I thought that xrange just kept a counter > that was > incremented and returned with each call. No list was ever created. If that's > true > (and I guess it's not), xrange would be much faster than range. It seems > almost > identical. Given the amount of performance difference, I don't see why > xrange even > exists.
Try tracking your memory usage during the benchmark and it will become very clear why xrange exists. > > P.S. I searched google again to try and find out more about range vs. > xrange and > this thread came up first on the list. That was strange. I thought I'd > found > someone else asking the same question as me until I clicked on the link and > found > out it actually was me. > > > > -----Original Message----- > From: [EMAIL PROTECTED] > > [mailto:[EMAIL PROTECTED] Behalf Of > Bjoern Schliessmann > Sent: Thursday, December 06, 2007 3:33 PM > To: [EMAIL PROTECTED] > Subject: Re: I'm missing something here with range vs. xrange > > Joe Goldthwaite wrote: > > I read that the range function builds a list and that xrange > > returns an iterator and is therefore more efficient. > > This is generally not true. > > > In my testing, they both come out to almost exactly the same > > performance wise. Did something get changed in Python 2.4 to make > > them identical? > > No. Try again with a list of length 10000000. > > Regards, > > Björn > > -- > BOFH excuse #359: > > YOU HAVE AN I/O ERROR -> Incompetent Operator error > > --http://mail.python.org/mailman/listinfo/python-list- Hide quoted text - > > - Show quoted text - -- http://mail.python.org/mailman/listinfo/python-list