Just wondering

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


Marco Mariani wrote:
> Gediminas Kregzde wrote:
> 
> 
>> def doit(i):
>>    pass
>>
>> def main():
>>    a = [0] * 10000000
>>    t = time()
>>    map(doit, a)
>>    print "map time: " + str(time() - t)
> 
> Here you are calling a function ten million times, build a list with of 
> ten million None results, then throw it away.
> 
> 
>> def main2():
>>    t = time()
>>    a = [0] * 10000000
>>    for i in a:
>>        pass
>>    print "loop time: " + str(time() - t)
> 
> Here you do nothing but iterating 'i' over the 'a' list.
> 
> 
>> main()  # takes approximately 5x times longer than main2()
>> main2()
>>
>> I'm wondering were is catch?
> 
> Function calls are not free in python. They cost a lot more than they do 
> in C, Delphi or other languages.
> 

Gediminas - You did a good job of testing the overhead.  All good 
programmers do that!

Steve



More information about the Python-list mailing list