Hej.

Jeg fandt lige dette link: http://polishlinux.org/apps/cli/comparison-of-python-virtual-machines/

Det er sørme' spændende sager at læse. Jeg synes at kunne læse at de mere eksotiske udgaver præges af manglende momentum. PyPy lyder dog ret interessant.

Når det gælder optimering af python kode, så kan man vel hurtigt lave lidt C extensions eller bruge psycho? Hvad har I erfaring med?

/Michael

#1 Rene Nejsum

Jeg tror at de hurtigste Python implementationer bliver Jython og IronPython, da der bliver gjort rigtig meget for at optimere de virtuelle maskiner bag dem.

Microsoft har formodentlig forholdsvis mange udviklere på optimering af deres CLR og Sun bruger nok stadig en mængde energi på JVM. Selvom det teoretisk er muligt at optimere CPython mere, så tror jeg ikke der bliver brugt de samme resurser på det.

Lige nu er IronPython formodentlig den hurtigste implementation af Python derude?

/Rene

  • 0
  • 0
#2 Død Profil

Jeg synes som regel jeg er låst til CPython.

I praksis bruger jeg for mange moduler (NumPy, SciPy) som kræver C-optimeret kode, der ikke virker på de "eksotiske" VM'er.

Selv standard frameworks som Django virkede ikke lige out-of-the-box på f.eks. Jython.

(psycho er nu en del af PyPy af hvad jeg lige har forstået?)

Mvh, Søren

  • 0
  • 0
#3 Bjarke Walling

Jeg tror den hurtigste er RPython (Restricted Python), en del af PyPy, da det kan oversættes til binær kode ligesom C kan. Men det er ikke uden grund det hedder restricted. Du kan ikke meget mere end hvad du kan i C. Dog har den type inference.

En anden interessant detalje ved PyPy er hvis man compilerer deres fortolker i "sandboxed mode". Her går al kommunikation igennem pipes, så man kan styre præcis hvad ens Python-kode skal have adgang til.

For hurtig udvikling af C-extensions er det værd at kigge på ctypes. Det er et modul i Python, der gør det muligt at indlæse en .dll/.so-fil og binde til funktioner, som man så kan kalde. Hurtigt og nemt. Modulet er inkluderet i CPython 2.5 og PyPy. Se eksempler her: http://www.python.org/doc/2.5.2/lib/ctypes-loading-dynamic-link-librarie...

  • 0
  • 0

Nu har Google taget fat om Python (Guido arbejder der jo også …) og de sigter mod en hastighedsforøgelse på 5 gange CPythons i år. De arbejder med version 2.6.1. Projektet hedder "Unladen Swallow" http://code.google.com/p/unladen-swallow/wiki/ProjectPlan. "Unladen Swallow" kører allerede YouTube for Google.

En podcast, der hjalp mig med at forstå de forskellige distributioner, ligger på http://cdn2.libsyn.com/awaretek/Python411_070421_HowPythonRuns.mp3 (se hele listen over de udmærkede Python411 podcasts på http://www.awaretek.com/python/index.html.

  • 0
  • 0