Speed of Python

Carl Banks pavlovevidence at gmail.com
Fri Sep 7 20:58:33 EDT 2007


On Sep 7, 12:42 pm, "wang frank" <f... at hotmail.co.jp> wrote:
> Hi,
>
> While comparing the speed of octave and matlab, I decided to do a similar
> test for python and matlab. The result shows that python is slower than
> matlab by a factor of 5. It is not bad since octave is about 30 time slower
> than matlab.
>
> Here is the result in matlab:
> Elapsed time is 0.015389 seconds.
>
> and in Python:>>> t=timeit.Timer("bench1.bench1(10)","import bench1")
> >>> t.repeat(1,1)
>
> [0.071012377266015392]
>
> Here is the bench1.py:
> import math
> def bench1(n):
>         for i in range(n):
>                 for j in range(1000):
>                         m=j+1
>                         z=math.log(m)
>                         z1=math.log(m+1)
>                         z2=math.log(m+2)
>                         z3=math.log(m+3)
>                         z4=math.log(m+4)
>                         z5=math.log(m+5)
>                         z6=math.log(m+6)
>                         z7=math.log(m+7)
>                         z8=math.log(m+8)
>                         z9=math.log(m+9)
>         return z9
>
> Is my conclusion correct that Python is slower than matlab?


Whoa, there, chief, that's a pretty lofty conclusion to make based on
one benchmark.

A blanket speed comparison between Matlab and Python isn't productive:
they each have their own strengths speedwise.

(Conversely, a blanket comparison is productive programmingwise.
Matlab has almost no strengths relative to Python in that department.
But that's another question entirely. :)

Roughly speaking, I'd say your average single-pass calculation script
is going to be faster in Matlab than in Python.  However, Python (with
help from numpy) has more opportunities for optimization, especially
if you're using large matrices.  And if you need to take it up a
notch, Python has very good ways to integrate numerical C and Fortran
code.


> Are there any
> way to speed it up? It seems Python automatically created bench1.pyc. Does
> Python automatically execute the bench1.pyc to speed it up?

Yes, as others have explained.


Carl Banks




More information about the Python-list mailing list