码迷,mamicode.com
首页 > 其他好文 > 详细

Lua的内存优化

时间:2020-05-18 16:20:53      阅读:94      评论:0      收藏:0      [点我收藏+]

标签: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

Lua的内存优化

标签:ring   tps   匿名   lua   不可变   com   忘记   png   tail   

原文地址:https://www.cnblogs.com/Fivee/p/12910812.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!