一。 查其原因主要是
lua局部表引起的,类似这样:
local tt[] = {}
tt[1] = {1,2,3}
tt[2] = {1,2}
...
总共就20个元素左右,并不多,这样的表格在极端情况下偶然发生消耗几百毫秒(在我们测试机上似乎是500ms左右)
二。 是new
脚本有些类似调用
for i=100, 5000, 1
。。。
addkeypos(i, p1, p2)
end
由于程序在addkeypos函数中使用了new,这导致有时偶然有些new消耗10多ms,
4000次下来累计偶然会占高。解决办法就是让程序去掉new处理成池的方式,
三。还有就是频率调用字符转换函数,类似sprintf("%s%d", "sdfdf", 2100 )也是一个非常消耗的地方!
解决办法就是用itoa以及atoi来转换
四。还有就是lua的回收也是消耗很大,简单办法就是用它提供的分步回收(不在同一帧收完)