Just wondering

Bruno Desthuilliers bruno.42.desthuilliers at websiteburo.invalid
Fri May 15 08:58:08 EDT 2009


Gediminas Kregzde a écrit :
> Hello,
> 
> I'm Vilnius college II degree student and last semester our teacher
> introduced us to python
> I've used to program with Delphi, so I very fast adopted to python
> 
> Now I'm developing cross platform program and use huge amounts of
> data. Program is needed to run as fast as it coud. I've read all tips
> about geting performance, but got 1 bug: map function is slower than
> for loop 

Why should it be a bug ?

> for about 5 times,

read below for comments on your benchmark.

> when using huge amounts of data.
> It is needed to perform some operations, not to return data.

Then don't use map. You're uselessly building a new list (which takes 
time *and* eats RAM - so on 'huge' dataset, this might even make your 
system start swapping).



> I'm adding sample code:
> from time import time

The correct way to time code is to use the timeit module.

> def doit(i):
>    pass
> 
> def main():
>    a = [0] * 10000000
>    t = time()
>    map(doit, a)
>    print "map time: " + str(time() - t)
> 
> def main2():
>    t = time()
>    a = [0] * 10000000
>    for i in a:
>        pass

Your benchmark is screwed. In the first case, you call doit() X times 
(with X = len(a)), while in the second case you don't call it at all.




More information about the Python-list mailing list