这两份Patch都写在之前我写的构建系统cmake-toolset里了, 地址在https://github.com/atframework/cmake-toolset/tree/main/ports/grpc,有需要的小伙伴可以自取。 Lua binding和测试小工具 也是为了方便测试,我在cmake-toolset构建系统的Test里写了个小工具,可以加载upb的Lua binding然后直接命令行做测试。 只要clo...
cocos2d-x 现在使用的 Luabinding 只能达到 C++ 37.5% 的性能。在更换新 Luabinding 并做相应调整后,可以获得高达 C++ 70% 的性能表现。而这损耗的 30%,其中还有大量的数值运算。要知道拼计算,脚本是肯定比不过 C++ 的。 虽然新的 Luabinding 方案还有很多工作要做,但我有信心最终搞一个比现在快一倍的 Luabi...
// lua-binding-test.cppextern"C"{// Lua头文件必须以C方式包含#include"lua.h"#include"lualib.h"#include"lauxlib.h"externintluaopen_mylib(lua_State*);}/// 待运行的脚本constchar*SCRIPT=R"(print("mylib.addOne(1.0) = "..tostring(mylib.addOne(1.0)))";intmain(){auto*L=luaL_newstat...
lua原生实现了很多c api对栈空间进行操作, 让开发者能够方便地实现lua脚本代码与c编译代码的双向通信. 本文的主题是lua和c++混合编程, 但背后其实是lua和c api的互相调用, 所有c++的功能都要通过一层c函数的包装, 这点是要牢记在心的, 这也正是lua-binding的核心. cocos2d-x提供的lua-bingding工具使用lib...
Cocos2d-x 3.0 中的lua binding 已经搬家到新博客 jjyy.guru 分享跟游戏相关的技术、编程心得、unity3d、cocos2d、emacs、操作系统 How it work cocos2d-x 发展到了3.0,发生了非常大的变化。脚本的绑定也由过去简单的tolua++生成为主,然后通过luafix修正传递回调,到现在更加智能的方式去做。
这段代码在开了 -O2 编译后,在我的机器上依旧需要时间 1.9s。若是这么看,那简直是太慢了 (比 luajit + c binding 还慢)。很久没研究 C++ 的细节,也懒得看了,如果谁有兴趣研究一下为什么 C++ 这么慢,我很有兴趣知道原因。 12 月 16 日 留言中 lifc0 说这段 C++ 代码中开销最大的是 stringstream 的...
这个思路不仅仅适用于 Unity 下的 lua 脚本静态分析,理论上其它游戏引擎做lua binding 都可以使用类似的思路做静态分析。 预编译 lua 脚本 Lua 源码版本: 5.3.5 llex.c: 词法分析 lparser.c: 语法、语义分析 lua.c: 解释器 luac.c: 编译器 lauxlib.h 中公开了编译相关 api: //lauxlib.h LUALIB_API int...
2. FFI binding took: 0.256580s 3. resty-jit-uuid (Lua patterns) took: 0.444174s FFI binding:https://github.com/bungle/lua-resty-uuid C binding:https://github.com/Mashape/lua-uuid Pure Lua:https://github.com/Tieske/uuid resty-jit-uuid: this module (base reference for generation % compa...
1. LOCAL_SRC_FILES : 编译到Android的地本的类cpp或c,比如自定义了一个类HSprite.h HSprite.cpp 那么要需添加到这个 LOCAL_SRC_FILES 中,如下: 1 2 3 LOCAL_SRC_FILES := hellocpp/main.cpp \ /Classes/AppDelegate.cpp \ ...
这段代码在开了 -O2 编译后,在我的机器上依旧需要时间 1.9s。若是这么看,那简直是太慢了 (比 luajit + c binding 还慢)。很久没研究 C++ 的细节,也懒得看了,如果谁有兴趣研究一下为什么 C++ 这么慢,我很有兴趣知道原因。 12 月 16 日 留言中 lifc0 说这段 C++ 代码中开销最大的是 stringstream 的...