编译具有大量模块的NodeMCU会对内存使用产生影响吗?

时间:2017-04-12 13:22:05

标签: memory lua ram esp8266 nodemcu

使用cloud compiling website我创建了一个具有大量模块的自定义NodeMCU固件。这么多固件本身的大小几乎是700KB。我通常只为一个项目使用多达5个模块,所以我想知道固件中所有其他模块的包含是否会对RAM使用产生明显的负面影响。

1 个答案:

答案 0 :(得分:2)

https://www.kickstarter.com/projects/214379695/micropython-on-the-esp8266-beautifully-easy-iot/posts/1501224对ESP8266存储器映射(以及其他有趣的位)有一个很好的解释。此外,作为评论你得到了很好的答案。

烘焙到二进制文件中的每个模块都只是“存在”而消耗内存。如果要测量单个模块对可用堆的影响,则必须构建两个二进制文件,一个用于,另一个没有该模块。您可以在启动后立即闪烁并计算运行node.heap()的增量。

  

编译具有大量模块的NodeMCU会对内存使用产生影响吗?

是的,它肯定会像你注意到的那样。

  

我通常只为一个项目使用多达5个模块

这就是为什么我们建议为每个项目使用不同的模块集(读取“最小集”)。 NodeMCU固件的优点在于,您只需执行一次此操作,这与Arduino,之后交换脚本甚至单独的功能都非常快。

我建议你也看看https://nodemcu.readthedocs.io/en/dev/en/lua-developer-faq/#techniques-for-reducing-ram-and-spiffs-footprint。正在进行重大改革https://github.com/nodemcu/nodemcu-firmware/pull/1899