slua

SLua 调试

ε祈祈猫儿з 提交于 2020-02-05 03:08:29
准备工作 调试代码下载 生成调试配置 这里很多同学出现过一个问题,就是同时下载了很多的lua 调试插件,所以这里需要注意 如果使用luaide进行lua调试, 需要先禁用或卸载其他的lua调试插件. 步骤: 如果你没有生成过调试配置 那么先生成 演示 演示 演示 Slua 如果你已经有调试配置了可修改/删除工作目录下的 .vscode/launch.json 根据调试需要选择本地或者远程调试即可 attach 远程调试 Unity 调试都为远程调试 不分平台请注意 { "name": "Unity-slua", "type": "lua", "request": "attach", "runtimeType": "Unity", "localRoot": "${workspaceRoot}", "fileExtname": ".txt", "port": 7003,ke "printType": 1 } name:命名调试器选择项名字 type: 默认配置不需要修改 request:默认配置不需要修改 runtimeType:默认配置不需要修改 localRoot: 与本地调试不同,远程调试 localRoot 当做scriptMap 一般情况下默认为 ${workspaceRoot} 即可,如果你的代码目录是 ${workspaceRoot} 下载的某个路径 也可明确指定 如 $

关于SLua的性能问题

*爱你&永不变心* 提交于 2020-02-05 02:31:28
最近在使用Slua, 这个玩意号称Fastest lua binding via static code generating, 然而在使用过程中发现效率低得吓人, 同样的功能如果用c++写会比这玩意快15倍, 虽然之前对在Unity里用lua会慢这事已经有心理准备了, 毕竟c#/c互调还是会有些消耗的, 而且Unity在编辑模式只能用debug编译, 速度可能会慢一些, 但是效率能差到这种程度着实出乎我的意料了, 翻了一下它的代码才发现, 这玩意的实现实在是一点都不fast啊。 先说c#导出到lua,最终会用这个函数注册到lua: static public void pushcsfunction(IntPtr L, LuaCSFunction function) { LuaDLL.lua_getref(L, get(L).PCallCSFunctionRef); LuaDLL.lua_pushcclosure(L, function, 0); LuaDLL.lua_call(L, 1, 1); } 来看一下PCallCSFunctionRef都干了啥: local assert = assert local function check(ok,...) assert(ok, ...) return ... end return function(cs_func) return

xlua、slua的性能对比

自作多情 提交于 2019-12-16 11:55:33
  Unity版本:2018.4.13,mac版   测试平台:Android   测试设备:honor 20s   xlua版本:2.1.14,非jit版本   slua版本:1.7.0,未开启git   测试方法:相同的lua代码,每个测试用例连续点击5次,取平均值   测试结果:   通过上图发现,xlua在与c#交互的效率上要高于slua,而slua在vector3的normalize操作效果略高于xlua。这是因为slua将vector3等部分数据结构用lua重写了,调用normalize并未与c#交互。   总结:   xlua:与c#交互时速度快,初始化速度快,可直接接入c/c++写的lua库。需要自己实现isnull, iter等辅助方法。   slua:部分基础数据运算略快,使用更方便(自带Slua.IsNull,Slua.iter等辅助函数),支持Standalone模式。初始化较慢,需要自己来删除不需要的导出来加快启动速度。 来源: https://www.cnblogs.com/hghhe/p/12047947.html