loop in python
Peter Hansen
peter at engcorp.com
Mon Aug 22 12:23:32 EDT 2005
km wrote:
> ya i am sorry i tried with an empty loop first and then one which
> emits a value as the snippet. I have tested it on my machine
> and now ...
>
> what more do i need to accept python is slow when it comes to
> loops concept ?
You've sort of missed some of the points being made, which in essence
are saying "your benchmark is less than useless, and you're confused
about what matters".
One key point about benchmarking is to make the test representative. If
you are going to be running empty loops, then you're doing the right
thing. If *all* your loops are going to do is print stuff, then you're
doing the right thing with the version that "emits values".
On the other hand, if you are really doing something else entirely, then
your tests are telling you nothing about your real problem, and are in
fact confusing you greatly, which is why they are less than useless.
With the part about "confused about what matters" I mean that you are
trying to optimize something a) when you don't have working code, and b)
when you don't know that you need to make it any faster.
The first rule of optimization is to make your code work first, and only
then consider making it fast. The second rule of optimization is that
you shouldn't waste time doing it unless you really need faster results
(and it requires actual elapsed time or response time measurements to
know this). Since you haven't got any working code, it's not possible
that you *need* whatever negligible speed difference there might be
between Python and Perl.
And, lastly, in case this thought didn't get through either: Python is
*not* significantly slower than Perl except in certain uncommon cases --
perhaps including useless empty loops -- so if you really want to use
Python, don't let your first attempts at benchmarking dissuade you.
Really, trust us.
Python's strengths lie in four things: the readability of the code, the
huge range of library modules available, the elegance of its object
oriented constructs, and the helpfulness of its community. Raw speed is
not one of its strengths, but there are tens of thousands of people
using it quite effectively and without daily concern for its speed (same
as Perl, by the way since, again, they are _not_ significantly different
in speed no matter what an empty loop test shows).
-Peter
More information about the Python-list
mailing list