我們項目是Unity+Slua
客戶端:
- 界面緩存起來的unity object/ component時骨饿, 需要在界面銷毀時亏栈,把變量置nil
- 同理,全局變量存儲unity object/ component更應該避免
- 需要頻繁訪問的unity object/component宏赘,就先緩存起來绒北,用完置nil
- 注意C#和lua閉包相互引用問題,特別是閉包里同時引用著unity object/ component
參考:unity tolua跨語言對象引用原理和內(nèi)存泄漏問題分析
公共:
- 不建議使用弱引用察署,不建議使用metatable闷游,不建議使用協(xié)程,避免使用面向?qū)ο螅☉?zhàn)斗除外)
- 盡量復用table贴汪,能不創(chuàng)建table就不創(chuàng)建
- 做好數(shù)據(jù)緩存脐往,特別是提供給外部提供的接口,不要每次調(diào)用都產(chǎn)生新的table
- 能用ipairs的就別用pairs
- Hash table如果需要判斷是否存在元素扳埂,應該使用next钙勃,而不是for