표시된 각 코드 줄이 메모리 소비에 어떻게 영향을 미치는지 알고 싶습니다. 필자의 스프라이트 시트는 메모리가 4MB라고 가정합니다.스프라이트 시트 메모리 사용량 이해
CCSpriteBatchNode *spritesBgNode; // Line 1
spritesBgNode = [CCSpriteBatchNode batchNodeWithFile:@"sprites.pvr.ccz"]; // Line 2
[self addChild:spritesBgNode]; // Line 3
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"sprites.plist"]; // Line 4
sprite1 = [CCSprite spriteWithSpriteFrameName:@"sprite1"]; // Line 5
[spritesBgNode addChild:sprite1]; // Line 6
[spritesBgNode addChild:sprite1]; // Line 7
[spritesBgNode addChild:sprite1]; // Line 8
[spritesBgNode removeChild:sprite1]; // Line 9
[spritesBgNode removeSpriteFramesFromFile:@"sprites.plist"]; // line 10
[self removeChild: spritesBgNode]; // Line 11
i) 4MB 스프라이트 시트가 메모리를 소비하기 시작하는 라인은 무엇입니까?
ii) 라인 5로 인해 추가 메모리가 소모됩니까?
iii) 8 행 (다시 7 행 추가)의 경우 어떻게됩니까? 메모리에 어떤 영향을 줍니까?
iv) 라인 9와 라인 10은 메모리 소비에 어떤 영향을 줍니까? 그들은 기억을 해방합니까?
v) 배치 노드를 잠시 사용하지 않을 경우 11 행을 사용하는 것이 좋습니다. 나중에 다시 추가 할 때의 의미는 무엇입니까?
정확한 선과 바이트를 알고 싶다면 Instruments를 사용해야합니다. 텍스처는 메모리의 99 %를 사용하고 다른 라인은 최대 몇백 바이트를 추가합니다. – LearnCocos2D