Perl code 37 times quickly than Python code??

Wesley J. Chun wesc at deirdre.org
Wed Jan 16 00:08:46 CET 2002


gaya at infomail.lacaixa.es (Toni Gaya) wrote in message news:<61f6bfa8.0201151153.1cd018ae at posting.google.com>...
> > python
> > ------
> > def Ramp(result, size, start, end):
> >     step = (end-start)/(size-1)
> >     for i in xrange(size):
> >         result[i] = start + step*i
> > 
> > def main():
> >     array = [0]*10000
> >     for i in xrange(100):
> >         Ramp(array, 10000, 0.0, 1.0)
> > 
> > main()
> 
> perl
> ----
> sub Ramp {
> 	local (*result, $size, $start, $end) = @_;
>     $step = ($end-$start)/($size-1);
>     for ($i=0; $i<$size; $i++)
> 	{
>         $result[$i] = $start + $step*$i;
> 	}
> }
> 
> sub main {
> 	for ($i = 0 ; $i < 10000 ; $i++) {
> 		push(@array, 0);
> 	}
> 	for ($i=0; $i<100; $i++) {
>         do Ramp(*array, 10000, 0.0, 1.0);
> 	}
> }
> 
> do main();
> 
> 
> Results in a PII 233 Mhz:
> [root at localhost source]# time python array.py
> 5.18user 0.00system 0:05.19elapsed 99%CPU (0avgtext+0avgdata
> 0maxresident)k
> 0inputs+0outputs (253major+153minor)pagefaults 0swaps
> 
> [root at localhost source]# time perl array.pl
> 0.14user 0.00system 0:00.14elapsed 98%CPU (0avgtext+0avgdata
> 0maxresident)k
> 0inputs+0outputs (261major+186minor)pagefaults 0swaps
> 
> I suppose two programs generate same result, is not?. I like Python,
> but Python program execution is 37 times long that Perl program. What
> is WRONG??


do you get the same results if you use range() instead of xrange()?
the reason why i ask is because the comparison is unequal.  xrange()
is much slower than range() because of its tendency towards memory-
friendliness in tighter environments.

-wesley

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

"Core Python Programming", Prentice Hall PTR, © 2001
    http://starship.python.net/crew/wesc/cpp/

wesley.j.chun :: wesc at deirdre.org
cyberweb.consulting : henderson, nv : cyberweb at rocketmail.com
http://www.roadkill.com/~wesc/cyberweb/



More information about the Python-list mailing list