2012-06-21 4 views
1

저는 Instruments와 함께 놀고 있습니다. 그리고 저는 방금 메모리 누수를 기록/프로파일 링했습니다. 메모리 누수가 거의 없었지만, 앱이 방금 열렸을 때도 압도적 인 양의 할당이 계속됩니다. 다음은 10 초 미만으로 앱을 사용한 후의 스크린 샷입니다.인스트루먼트의 메모리 할당량이 너무 많습니까?

AFTER 10 SECONDS???

그리고 난 그냥 증가와 계속 증가 응용 프로그램을 계속 사용한다.

는 이상한 부분은 할당의 대부분은 내가 좋아하는 모르는 클래스에서 오는됩니다 :

재단

고도

lbdispatch.dylib

을하지만 그것은에서 수 SBJson과 JSon과 XML을 위해 가져 와서 추가 한 다른 클래스들.

그러나 이것은 많은 메모리 할당입니까? 너무 많이 나쁘냐 ???

+0

스크린 샷에서 얼마나 많은 메모리를 사용하고 있는지 알 수 없습니다. 그러나 채택 된 메모리가 현재 화면에 사용되고 있다면 문제가되지 않습니다. 개체 목록을보고 제거 할 수없는 개체를 찾을 수 있습니다. – nhahtdh

+0

그냥 업데이트 ... 5 분 안에 약 150MB였습니다 – MCKapur

답변

3

네가 뭘하고 있느냐에 따라 다르다. 예를 들어 많은 문자열을 할당하면 1000 개의 문자열을 할당 할 수있다.하지만이 할당은 나쁜 것은 아니지만 애플리케이션의 로직 뷰에 달려있다. 한 번에 모든 문자열을 필요로하고 응용 프로그램의 모든 단계를 통해 할당하고 살아야 할 필요가 있다면 아무 것도 할 필요가 없습니다. 응용 프로그램에 메모리가 많이 필요합니다.

한편, 응용 프로그램을 논리적으로 구조화하는 몇 가지 다른 방법을 찾을 수 있습니다. 예를 들어 필요에 따라 1000 개의 문자열 만 할당 할 수 있습니다. 당신이 할 수있는 경우 앱이 많은 메모리를 필요로하며, 당신은 다른 솔루션

을 해달라고 지연로드, 또는 캐싱과 같은 몇 가지 기술을 사용하는 방법은 없습니다 그러나 경우

매우 추상적 인 대답이다 게으른 로딩, 캐싱, 할당 풀을 사용하도록 응용 프로그램을 재구성하십시오. 더 좋을 것 같아요.

참고 : iOS SDK가 응용 프로그램에서 메모리 경고 콜백을 올바르게 구현하도록 도와 줄 수 있습니다. 경고 메시지가 나타나면 현재 필요하지 않은 리소스를 해제하기 시작하십시오.

+0

그냥 업데이트 ... 약 5 분 안에 약 150MB였습니다 – MCKapur

1

또한 좀비가 있습니까? 좀비는 기본적으로 할당을 실제로 제거하지 않으므로 메모리 할당이 해제되지 않습니다. 좀비가 꺼진 상태에서 항상 메모리 누수 여부를 테스트하십시오.

관련 문제