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.

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to