2009-09-26 2 views
1

저는 런타임 메모리가 최대 6-7MB까지 증가하는 어플리케이션을 개발 중입니다. 응용 프로그램을 실행할 때 제대로 작동하지만 때로는 장치에서 깨지거나 실제 화면 대신 흰색 화면이 표시됩니다. 일부 테스트를 수행했을 때 didRecieveMemoryWarning 이벤트가 트리거되었음을 알게되었습니다.iPhone 및 iPod에서 최대 런타임 메모리를 사용할 수 있습니까?

이미지의 배열을 얻기 위해 이미지 애니메이션 함수를 호출 할 때마다 많은 애니메이션을 사용하는 것처럼 이미지가 비코입니다. imageWithName을 사용하고 있기 때문에 매번 전화해야합니다. 또한 나는 그것을 소유하지 않기 때문에 이미지에 사용 된 메모리를 공개하지 않아도됩니다. 나는 이것이 이것을 다루는 올바른 방법이 아니라고 생각한다. 이 문제를 해결할 수있는 좋은 방법이 있습니까? 누구든지 더 좋은 아이디어가 있거나 이것이 문제가되지 않습니다.

코드가 코드 사이에 깨짐이 없다는 것을 모르는 경우 시뮬레이터에 코드가 표시되지 않습니다.

답변

1

메모리의 최대 용량은 여러 요인에 따라 크게 달라질 수 있습니다.

코드에서 모든 바이트를 최적화하는 것만 큼 큰 비효율 성과 역방향으로 작업하는 것부터 설정 크기의 메모리를 대상으로해서는 안됩니다. Instruments의 ObjectAlloc 도구를 사용하여 가장 많은 할당을 담당하는 요소에 대한 통찰력을 얻을 수 있습니다. 또한 각 할당을 유도 한 호출 순서 (스택)를 알 수 있습니다.

CoreAnimation 예제를 통해 더 많은 정보를 얻을 수 있습니다. 유용하고 구체적인 예를 들어 보겠습니다.

0

삭제할 수있는 이미지에서 메모리 사용량을 얻었 으면 [[UIImage alloc] initWithContentsOfFile : ...]을 사용하여 캐시 및 폐기 할 수 있습니다.

그러나 긍정적 인 문제가 아닌 것 같습니다. 누수 및 객체 할당과 같이 Apple에서 제공하는 프로파일 링 도구 중 일부를 익히는 것이 좋습니다. 이것은 폐기 할 수있는 큰 개체 할당을 가리킬 수 있습니다.

관련 문제