lua2c
http://lua-users.org/wiki/LuaToCee
基于特定lua版本, 将lua代码转换为 LUA C api实现实现的c代码。 能够满足lua语言的大的子集。
代码:
https://github.com/davidm/lua2c
使用
可见 功能是使用lua脚本实现。
项目还提供了一个 shell 工具, 可以集成 翻译(lua-》c), 编译(c-》机器码), 执行(execute)于一体。
当然也可以只编译,不运行:
对比
lua2c的作用猜测是, 提升代码运行效率。
以此项目 bisect.lua 脚本为研究对象, 使用luac将其编译出一份C的版本,
与lua的版本实现做性能对比, 运行 1000次。
C版本运行脚本:
lua版本运行脚本(仅仅运行语句与c不同):
虽然脚本中有计算时间的部分, 但是只能达到秒的级别。 为精确计算时间, 我们使用系统的 time工具。
结果:
-----------------------
结果:
=== 总体上, 是翻译成c之后的版本, 性能好些,但是不明显。 猜测跟脚本内容有关。