Python est très lent : autre logiciel?

Bonjour à tous,

Je trouve que Python sur Pi Zero est très très lent.
Quel logiciel alternatif puis-je installer pour trouver un peu plus de rapidité.
J’ai beaucoup cherché sur Internet, sans réellement trouver quelque chose
de simple et rapide à installer et coder ?
Merci de vos expérience.

hello,

peut être cython si j’ai bien compris c’est une version apparenté a python mais compilé donc plus rapide que le python interprété

Hello !

Dire que Python est lent cela ne veut pas dire grand chose

Peux-tu nous en dire plus?

Et a part ça, il ne faut pas espérer des miracles d’un Pi0 ^^

Merci pour vos réponses.
Je débute plus ou moins dans le monde raspberry… néanmoins j’ai quelques expériences
dans celui des microcontrôleurs.

Pas de miracles de PiZero ?
Etonnant : une machine qui caracole à 1GHz moins performante qu’un basique Arduino ou même qui est battu par un vieux MSX1 des années 80 ?
Je sais bien qu’il faut remuer un linux mais quand-même.
Mon programme de test consiste simplement à lire un gpio et écrire une phrase.
(Le programme complet lit des GPIO et envoi des mails ; tout ça fonctionne bien, mais quelle lenteur !!)
(Raspbian Lite)
Bien sûr, je peux écrire en C, mais si je peux éviter !
Peut-être un Forth, mais je n’ai pas encore trouvé…

il y a aussi la solution d’allèger linux en passant par une compilation du noyau et une installation minimaliste comme Buildroot
source : https://openclassrooms.com/fr/courses/5281406-creez-un-linux-embarque-pour-la-domotique/5464301-prenez-en-main-votre-environnement-buildroot

Salut @Pi-rouette

J’ai RpiZero, RpiB, Rpi2, Rpi3 et Rpi3B+
Y a pas photo : sur un RpiZéro ou RpiB = on oublie un Raspbian graphique.
En images « idiotes » :

  • Le pb n’est pas la twingo, c’est de fourrer 4 mec de 120 kg avec leur bagage le souci :wink:
  • Mon vieux PC Dell sous Atom et 2Go de RAM n’en peut plus de la vie sous LinuxMint mais carbure sur une Debian allégée (DF Linux)

Je n’y connais rien dans le domaine, mais pour moi, un microcontrôleur ne fait pas tourner autant de truc ; il se concentre sur le « seul » truc qu’il sait faire.
Par exemple, je préfère prendre une calculatrice de base car elle sera plus véloce que mon RpiZero sous Raspbian Buster.
Bon, le pb, c’est qu’elle n’est pas capable de prendre une photo par tache cron toutes les 5 minutes et l’envoyer vers un serveur en SSH :wink:

Si ton script python est bien codé (dans le sens des économies de charge processus) et que tu peux le faire tourner sur un linux non graphique = raspbian lite sera déjà mieux. (Ajout : pardon, je n’avais pas vu que tu étais déjà sous Lite)

Je trouve étonnant que lire tes gpio soit lent, je doute que le soucis viennent de python…

Je ne pense pas que python soit le problème non-plus.

Je travail mes script python (avec IDLE3) sur un raspberry zeroW directement, la totalité des GPIO sont utilisé, je gère des boutons, des Leds, le BUS SPI et de l’audio entrant et sortant par USB.
J’ai Raspbian lite avec bureau installé sur la microSD, et j’utilise VNC pour afficher le bureau via le WIFI.
Le script met 10 seconde à démarrer oui. Mais ensuite, avec une utilisation du CPU avoisinant les 50% les lecture des GPIO est quasi immédiate (appuis sur un bouton, led qui s’allume, l’interaction avec le SPI…)

Tout va très très vite une fois le script lancé. si j’ai des lenteur, 99% du temps, c’est du à une boucle dans python qui occupe le CPU « pour rien » dans ce cas je ralenti la boucle avec un time.sleep(), ou je fait un thread séparé…
Comme dis plus haut dans le sujet, faut optimiser chaque action, et éliminé toute action inutile ou la reporter lorsque le CPU est moins occupé.

Un grand merci à tous ; je vais reprendre mon projet en suivant vos conseils.
Je donnerai plus d’info d’ici qques temps…
A+