加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

脚本和主机应用程序之间的责任

发布时间:2020-12-16 07:26:07 所属栏目:百科 来源:网络整理
导读:我一直在努力决定如何将Lua嵌入到我的脚本和扩展应用程序中. 我有一个类来处理具有类似Lua表的结构的对象. (特别是boost :: any的哈希映射) Lua脚本将与这些对象及其哈希映射进行交互. 我越来越清楚,我可以在Lua中编写这个类的全部或大部分(并从C访问它),但
我一直在努力决定如何将Lua嵌入到我的脚本和扩展应用程序中.
我有一个类来处理具有类似Lua表的结构的对象. (特别是boost :: any的哈希映射)
Lua脚本将与这些对象及其哈希映射进行交互.

我越来越清楚,我可以在Lua中编写这个类的全部或大部分(并从C访问它),但我不确定这样做的后果,特别是关于创建许多表的内存使用表示哈希映射.
得出这个结论的原因是我想在这些C对象中存储来自Lua的高级结构,但是每次将表存储到C对象或从C对象检索时,这样做都需要显式的表序列化.从理论上讲,这种方法可以在权衡中提供更少的内存使用,从而实现更高的每次访问延迟.

在这种情况下,可能的行动方案有哪些,以及它们的优缺点?

解决方法

我最终决定使用 LuaJIT来解决我在Lua中的大多数应用程序的编程,原因有很多,其中包括:

>我试图通过C/C++实现的目标已经在Lua中,特别是散列表和元变量,我基本上重新发明了轮子.
>我做了一些简单的基准测试,并发现我的大多数脚本总是最终反复调用C并回到Lua,并且我可以通过利用字节码将运行时焦点限制在Lua来优化掉大量的编译器.
>根据我对即时编译主题的有限经验和研究,LuaJIT(2.0.0-beta8)在这一点上证明足够快,足以满足我的需求,并且很可能接近类似数据的C级内存使用结构.
> LuaJIT也可以作为香草Lua的直接替代品,并且易于构建;我所要做的就是链接到它的库以使其运行起来.

通过这样做,我觉得我失去了对我的项目的“权力用户”控制权,但我认为这是由于我对Lua的复杂性与我对C的了解缺乏经验.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读