Lua引擎组成
1.Lua核心模块:
虚拟机、编译器/解释器、GC、标准库、内嵌辅助库、C Api。
![](https://img.haomeiwen.com/i3860603/81a20a1b3d70d7a9.png)
1).虚拟机核心文件
虚拟机(lvm.c)、函数调用以及栈管理(ldo.c )、函数原型及闭包管理(lfunc.c )、垃圾回收(lgc.c)、内存管理接口(lmem.c)、对象操作(lobject.c )、虚拟机字节码定义(lopcodes.c)、全局状态机(lstate.c)
2).源代码解析以及字节码预编译
代码生成器(lcode.c)、词法分析器(llex.c)、解析器(lparser.c )等
3).内嵌库
内嵌库的初始化(linit.c)、基础库(lbaselib.c)、位操作库(lbitlib.c)、IO库(liolib.c)、数学库(lmathlib.c)、OS库(loslib.c)、字符串库(lstrlib.c)、表处理库 (ltablib.c)等。
4).可执行的解析器,字节码编译器
解释器(lua.c)、编译器(luac.c )。
2.Lua C 暴露API主要三部分:
1).虚拟机初始化。2).入栈、出栈操作。3).基础库、内嵌辅助库。
3.虚拟机内部依赖关系
![](https://img.haomeiwen.com/i3860603/1556812b880a10bb.png)
4.代码量:
粗略统计Lua5.4.3代码总行数:29469(包括头文件、注释和空行),核心代码大概不到20000行左右。在我们rtc sdk(windows平台)源码依赖编译包体分别增加0.19M(64位)、0.17M(32位)【裁剪之后】。
网友评论