OVH Cloud OVH Cloud

psyco?

7 réponses
Avatar
Andréï
Salut,
j'ai lu qu'il existait un compilateur JIT (psyco)pour python qui
améliorait les performances de 2 à 4 fois.
Est-ce que l'un de vous l'aurait essayer?
Est-ce le cas pour tous les prog? (par ex. avec Karrigel le serveur web)
Est-ce fiable?
A+

7 réponses

Avatar
Do Re Mi chel La Si Do
Bonjour !

Psycho n'est pas vraiment un compilateur (même JIT) ; il s'agirait plutôt
d'une librairie spécialisée dans l'accélération de quelques aspects de
Python.

Je l'ai essayé.

Résultats :
- ça accélère, un peu, les choses. En gros 10 % à 20 %, d'après mes
tests.
- Le gain n'a lieu que s'il y a beaucoup d'appel (de fonctions). Sur des
scripts "main" on ne gagne rien.
- J'ai eu quelques déboires, notamment en multi-threading et
programmation des sockets. Mais cela s'est bien amélioré, dans les dernières
versions.
- La facilité de mise en oeuvre est telle que l'on n'a même pas à
vérifier si c'est installé, sur les postes utilisateurs. Il suffit d'un bout
de code, du genre :
try:
import psyco
psyco.full()
except:
pass


@-salutations

Michel Claveau
Avatar
Andréï
Do Re Mi chel La Si Do wrote:
Résultats :
- ça accélère, un peu, les choses. En gros 10 % à 20 %, d'après mes
tests.


Ce son de cloche m'as l'air plus réaliste que sur le site. car j'ai pris
les chiffres les plus bas (2x à 4x) mais eux ils disaient obtenir
jusqu'a 10x à 100x plus rapide sur certains codes optimisés pour psyco.

merci

Avatar
Yermat
Andréï wrote:
Do Re Mi chel La Si Do wrote:

Résultats :
- ça accélère, un peu, les choses. En gros 10 % à 20 %, d'après
mes tests.



Ce son de cloche m'as l'air plus réaliste que sur le site. car j'ai pris
les chiffres les plus bas (2x à 4x) mais eux ils disaient obtenir
jusqu'a 10x à 100x plus rapide sur certains codes optimisés pour psyco.


Ben tout dépend de ton programme... Pour le calcul numérique, il est
très fort... Si ton programme fait beaucoup d'entrée/sortie cela limite
la vitesse possible.
J'ai un programme dont le temps d'éxécution a été divisé par au moins 2
voire 4 selon les données rentrées...

Bref essaies et tu verras.

--
Yermat


Avatar
William Dode
On 30-09-2005, Andréï wrote:
Salut,
j'ai lu qu'il existait un compilateur JIT (psyco)pour python qui
améliorait les performances de 2 à 4 fois.
Est-ce que l'un de vous l'aurait essayer?
Est-ce le cas pour tous les prog? (par ex. avec Karrigel le serveur web)
Est-ce fiable?


Je viens de trouver un bug, avec la dernière version de cheetah il
engendre des erreurs.
A part ça en règle général ça marche très bien, les résultats dépendent
fortement du programme, le mieux est d'essayer. Ca peut être
spectaculaire comme l'inverse.

--
William Dodé - http://flibuste.net

Avatar
amaury
Bonjour,

- ça accélère, un peu, les choses. En gros 10 % à 20 %,
d'après mes tests.


En fait, ça dépend vraiment des applications. J'ai l'impression que
les meilleurs résultats sont obtenus quand il y a beaucoup de
manipulations d'objets simples (nombres, texte, listes).
Sur l'un de nos outils, on a eu une accélération de 3x. Sur d'autres,
un petit ralentissement...
Et il faut surveiller l'utilisation de la mémoire !

--
Amaury

Avatar
Andréï
Salut,
Pour compléter ma question, je viens de lire qu'il était possible de
compiler un source python en bytecode python.
Face à un bytecode python, est ce que psyco est toujours aussi
performant?

Salut,
j'ai lu qu'il existait un compilateur JIT (psyco)pour python qui améliorait
les performances de 2 à 4 fois.
Est-ce que l'un de vous l'aurait essayer?
Est-ce le cas pour tous les prog? (par ex. avec Karrigel le serveur web)
Est-ce fiable?


A+

Avatar
Do Re Mi chel La Si Do
Bonjour !

Pour être exécuté, un script Python est TOUJOURS traduit en "bytecode
python".
Donc, tout ce qui a été dit reste valable.

@-salutations

Michel Claveau