首页 > 其他 > 详细

Lua的内存优化

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

一、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的内存优化

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!