查找游戲中突然卡機問題小結(jié)
一。 查其原因主要是
lua局部表引起的,類似這樣:
local tt[] = {}
tt[1] = {1,2,3}
tt[2] = {1,2}
...
總共就20個元素左右,并不多,這樣的表格在極端情況下偶然發(fā)生消耗幾百毫秒(在我們測試機上似乎是500ms左右)
二。 是new
腳本有些類似調(diào)用
for i=100, 5000, 1
。。。
addkeypos(i, p1, p2)
end
由于程序在addkeypos函數(shù)中使用了new,這導(dǎo)致有時偶然有些new消耗10多ms,
4000次下來累計偶然會占高。解決辦法就是讓程序去掉new處理成池的方式, 具體參考我的另一文章:
http://www.shnenglu.com/flipcode/archive/2009/12/10/102902.html三。還有就是頻率調(diào)用字符轉(zhuǎn)換函數(shù),類似sprintf("%s%d", "sdfdf", 2100 )也是一個非常消耗的地方!
解決辦法就是用itoa以及atoi來轉(zhuǎn)換
四。哦,還有就是lua的回收也是消耗很大,簡單辦法就是用它提供的分步回收(不在同一幀收完),看到云風博客提到分state方法,感覺比較煩,我們沒有使用.
posted on 2009-12-10 10:23
flipcode 閱讀(184)
評論(0) 編輯 收藏 引用