【unity優化四】內存

1、參考並總結:http://www.cnblogs.com/88999660/archive/2013/03/15/2961663.html

2、垃圾回收System.GC.Collect():

它只針對堆內存,不針對棧內存

原因:1.代碼分配內存不合理(惡性的) ,2.一定時間間隔由系統調用(良性的)。

    後果:會佔用大量CPU,影響幀率,造成遊戲卡頓

方案:1)管理對象,避免大量冗餘創建,例如string的相加操作會頻繁申請內存並施放,導致gc頻繁,應該用StringBuilder類型;

    2)某些情況下可用結構體替代類,因爲結構體放在棧區,棧的分配較快,並且不調用垃圾回收操作,但因爲結構體是“傳值”操作會導致額外開銷,所以只適合與比較小的結構體。

    3)策略一:如果堆比較小,則進行快速而頻繁的垃圾回收,適用於運行時間較長、頻繁地分配小塊內存的遊戲。

    4)策略二:如果堆比較大,則進行緩慢且不頻繁的垃圾回收,通常在遊戲停頓期間執行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章