在上一篇文章里面,我们用NodeMCU写了一个能在线更新lua代码的HTTP服务器,这个服务器启动后会输出类似以下信息:
start free mem: 41008
start httpd on 192.168.4.1:80
end free mem: 33560
这一篇文章里,我们只关注首尾两行信息,这是启动HTTP服务器前后的空闲内存情况,也就是说这个 HTTP服务占用了7-8K的内存,启动之后可用内存约为33K,是否有办法把内存占用再降低一些呢?答案就是今天要讲到的LFS。
LFS具体解释看这里https://nodemcu.readthedocs.io/en/master/lfs/ ,简单来说就是可以让代码放在闪存中,但如同放在内存中一样运行,达成的效果就是会减少内存的占用。上一篇文章里面我们上传了5个lua文件,除了init.lua,另外4个文件拷贝到第一篇文章提到的luasrc目录,并修改以下三个文件的内容
httpd.lua
httpserver = require("httpserver")
修改成
httpserver = node.flashindex("httpserver")()
httpserver.lua
local csend = (require "fifosock").wrap(conn)
修改成
local csend = (node.flashindex(