Je recherche une comparaison impartiale et à jour de l' eLUA (NodeMCU) et MicroPython sur ESP8266.
Je ne trouve que des rapports / blogs très superficiels d'utilisateurs essayant l'un ou l'autre. - Le tout dépourvu de détails techniques.
La chose la plus proche que j'ai pu trouver est probablement cette comparaison désespérément dépassée et difficile à comprendre par le projet MicroPython.
Je serais intéressé par les questions évidentes:
- utilisation du flash
- Utilisation de la RAM par la VM après le démarrage
- Utilisation de la RAM en utilisation habituelle
- modèle d'exécution (c'est-à-dire comment les "tâches" ESP8266 sont-elles mappées?)
- performances d'exécution
- facilité d'extension (c'est-à-dire ajout de module)
- tout ce qui pourrait être pertinent
En étudiant la documentation, je pense avoir compris ce qui suit:
- NodeMCU a des options de construction assez fines qui permettent de construire uniquement les modules requis. Cela semble permettre de travailler avec de petites tailles de flash. Pour Micropython, 512 Ko semblent être la limite inférieure absolue, auquel cas il ne reste plus d'espace pour le code défini par l'utilisateur. Je ne sais pas comment cela se compare à NodeMCU.
- MicroPython possède un WebREPL intégré qui est configuré automatiquement par défaut. NodeMCU semble n'avoir rien de similaire intégré.
- NodeMCU semble bénéficier actuellement d'une communauté plus large, probablement parce qu'elle existe depuis plus longtemps.
- La documentation de MicroPython est assez informelle, manquant totalement lorsqu'il s'agit d'étendre le code C. La documentation de NodeMCU semble excellente.
Réponses:
Voici une approche légèrement différente à la place d'une fusillade Lua vs Python:
Six des «runtimes» ESP8266 les plus populaires:
L'idée clé est que la majeure partie du code est courante. Les bibliothèques primaires en 1-5 proviennent toutes de 6. Sous une fine couche d'AT / Python / LUA / JavaScript / C, le code primaire est pratiquement identique. Cela signifie que les performances (RAM, FLASH, exécution) sont également similaires.
Puisque vous semblez préoccupé par la vitesse et la RAM (le flash est généralement OK), qu'en est-il de l'option # 5? Arduino est un IDE utilisable avec une grande collection d'exemples. Vous pourriez avoir votre premier code exécuté en moins d'une heure et surpasseriez probablement n'importe lequel des moteurs de script.
En l'absence de différences significatives d'utilisation de la mémoire, je choisirais MicroPython en raison du plus grand nombre de bibliothèques et d' une communauté en ligne active avec IRC webchat. La documentation pour l'ajout de modules C a été améliorée.
L'option n ° 6 vous offre le potentiel d'optimisation le plus élevé, mais avec une complexité plus élevée et une courbe d'apprentissage plus abrupte.
Enfin une bonne règle de base ESP8266: chaque connexion TCP / IP peut consommer jusqu'à ~ 3k de mémoire. Attendez-vous toujours à moins de 5 connexions simultanées !
TL; DR: les applications ESP8266 ont la plupart de leur code en commun et fonctionnent de manière similaire. Choisissez donc le moteur de script que vous aimez ou passez au C / IDE-12E. Ne vous attendez pas à plus de 5 connexions IP simultanées.
la source