Я ищу беспристрастное, современное сравнение eLUA (NodeMCU) и MicroPython на ESP8266.
Я могу только найти очень поверхностные отчеты / блоги пользователей, пробующих то или другое. - Все из которых отсутствуют полностью технические детали.
Самое близкое, что я мог найти, - это, вероятно, безнадежно устаревшее и трудное для понимания сравнение с проектом MicroPython.
Мне были бы интересны очевидные вопросы:
- использование вспышки
- Использование ОЗУ ВМ после загрузки
- Использование оперативной памяти при обычном использовании
- модель исполнения (то есть как соотносятся «задачи» ESP8266?)
- исполнение исполнения
- простота расширения (т.е. добавление модуля)
- все остальное, что может иметь отношение
Из изучения документации я считаю, что понял следующее:
- NodeMCU имеет достаточно детальные параметры сборки, которые позволяют создавать только необходимые модули. Это позволяет работать с маленькими вспышками. Для Micropython 512 КБ представляется абсолютным нижним пределом, и в этом случае не остается места для пользовательского кода. Не уверен, как это сравнивается с NodeMCU.
- MicroPython имеет встроенный WebREPL, который автоматически настраивается по умолчанию. NodeMCU, похоже, не имеет ничего похожего встроенного.
- Похоже, что NodeMCU в настоящее время извлекает выгоду из более крупного сообщества, вероятно, из-за того, что оно существует дольше.
- Документация по MicroPython довольно неформальна, и в ней нет нужды полностью расширять C-код. Документация NodeMCU вроде бы отличная.
Ответы:
Вот немного другой подход вместо перестрелки Lua против Python:
Шесть самых популярных ESP8266 «runtime»:
Ключевым моментом является то, что основная часть кода является общей. Все первичные библиотеки в 1-5 начинаются с 6. Под тонким слоем AT / Python / LUA / JavaScript / C первичный код практически идентичен. Это означает, что производительность (RAM, FLASH, исполнение) также одинакова.
Так как вы, кажется, обеспокоены скоростью и оперативной памятью (флэш-память в целом нормальная), как насчет варианта № 5? Arduino - это удобная среда разработки с большой коллекцией примеров. Ваш первый код может быть запущен менее чем за час и, вероятно, превзойдет любой из скриптовых движков.
В отсутствие значительных различий в использовании памяти я бы выбрал MicroPython из-за большего количества библиотек и активного интернет-сообщества с IRC-чатом. Документация для добавления модулей C улучшена.
Вариант № 6 предоставляет вам самый высокий потенциал для оптимизации, но с более высокой сложностью и более крутой кривой обучения.
Наконец, хорошее практическое правило ESP8266: каждое TCP / IP-соединение может занимать до 3 КБ памяти. Всегда ожидайте менее 5 одновременных подключений!
TL; DR: приложения ESP8266 имеют большую часть общего кода и работают аналогично. Поэтому выберите понравившийся вам скрипт-движок или перейдите на C / IDE-12E. Не ожидайте более 5 одновременных IP-соединений.
источник