Duncan Booth <duncan.bo...@invalid.invalid> wrote:

> John Posner <jjpos...@snet.net> wrote:
> 
>> Do know what in the itertools implementation causes adding a 'if p <=
>> sqrt(n)' clause to *decrease* performance, while adding a
>> 'takewhile()' clause *increases* performance? 
> 
> I haven't timed it, but I would guess that the takewhile was faster 
> only because the sqrt(n) had been factored out of the loop. Try the 
> original loop again precalculating the sqrt(n) and see how that compares.
> 
Which of course is rubbish, extracting the sdqrt will have an effect but 
the main factor is that takewhile exits the loop as soon as the condition 
is false whereas a conditional in a generator comprehension doesn't stop 
the loop continuing to the end.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to