We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
在高频率执行native函数时 测试下来性能不佳,
call_param类使用了 3个vector 每次调用时,即使是局部变量 也都会从堆里动态申请内存 再回收,造成性能性能问题,应该改为栈内存 避免分配回收。
尤其是lua引擎里 会大量使用, 所以提一下可以注意优化。
The text was updated successfully, but these errors were encountered:
我忽然发现为什么当年 小汐说lua的性能不如jass的原因了, 实在是因为ydlua引擎底层交互有问题
还有一些地方需要优化
1 每次访问 jass.common jass.japi 都会生成新的闭包 造成性能问题
2 调用 is_gaming() get_jass_thread() get_jass_vm() 等函数里 都 依赖了 get_war3_searcher() 里面的单例对象 单例对象使用静态局部变量 为了保证线程安全每次调用时都会从tls获取数据,高频率调用时会掉帧
3 lua调用native函数 是先将 参数 写入到容器里 再从 容器复制到栈里 一方面容器是堆内存 有分配回收问题,一方面对比jass虚拟机指令,多了一次参数复制的操作, 调用可以不需要容器 不需要参数复制 直接push 到栈里会快很多。
Sorry, something went wrong.
lua的优点是可以大幅度的减少native函数的调用。用得好肯定没问题,用得不好怎么着都是问题。
我最近在重写替换jass虚拟机指令, 过程中用到你部分代码,反应出来性能比原本魔兽的要差一些,处理完上述问题,性能就达到相近的性能, 所以反馈一下而已。
No branches or pull requests
在高频率执行native函数时 测试下来性能不佳,
call_param类使用了 3个vector 每次调用时,即使是局部变量 也都会从堆里动态申请内存 再回收,造成性能性能问题,应该改为栈内存 避免分配回收。
尤其是lua引擎里 会大量使用, 所以提一下可以注意优化。
The text was updated successfully, but these errors were encountered: