/*
获取内存信息
@api rtos.meminfo(type)
@type "sys"系统内存, "lua"虚拟机内存, 默认为lua虚拟机内存
@return int 总内存大小,单位字节
@return int 当前使用的内存大小,单位字节
@return int 最大使用的内存大小,单位字节
@usage
-- 打印内存占用
log.info("mem.lua", rtos.meminfo())
log.info("mem.sys", rtos.meminfo("sys"))
*/
static int l_rtos_meminfo(lua_State *L) {
size_t len = 0;
size_t total = 0;
size_t used = 0;
size_t max_used = 0;
const char * str = luaL_optlstring(L, 1, "lua", &len);
if (strcmp("sys", str) == 0) {
//lua_gc(L, LUA_GCCOLLECT, 0);
//lua_gc(L, LUA_GCCOLLECT, 0);
luat_meminfo_sys(&total, &used, &max_used);
}
else {
luat_meminfo_luavm(&total, &used, &max_used);
}
lua_pushinteger(L, total);
lua_pushinteger(L, used);
lua_pushinteger(L, max_used);
return 3;
}