Lua的内存优化
Posted fivee
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lua的内存优化相关的知识,希望对你有一定的参考价值。
一、string.gsub和string.gmatch
string.gsub 和 string.gmatch 会产生大量的子串,这些子串都会开辟一片内存,而我们根本用不上这些子串。
二、Lua中String是不可变值
这一点也经常被大家忘记,哪怕是写Lua的老手。在以下代码中,因为Lua的string是不可变值,每次拼接都会产生一串新的字符串。这种疏忽经常出现在 I/O文件、聊天频道、处理配置等描述字段时发生。
三、内存池
如果想降低内存分配速度,使用内存池复用对象是必不可少的。在Lua内存池的使用过程中,最容易出现的问题是,忘了放回池子以及池子大小不合理。
四、C#代理
如果把Lua匿名函数注册给C#的代理,那么这个Lua匿名函数将不能正确地被LuaGC了,也就是泄露了。改进方法就是不把Lua匿名函数注册给C#代理,这样的话,每隔一段时间C#都会主动Dispose
全文参考:https://blog.csdn.net/uwa4d/article/details/72957029
以上是关于Lua的内存优化的主要内容,如果未能解决你的问题,请参考以下文章