Just wondering

norseman norseman at hughes.net
Fri May 15 17:17:36 EDT 2009


Gediminas Kregzde wrote:
> 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 for about 5 times, when using huge amounts of data.
> It is needed to perform some operations, not to return data.
> 
> I'm adding sample code:
> from time import time
> 
> 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
>    print "loop time: " + str(time() - t)
> 
> main()  # takes approximately 5x times longer than main2()
> main2()
> 
> I'm wondering were is catch?
> 
> I'm using python 2.6 on windows xp sp2 machine
> 
> P.S. Sorry for my broken English
===============================

cut n paste done


Using Laptop at 2.4 GHz
map time:  4.9281001091               map/loop = 5.7554...
loop time: 0.856245994568

Using Desktop at 3.1 GHz
map time: 3.46799993515               map/loop = 7.6556...
loop time: 0.453000068665


Yep - map is way slower

Your English is good enough for me to understand. What more is needed?
:)

Someone writing Python can probably say why.

Steve




More information about the Python-list mailing list