• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Memory management in cocos2d x - Le Duy Vu
 

Memory management in cocos2d x - Le Duy Vu

on

  • 2,318 views

 

Statistics

Views

Total Views
2,318
Views on SlideShare
2,296
Embed Views
22

Actions

Likes
2
Downloads
16
Comments
0

1 Embed 22

http://www.scoop.it 22

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Memory management in cocos2d x - Le Duy Vu Memory management in cocos2d x - Le Duy Vu Presentation Transcript

    •  Reference Count and AutoReleasePool  Texture Cache  Optimize memory in game.
    •  Reference Count : is an old approach of memory management in C/C++ projects.  Example :
    •  AutoReleasePool:  CCAutoreleasePool can not be NESTED.  CCAutoreleasePool cannot be used in multi-thread.
    •  A *a = new A(); a->autorelease() .  From here you must not interested release/delete this object .  Autorelease pool will delete/release object ,but when?
    •  //in init scene m_pNode = CCNode::create();  m_pNode = new CCNode(); m_Node->autorelease();  //1 funciton orther in frame orther m_pNode->setPosition(ccp(0, 0));
    • class A { CCNode *m_pNode; public: // pointer dangling!! ~A() { SAFE_DELETE(m_pNode); }; void setNode(CCNode *pNode) { m_pNode = pNode; }; }  What happen if at time call ~A(), pNode deleted?
    • class A { CCNode *m_pNode; public: ~A() { SAFE_RELEASE(m_pNode); };// OK now void setNode(CCNode *pNode) { m_pNode = pNode; pNode->retain(); }; }
    •  Textures are cached which can later be used for drawing.
    •  CCTextureCache  CCSpriteFrameCache
    •  The CCSpriteFrameCache singleton is a cache of all sprite frames. Using a spritesheet and its associated xml file we can load multiple sprites into the cache. From here we can create CCSprite objects with sprites from the cache.
    •  Avoid loading PNG/JPG Textures.  Load textures from largest to smallest.  Use .pvr.czz file format.  Use particles.
    •  Avoid loading PNG/JPG Textures : In loading texture size 2M .you have to 4M memory.
    • Load textures from largest to smallest :  If you must load 4 file (4M) and 1 file(16M)  If load 4 file(4M) before load file 16 M : max- memory use : 4 x 4 + 16 x 2 = 48 M.  If load 4 file(4M) after loaded file 16M : max- memory use : 16 + 4 x3 + 4 x 2 = 36 M.