image.png

    lua.vm.js 是在 node.js 中支持 lua 解析的可选开源方案。虽然 lua 拥有 GC,但是GC的调用是自动的,因此有的时候 lua.vm.js 的内存使用还是不确定的。默认下 lua.vm.js 开辟的内存总数是 134217728 字节,如果使用过程中出现内存不足的提示,打印出以下信息:

    说明内存已满,此时全部 lua 调用都会出现异常。解决方法就是扩大内存(例如扩大到原值的2倍):

    1. let luaVM = require('lua.vm.js');
    2. luaVM.emscripten.TOTAL_MEMORY = 134217728 * 2;
    3. luaVM.emscripten.buffer = new ArrayBuffer(luaVM.emscripten.TOTAL_MEMORY);

    如果希望在运行过程中监视内存使用情况,可以键入以下语句:

    1. let n1 = luaVM.emscripten.getMemory(0);
    2. let n2 = luaVM.emscripten.TOTAL_MEMORY;
    3. let n3 = n1/n2*100;
    4. console.log('luaVM Memory: '+ n1 + '/' + n2 + '(' + n3.toFixed(2) + '% used)');

    其中,luaVM.emscripten.getMemory 函数用于在 luaVM.emscripten.buffer 中定位新的可用空间。