使用cloud compiling website我创建了一个具有大量模块的自定义NodeMCU固件 . 这么多固件本身的大小几乎是700KB . 我通常只为一个项目使用多达5个模块,所以我想知道固件中所有其他模块的包含是否会对RAM使用产生明显的负面影响 .
使用cloud compiling website我创建了一个具有大量模块的自定义NodeMCU固件 . 这么多固件本身的大小几乎是700KB . 我通常只为一个项目使用多达5个模块,所以我想知道固件中所有其他模块的包含是否会对RAM使用产生明显的负面影响 .
1 回答
在https://www.kickstarter.com/projects/214379695/micropython-on-the-esp8266-beautifully-easy-iot/posts/1501224,ESP8266存储器映射(以及其他有趣的位)有一个很好的解释 . 此外,作为评论你得到了很好的答案 .
烘焙到二进制文件中的每个模块都只消耗内存"being there" . 如果要测量单个模块对可用堆的影响,则'd have to build two binaries, one with and one without that module. You' d闪烁两者并在启动后立即计算运行
node.heap()
的增量 .是的,它肯定会像你注意到的那样 .
这就是为什么我们建议为每个项目使用不同的模块集(读取“最小集”) . 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 .