2011-10-28 4 views
1

iOS 기기 용 게임이 있습니다. 며칠 전에 다른 장치에서 메모리 문제가 발생했습니다.이상한 IOS 메모리 문제

내가하고있는 일 : 1. 내 게임에서 장치를 삭제하십시오. 2. xCode에서 "제품 -> 청소"하십시오. 3. 장치에서 실행하십시오. 4. Instruments (활동 모니터)의 메모리를보십시오. 5. 다른 장치를 가져갑니다. 6. 첫 번째 단계부터 반복합니다.

iPad 1 (iOS 4.3.1 포함) : 게임이 정상적으로 작동하며 51MB 메모리가 기본 메뉴에서 사용되며 105MB가 첫 번째 수준에서 사용됩니다. iOS 5를 사용하는 iPad 1, iOS 5를 사용하는 iPod 4 : 게임이 충돌 함, 기본 메뉴에서 77MB, 첫 번째 레벨에서 130MB 이상.

누구나 동일한 문제가 있습니까? 최신 iOS 때문입니까?

2011년 10월 31일 여섯 중단 시간과 장치 사이에 점프하는 저에게이 있습니다 : 아이폰 OS 4.3.1에서 glTexSubImage2D 기능, 느릅 나무가 openGLES.framework에서 찾을 수는 메모리를 할당하지 않습니다.

iOS의 동일한 함수 호출 5.0 glTexSubImage_Exec

->

gleSynchronizeTextureLevelOnCurrentDevices ->

gfxUploadPluginTextureLevel ->

gfxAllocateTextureLevel ->

의 malloc

어쨌든 픽셀의 파라미터는 glTexImage2DglTexSubImage2D이며, 각 스프라이트에 대해 30 %의 추가 메모리가 필요했습니다. 픽셀에서 4.3.1의 차이는 매개 변수는 괜찮 았지만 5.0에서는 그렇지 않습니다. 그것이 버그인지 아닌지 나는 모른다. 감사합니다.

+1

왜 충돌 그림이있는 경우. 콘솔 충돌 메시지 및 스택 추적을 게시하십시오. – zaph

답변

0

메모리가 실제로 어디에 있는지 알아 내야합니다. 인 스트 루먼트는 좋은 출발점이지만, 여러 점에서 힙샷을 찍어 비교하고 싶을 것입니다. (나는 당신이 이미 누출을 식별하기 위해 누출을 식별하기 위해 메모리 누출을 막론하고 있다고 가정합니다.)

+0

좋습니다, 감사합니다. 나는 그 문제를 해결했다. 해결책은 질문 텍스트에 있습니다. –