Estoy buscando una comparación imparcial y actualizada de eLUA (NodeMCU) y MicroPython en ESP8266.
Solo puedo encontrar informes / blogs muy superficiales de usuarios que prueban uno u otro. - Todo lo cual carece por completo de detalles técnicos.
Lo más cercano que pude encontrar es esta comparación probablemente desactualizada y difícil de entender por el proyecto MicroPython.
Me interesarían las preguntas obvias:
- uso de flash
- Uso de RAM de VM después del arranque
- Uso de RAM en uso habitual
- modelo de ejecución (es decir, ¿cómo se asignan las "tareas" ESP8266?)
- rendimiento de ejecución
- facilidad de extensión (es decir, adición de módulo)
- cualquier otra cosa que pueda ser relevante
De estudiar la documentación creo haber entendido lo siguiente:
- NodeMCU tiene opciones de construcción bastante finas que permiten construir solo los módulos requeridos. Esto parece permitir trabajar con pequeños tamaños de flash. Para Micropython, 512 KB parece ser el límite inferior absoluto, en cuyo caso no queda espacio para el código definido por el usuario. No estoy seguro de cómo esto se compara con NodeMCU.
- MicroPython tiene un WebREPL incorporado que se configura automáticamente de manera predeterminada. NodeMCU parece no tener nada similar incorporado.
- NodeMCU parece beneficiarse actualmente de una comunidad más grande, presumiblemente debido a que ha existido por más tiempo.
- La documentación de MicroPython es informal, faltante por completo cuando se trata de extender el código C. La documentación de NodeMCU parece ser excelente.
Respuestas:
Aquí hay un enfoque ligeramente diferente en lugar de un tiroteo entre Lua y Python:
Seis de los "tiempos de ejecución" ESP8266 más populares:
La idea clave es que la mayor parte del código es común. Todas las bibliotecas primarias en 1-5 se originan en 6. Debajo de una capa delgada de AT / Python / LUA / JavaScript / C, el código primario es prácticamente idéntico. Eso significa que el rendimiento (RAM, FLASH, ejecución) también es similar.
Dado que parece preocupado por la velocidad y la RAM (el flash generalmente está bien), ¿qué tal la opción # 5? Arduino es un IDE utilizable con una gran colección de ejemplos. Podría tener su primer código ejecutándose en menos de una hora y probablemente superaría a cualquiera de los motores de secuencias de comandos.
En ausencia de diferencias significativas en el uso de la memoria , elegiría MicroPython debido a la mayor cantidad de bibliotecas y a una comunidad activa en línea con IRC webchat. La documentación para agregar módulos C ha mejorado.
La opción n. ° 6 le brinda el mayor potencial de optimización pero a una mayor complejidad y una curva de aprendizaje más pronunciada.
Por último, una buena regla general ESP8266: cada conexión TCP / IP puede consumir hasta ~ 3k de memoria. ¡Siempre espere menos de 5 conexiones simultáneas !
TL; DR: las aplicaciones ESP8266 tienen la mayoría de sus códigos en común y funcionan de manera similar. Así que elige el motor de script que te guste o pasa a C / IDE-12E. No esperes más de 5 conexiones IP simultáneas.
fuente