VM Python

Un article de Haypo.

(Différences entre les versions)
Version du 17 juillet 2012 à 21:32 (modifier)
Haypo (Discuter | Contributions)
(pseudo-Python)
← Différence précédente
Version du 17 juillet 2012 à 21:32 (modifier) (défaire)
Haypo (Discuter | Contributions)
(VM)
Différence suivante →
Ligne 13 : Ligne 13 :
* [http://ironpython.com/ IronPython] : Dans une plateforme .NET avec intégration du ''Common Language Runtime'' (CLR) * [http://ironpython.com/ IronPython] : Dans une plateforme .NET avec intégration du ''Common Language Runtime'' (CLR)
* [http://www.stackless.com/ Stackless Python] * [http://www.stackless.com/ Stackless Python]
-* [http://code.google.com/p/hotpy/ Hotpy] et [https://bitbucket.org/markshannon/hotpy_2 Hotpy 2]+* [http://code.google.com/p/hotpy/ Hotpy] et [https://bitbucket.org/markshannon/hotpy_2 Hotpy 2]: built using the [http://code.google.com/p/gvmt/ GVMT] (The Glasgow Virtual Machine Toolkit)
== JIT == == JIT ==

Version du 17 juillet 2012 à 21:32

Retour à la page précédente Retour à Python

Python est un langage. On peut compiler du Python pour donner du code machine i386, mais on peut aussi en faire du bytecode Java, ou plus couramment du bytecode pour la machine virtuelle CPython (l'interpréteur le plus connu).

Sommaire

VM

Voici donc une liste de machines virtuelles permettant d'exécuter du Python :

  • pypy : Implémentation de Python codée en Python qui se veut aussi rapide que l'implémentation en C, voir même plus en utilisant une analyse dynamique du code ...
  • Jython : Exécution dans une Java Virtual Machine (JVM, voir Java). Voir aussi le projet Jpype qui permet d'utiliser du Java dans Python.
  • IronPython : Dans une plateforme .NET avec intégration du Common Language Runtime (CLR)
  • Stackless Python
  • Hotpy et Hotpy 2: built using the GVMT (The Glasgow Virtual Machine Toolkit)

JIT

Voir aussi :

  • Parrot : Machine virtuelle en développement qui sera utilisée pour exécuter du Perl6 ou Python

Compiler un sous-ensemble de Python en C ou C++

pseudo-Python

  • Copperhead : Python vers GPU (Nvidia)
  • numexpr : "The numexpr package evaluates multiple-operator array expressions many times faster than NumPy can."

Compiler Python en un binaire (Windows / Unix)

Il est possible de compiler un script Python pour produire un programme binaire.

  • Créer un binaire Windows (PE)
  • Créer un binaire Unix (ELF)
    • freeze.py : Inclut dans Python apparement (?)

Autres

Optimiser Python

Outils ou articles traitant de l'optimisation de Python :

  • pyrex : Compilateur permettant de mélanger du code C et du code Python si j'ai bien compris (?)
  • psyco : Module C (pour architecture i386) qui fonctionne comme un compilateur JIT (Just In Time : compile durant l'exécution du programme). Apparement, l'empreinte mémoire est assez grosse dans la version actuelle mais les performances sont bonnes sans avoir à retoucher à son programme Python.
  • PyInline permet d'ajouter du code source dans un autre langage directement dans un programme C, et de manière transparente.
  • list2str : Petit histoire sur l'optimisation (en Python uniquement) d'une fonction très simple expliquant pourquoi ça va plus vite d'une version à l'autre de la fonction.
  • py2cmod : Outil permettant de convertir un module Python en code C, ce qui permet de créer des versions plus performante
  • weave : outil permettant d'inclure du code C/C++ dans du code Python

Articles connexes