2012-11-15 2 views
1

계측기 도구를 사용하여 응용 프로그램에서 누수를 찾습니다. 내 응용 프로그램에서 Leaks를 점검하는 동안, 나는 또한 Allocation 탭을 볼 수 있습니다.계기 도구에서 할당 사용

지금까지 악기 도구에서 할당 탭을 사용한 적이 없습니다. 방금 무슨 일이 있었는지 확인하고 #All Allocations * 필드를 볼 수 있습니다. 응용 프로그램에서 사용하는 Overall Bytes를 보여줍니다. 나는 크기가 계속 증가하는 것을보기 위해 충격을받습니다.

할당이 아닌 메모리 누수에 대해 걱정해야합니까? # 모든 할당은 현재 응용 프로그램 크기 또는 전체 응용 프로그램 크기를 의미합니까?

+0

메모리 모니터도 확인하십시오. http://stackoverflow.com/questions/5518918/instruments-with-ios-why-does-memory-monitor-disagree-with-allocations – iDev

답변

2

할당은 App 메모리 풋 프린트를 표시하는 데 유용합니다. modalViewController를 표시하고 닫은 다음 다시 실행하면 응용 프로그램 라이브 바이트가 계속 증가하는 것을 볼 수 있습니다. 잘못된 것입니다. 메모리 누수는 할당 된 메모리를 확인하고 그에 대한 참조를 잃어버린 경우에 유용합니다. ARC를 사용하면 도움이되지만 메모리 누수 (예 : 순환 참조)가 발생할 수 있습니다. 할당은 또한 메모리가 할당되고 해제되지 않은 위치를 이해하는 데 도움이됩니다. 예를 들어 NSArray은 사용하지 않는 개체로 가득 차 있지만 여전히 살아 있습니다. 질문 사항 :

1) 둘 다 걱정해야합니다.

2) 라이브 바이트에는 현재 응용 프로그램 크기 (가상 메모리)가 표시됩니다. 전체 응용 프로그램 크기은 정확히 "선택한 시간 범위의 총 할당 수"라고합니다.

this을 확인할 수도 있습니다.

+1

좋은 답변입니다. 그저 앱에서 라이브 바이트를 늘리면 메모리 경고가 발생하고 앱이 다운 될 수 있다는 점을 덧붙이고 싶습니다. 따라서 앱 충돌을 피하기 위해 일부 할당량 사이에 할당을 유지하는 것이 중요합니다. –

+1

메모리 경고는 내가 테스트 한 것에서도 발생할 수 있습니다 (필요한 메모리/시간). 아무런 문제없이 메모리 문제없이 80MB의 라이브 앱을 즐길 수 있습니다. 그러나 갑자기 80MB로 돌진하기 시작한 1MB 앱이 있다면, 몇 가지 경고가 뜹니다. – Peres

+0

@ JackyBoy. 정말 고맙습니다. 귀하가 제공 한 링크와 귀하의 설명을 통해 라이브 바이트 및 전체 바이트에 대해 명확히 알 수 있습니다. – Cyril

1

모든 할당 행에는 실제 바이트 열 아래의 힙 크기와 전체 바이트 열에 할당 된 총 힙 바이트 수가 표시됩니다. 메가 바이트를 할당하면 두 열이 모두 1MB 씩 증가합니다. 메가 바이트를 해제하면 라이브 바이트가 1MB 줄어들지 만 전체 바이트는 변경되지 않습니다.

라이브 바이트는 버림되거나 누수 된 메모리를 검색하는 데 유용합니다.

전체 바이트는 일반적으로별로 유용하지 않습니다. 성능에 문제가있을 때이를 사용하고 과도한 할당 변동 때문인지 여부를 확인하고자 할 수 있습니다.

관련 문제