跳到主要内容

与 xLua / toLua / SLua 对比

性质: 选型与分析材料,不是 ZLua 行为规范。
覆盖: xLua、toLua/tolua#、SLua 与 ZLua 四方对比。

本目录

文件内容
FEATURES.md特性与用法差异:类型访问、调用、C#→Lua、值类型、热更/生成、Editor/Player、侵入性、白名单
PERFORMANCE.mdLua↔C# 性能:调用路径、理论开销、Il2Cpp 实测(ZLua vs xLua)
GC.mdGC 理论分析:热路径分配、ObjectRegistry/ByVal/Opaque、「零 GC」边界
BRIDGE.md桥接函数性能与二进制体积:生成粒度、stub 复用、四方案对照

对比对象

方案典型定位成熟度与 ZLua 关系
xLua热更友好、生成 Wrap + 反射兜底、生态成熟生产级同属「高性能原生绑定」路线;ZLua 目标减少 libxlua / C# Wrap 折返
toLua / tolua#导出包装类、传统 Lua 框架风格历史方案,维护较少均需从「预生成 Wrap」迁到 ZLua 懒绑定
SLua导出 + 自动绑定历史方案与 toLua 类似,配置驱动导出
ZLuaEditor Mono / Player Il2Cpp 双后端;Il2Cpp 内嵌、签名 stub 复用、语义贴近 C#Mono 与 Il2Cpp 均已完成(见 impl/MONO.mdimpl/IL2CPP.md本文档树的「被评估方」

ZLua 当前状态(诚实说明)

后端状态说明
Il2Cpp(Player)已完成规范与实现以 build-win64/.../libil2cpp/zlua 为准;性能对比应以 Player 为准
Mono(Editor)已完成与 Il2Cpp Lua 可见语义一致;实现为 Expression Emit
文档 / 生态建设中无 xLua 级社区与热更配套;迁移需自建测试矩阵

性能/GC 文档中的 ZLua 理论值指 Il2Cpp Player 设计目标;Mono Editor 在 Phase 4–5 完成前不代表 Player 性能。

阅读顺序

  1. 选型或迁移前:先读 FEATURES.md 确认语义与工程差异。
  2. 性能是瓶颈:读 PERFORMANCE.md + GC.md,再决定是否 profiling。
  3. 包体 / 生成量:读 BRIDGE.md
  4. 实际迁移:见 guides/migration/

写作原则

  1. 特性/用法:对照表 + 迁移影响(链 guides/migration/)。
  2. 性能 / GC / 桥体积:先给理论模型与假设,再给可复现基准;未测项标 待测
  3. 不贬低其它方案的适用场景;写清 ZLua 的取舍(侵入 libil2cpp、Unity 版本 merge、Lua 版本锁定等)。
  4. 倍数、纳秒区间:§2–§7 为路径推演;§8 已填 ZLua vs xLua Il2Cpp 实测;toLua / SLua 仍待测。

相关文档

文档内容
spec/00-OVERVIEW.mdZLua 产品目标与双运行时
guides/migration/README.md迁移指南索引
guides/TESTING.md双端回归测试

对比文档随 ZLua 实现演进更新;冲突时 ZLua 行为以 spec/** 为准。