歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Cocos2d-x(3.0+)內存管理框架和機制

Cocos2d-x用了一種引用計數的方式來管理內存對象,通過類Ref、AutoreleasePool和PoolManager來完成。

Ref為引用計數類,其構造函數是protected的訪問類型,當Ref的對象被創建的時候它的引用計數為1

在對象創建的時候會調用create,然後調用autorelease,將對象放入對象池(AutoreleasePool的一個對象中)方便後面的統一管理,

retain增加引用計數,release調用時會立刻減少引用計數

引擎初始化後就會創建一個默認的自動釋放對象列表AutoreleasePool並加入到PoolManager裡面進行管理

每次主循環,都會有一次pool的清理,把那些計數為0的object都刪除掉。這就是cocos2dx中的內存管理方法

PoolManager為單例模式,不用編碼者來維護,由引擎自動完成。

上圖中包含了三個類的主要成員變量和成員函數,其中最後一列匯總白色的為成員函數,橙色的是成員變量,cocos引擎的編碼者命名極其規范,見字釋義,膜拜!可以參照這個圖看源碼。

剖析cocos2d-x之Action實現 http://www.linuxidc.com/Linux/2013-04/82436.htm

Ubuntu下cocos2d-x開發環境搭建及配置 http://www.linuxidc.com/Linux/2013-03/81876.htm

Copyright © Linux教程網 All Rights Reserved