标签:ring tps 匿名 lua 不可变 com 忘记 png tail
一、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
标签:ring tps 匿名 lua 不可变 com 忘记 png tail
原文地址:https://www.cnblogs.com/Fivee/p/12910812.html