Cocos2d x中的記憶體管理

2022-04-29 07:21:07 字數 389 閱讀 3237

cocos2d-x中內建了很多的容器類,每個容器類都是容納ccobject的物件,在物件被新增到容器中時,他的引用就增加了一。

下面舉乙個例子說明:

ccarray中有addobject方法,負責把乙個ccobject物件新增到這個容器中,在使用addobject新增進來的物件的引用都會加一。

void ccarray::addobject(ccobject* object

)

/*

*/

/**/)

可以看到在ccobject的物件被新增到容器中的時候哦,retain()方法被呼叫,物件的引用增加了。

所以在之後,應該主動release掉這個引用。

cocos2dx 記憶體管理

記憶體管理中經常遇到的問題 記憶體洩露,記憶體溢位。在cocos2dx中用的是引用計數和自動釋放池的技術,由於熟悉objective c語言,所以對這兩個概念不會很陌生。一 引用計數 引用計數是自動記憶體管理的基礎 在物件裡增加乙個引用計數,當外部引用增加時,計數器加1,當外部引用消失時,計數器減1...

cocos2d x 記憶體管理

呼叫了autorelease的物件,將會在自動 池釋放的時候被釋放一次。因為這個操作發生在 mainloop drawscene 後,這時候遊戲中所有的邏輯已經執行完畢,正是釋放無效資源的最佳時機。所以乙個物件被create後,將被放進pool中,其ref 數為1,當遊戲整個邏輯跑完,如果沒有增加r...

cocos2dx 記憶體管理

我們知道,cocos2dx中使用了引用計數的方式去管理記憶體,不需要我們手動delete的去釋放記憶體。那麼cocos2dx中是怎麼實現引用計數的記憶體管理方式的呢?cocos2dx中的記憶體管理用到了兩個工具 引用計數器 ref 自動 池 autoreleasepool 引用計數器 ref ref...