lua(tolua)与C#交互以及泄漏的整理与总结

lua与C#交互通信原理

lua调用C#

调用无返回值函数(lua访问image的SetNativeSize)

调用返回C#对象的函数(lua访问image的mainTexture)

参考一个调用场景

C#调用lua

通过Require\Dofile调用lua以及通过DoString执行DoString

通过lua虚拟机对象获取对应的对象实例完成调用

Tolua中泄漏

1.table作为key。

2.C#持有lua对象使用完毕不执行释放接口。

简单了解一下lua的GC


三色GC回收算法:

每个新创建的对象颜色设置为白色

//初始化阶段

遍历root节点中引用的对象,从白色置为灰色,并且放入到灰色节点列表中

//标记阶段

while(灰色链表中还有未扫描的元素):

从中取出一个对象,将其置为黑色

遍历这个对象关联的其他所有对象:

if 为白色

标记为灰色,加入到灰色链表中(insert to the head)

//回收阶段

遍历所有对象:

if 为白色,

没有被引用的对象,执行回收

else

重新塞入到对象链表中,等待下一轮GC


————————————————

版权声明:本文为CSDN博主「This is Rone」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_29261149/article/details/122876092

你可能感兴趣的:(lua(tolua)与C#交互以及泄漏的整理与总结)