在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1.assert(a,b) 当a为假(nil或false)时,返回b;当a为真,返回a的执行结果。 2.collectgarbage collectgarbage("collect"): 做一次完整的垃圾收集循环。为默认参数。 collectgarbage("count"): 以 K 字节数为单位返回 Lua 使用的总内存数。 这个值有小数部分,所以只需要乘上 1024 就能得到 Lua 使用的准确字节数(除非溢出)。 collectgarbage("restart"): 重启垃圾收集器的自动运行。 collectgarbage("setpause"): 将 arg 设为收集器的 间歇率。 返回 间歇率 的前一个值。 collectgarbage("setstepmul"): 返回 步进倍率 的前一个值。 collectgarbage("step"): 单步运行垃圾收集器。 步长"大小"由 arg 控制。 传入 0 时,收集器步进(不可分割的)一步。 传入非 0 值, 收集器收集相当于 Lua 分配这些多(K 字节)内存的工作。 如果收集器结束一个循环将返回 true 。 collectgarbage("stop"): 停止垃圾收集器的运行。 在调用重启前,收集器只会因显式的调用运行。 static int luaB_collectgarbage (lua_State *L) { static const char *const opts[] = {"stop", "restart", "collect", "count", "step", "setpause", "setstepmul", "isrunning", NULL}; static const int optsnum[] = {LUA_GCSTOP, LUA_GCRESTART, LUA_GCCOLLECT, LUA_GCCOUNT, LUA_GCSTEP, LUA_GCSETPAUSE, LUA_GCSETSTEPMUL, LUA_GCISRUNNING}; int o = optsnum[luaL_checkoption(L, 1, "collect", opts)]; int ex = (int)luaL_optinteger(L, 2, 0); int res = lua_gc(L, o, ex); switch (o) { case LUA_GCCOUNT: { int b = lua_gc(L, LUA_GCCOUNTB, 0); lua_pushnumber(L, (lua_Number)res + ((lua_Number)b/1024)); return 1; } case LUA_GCSTEP: case LUA_GCISRUNNING: { lua_pushboolean(L, res); return 1; } default: { lua_pushinteger(L, res); return 1; } } }
luaL_checkoption:参数检查功能。检查函数参数arg是否为字符串,并在数组中找到该字符串 luaL_optinteger:如果函数参数arg是整数(或可转换为整数),则返回该整数。如果该参数不存在或为nil,则返回。否则,将引发错误。 lua_gc:垃圾收集功能。有10种任务模式。 LUA_GCSTOP:停止垃圾收集器。 LUA_GCRESTART:重启垃圾收集器。 LUA_GCCOLLECT:执行一个完整的垃圾收集周期。 LUA_GCCOUNT:返回Lua当前使用的内存量(以千字节为单位)。 LUA_GCCOUNTB:返回Lua当前使用的内存字节数除以1024的余数。 LUA_GCSTEP:执行一个增量的垃圾收集步骤。 LUA_GCSETPAUSE:将data设置为收集器暂停的新值(参见§2.5),并返回之前的暂停值。 LUA_GCSETSTEPMUL:将data设置为收集器的步骤乘数的新值(参见§2.5),并返回步骤乘数的前一个值。 LUA_GCISRUNNING:返回一个布尔值,它告诉收集器是否正在运行(例如,没有停止)。 lua_pushnumber:释放指定大小的内存,并返回一个该内存的指针。 |
请发表评论