cocos2d x記憶體管理機制

2021-06-15 05:15:55 字數 648 閱讀 3725

c++記憶體機制,採用new關鍵字例項化的物件,必須在不使用的時候手動delete掉,否則new的時候開闢的記憶體就不能被**,造成記憶體洩露

npc * n1=new npc();

if(exit=0)

cocos2d-x 記憶體管理的方式,cocos2d-x採用引用計數的方式進行記憶體管理,當乙個物件的引用計數為0的時候,就會被引擎自動delete掉

在cocos2d-x中絕大多數類繼承ccobject

ccobject::ccobject(void)

void ccobject::release(void)  //減少引用

}void ccobject::retain(void) //增加引用

//自動處理

ccobject* ccobject::autorelease(void)

ccobject::~ccobject(void)

}自動釋放池的釋放是在**呢?大家可以研究下原始碼

在除錯過程中可以跟蹤物件的

m_ureference = 1;             //引用計數

m_bmanaged = false;       //是否自動autorelease

這2個值來檢查記憶體使用。

法則: 只要retain的放對應相同的release

cocos2dx 記憶體管理機制(2)

首先我們要知道,cocos2d x的引擎執行緒是單執行緒的,它不停的呼叫乙個主迴圈來繪製當前的scene 同時對一些自動釋放的物件進行管理。一 現在開始定位,我們知道win32 下cocos2dx程式入口 run方法裡面有這麼一句 ccdirector shareddirector mainloop...

Cocos2dx 記憶體管理機制(1)

1.引用計數機制 要了解cocos2dx引用計數的機制,首先我們來看看ccobject這個類 class cc dll ccobject public cccopying friend class ccautoreleasepool 說明 當m ureference 0時會自動釋放該物件,每引用一次...

cocos2dx 學習( )記憶體管理機制

一 題記 關於cocos2dx 的記憶體管理機制,想必大家都能清楚說出是通過引用計數 reference count 和自動釋放池 autoreleasepool 但是不知大家是否知道其中具體的執行的細節呢?反正在寫這篇blog之前我是一知半解的,而且在粗略的看了下 poolmanager 的原始碼...