2012-06-06 4 views
0

iPad의 메일 클라이언트 (기본 앱 클라이언트와 유사)에서 성능을 높이기 위해 코어 데이터 프레임 워크를 캐시로 사용하고 있습니다. 내 응용 프로그램은 약 4.5 - 5 MB의 힙 메모리를 사용하고 메모리 오버플로 (할당 도구를 사용하여이를 감지)로 인해 충돌합니다. 메모리를 줄이려고하면 내보기, 데이터 구조 (폴더 및 모든 메일 저장) 및 tableviews를 캐시 할 수 없기 때문에 성능이 매우 느리고 느려집니다.내 iPad 애플 리케이션을위한 더 많은 메모리가 필요합니다.

내 crashLogs를 확인한 결과 OS가 강제로 내 앱을 종료했음을 확인하는 내 앱 앞에 jettisoned가 표시되었습니다.

저는 이러한 제한을 감지하기 위해 계측기를 사용했습니다. Please find the attached image here 이것은 앱이 다운되기 직전에 찍은 내 사진입니다.

시뮬레이터에서 내 앱을 테스트했으며 6 - 7MB의 힙 메모리에서 안정화되었습니다. OS에 더 많은 메모리를 요청하거나 코드에서 약간의 재 설계로 충돌을 피할 수있는 방법이 있습니까?

모든 제안이나 도움을 주시면 감사하겠습니다.

+1

데이터를 캐시하기 위해 여러보기를 사용하는 대신보기를 재사용해야한다고 생각합니다. 메모리에있는 데이터를 캐시하면됩니다.하지만 너무 많은 경우 디스크에 캐시해야합니다. – nhahtdh

+3

메모리 오버플로는 할당되지 않은 메모리를 건드린 것을 의미합니다 (할당 된 블록의 끝 부분을 초과하여 작성했거나 손상된 포인터가있는 경우 일 수 있음). 나는 이것이 힙 사이즈 문제라고 생각하지 않는다. – wrock

+0

예, 핵심 데이터를 사용하여 디스크에 캐시합니다. 나는 재사용하지 않는다. 그러나 나는 그들을 풀어 놓는다. –

답변

1

메모리 6-8MB는 절대로 문제가되지 않습니다. 메모리를 비우거나 디버그 버전을 실행 중이고 좀비가 켜져있는 경우 기본값은 절대로 좀비를 삭제하지 않는 것입니다. NSZombiesEnabled = YES 및 NSDeallocateZombies = NO는 아무 것도 삭제되지 않으므로 메모리가 누수되는 것처럼 보입니다.

+0

내 앱이 매력처럼 작동합니다. –

관련 문제