Speed Comparison Perl Python & C

Josiah Carlson jcarlson at nospam.uci.edu
Mon Mar 1 16:32:55 EST 2004


> i = 1
> j = 0
> while i < 100000000:
>    j = j + i
>    i = i + 1
> print j
> 
> Python   93.4
> Fortran   0.28

Not quite fair.  The Python version does long-integer 
(infinite-precision) math when i is greater than 65534 on a 32 bit 
processor.  You are really counting is the time to do 100,065,535 
integer additions and 99934465 long-integer additions.

Furthermore, you allow fortran to optimize the loop, but you don't 
optimize the python loop yourself, using those portions built-in that 
are known to be fast.

print sum(xrange(100000000))
takes half-as long as the while loop on my machine, yet does the exact 
same calculations.


Your Fortran definition includs a message saying "use 64-bit integers here":
integer*8 :: i,j


You are comparing apples to oranges on multiple levels.  Don't.

  - Josiah



More information about the Python-list mailing list