Ich suche nach einem unvoreingenommenen, aktuellen Vergleich von eLUA (NodeMCU) und MicroPython auf ESP8266.
Ich kann nur sehr oberflächliche Berichte / Blogs von Benutzern finden, die das eine oder andere ausprobieren. - Allesamt ohne technische Details.
Das Nächste, was ich finden konnte, ist der wahrscheinlich hoffnungslos veraltete und schwer zu verstehende Vergleich durch das MicroPython-Projekt.
Ich würde mich für die offensichtlichen Fragen interessieren:
- Flash-Nutzung
- RAM-Auslastung der VM nach dem Booten
- RAM-Nutzung bei normaler Nutzung
- Ausführungsmodell (dh wie werden die "Aufgaben" des ESP8266 abgebildet?)
- Ausführungsleistung
- einfache Erweiterung (dh Hinzufügen von Modulen)
- alles andere, was relevant sein könnte
Nach dem Studium der Dokumentation habe ich meines Erachtens Folgendes verstanden:
- NodeMCU verfügt über ziemlich detaillierte Erstellungsoptionen, mit denen nur die erforderlichen Module erstellt werden können. Dies scheint das Arbeiten mit kleinen Blitzgrößen zu ermöglichen. Für Micropython scheint 512 KB die absolute Untergrenze zu sein. In diesem Fall bleibt kein Platz für benutzerdefinierten Code. Nicht sicher, wie dies mit NodeMCU verglichen wird.
- MicroPython verfügt über einen integrierten WebREPL, der standardmäßig automatisch konfiguriert wird. NodeMCU scheint nichts Vergleichbares eingebaut zu haben.
- NodeMCU scheint derzeit von einer größeren Community zu profitieren, vermutlich weil es schon länger existiert.
- Die MicroPython-Dokumentation ist recht informell, was die Erweiterung des C-Codes betrifft. Die NodeMCU-Dokumentation scheint ausgezeichnet zu sein.
Antworten:
Hier ist ein etwas anderer Ansatz anstelle eines Lua vs. Python Shootouts:
Sechs der beliebtesten ESP8266 "Runtimes":
Die wichtigste Erkenntnis ist, dass der Großteil des Codes gemeinsam ist. Die Primärbibliotheken in 1-5 stammen alle aus 6. Unter einer dünnen Schicht aus AT / Python / LUA / JavaScript / C ist der Primärcode praktisch identisch. Das bedeutet, dass die Leistung (RAM, FLASH, Ausführung) ebenfalls ähnlich ist.
Da Sie sich Gedanken über Geschwindigkeit und RAM machen (Flash ist im Allgemeinen in Ordnung), wie wäre es mit Option 5? Arduino ist eine verwendbare IDE mit einer großen Sammlung von Beispielen. Möglicherweise wird Ihr erster Code in weniger als einer Stunde ausgeführt und übertrifft wahrscheinlich alle Skriptmodule.
Da es keine signifikanten Unterschiede bei der Speichernutzung gibt, würde ich MicroPython aufgrund der größeren Anzahl an Bibliotheken und einer aktiven Online-Community mit IRC-Webchat wählen. Die Dokumentation zum Hinzufügen von C-Modulen wurde verbessert.
Option 6 bietet Ihnen das höchste Optimierungspotential, jedoch bei höherer Komplexität und steilerer Lernkurve.
Zuletzt eine gute Faustregel für ESP8266: Jede TCP / IP-Verbindung kann bis zu ~ 3k Speicher belegen. Erwarten Sie immer weniger als 5 gleichzeitige Verbindungen!
TL; DR: ESP8266-Anwendungen haben den größten Teil ihres Codes gemeinsam und verhalten sich ähnlich. Wählen Sie also die Skript-Engine, die Ihnen gefällt, oder greifen Sie auf C / IDE-12E zu. Erwarten Sie nicht mehr als 5 gleichzeitige IP-Verbindungen.
quelle