2010-05-26 5 views
1

내가 탐색을 기반으로 템플릿을 가지고, 최초 메모리 누수가 아래에 올 때 어떻게에서 이것을 제거하는지.메모리 누수가 아이폰 응용 프로그램이로드는

기본 누출 인 경우 걱정할 필요가 없습니다. 그러나 그것이 아니라면 누출을 제거 할 방법을 찾아야합니다.

+2

, 당신은 감자와 부추 수프를 만들 수 있습니다. –

답변

2

완벽하게 정답을 deanWombourne에 조금 확장에 대해 생각보다 시간을 보낼 수있는 더 나은 방법이 전혀 그것에 대해 걱정하지 마십시오 있다면 ..

누설 도구는 앱에 대한 참조가 없으므로 앱의 정상적인 과정에서 사용하지 않을 메모리를 보여줍니다. 이것 자체로는 아무 것도 없습니다. 앱이 종료 될 때 free'd가됩니다. 많은 프레임 워크 코드가이 아주 작은 메모리 덩어리를 할당하고 남겨 둡니다. 실수인지 또는 앱 실행 방식에 필수적인지 전혀 알 수 없습니다. 어쨌든, 우리는 그들이 완전히 정상임을 받아 들여야합니다.

누출은 이러한 메모리 덩어리를 '누수'로 식별하고 나빠질 것입니다.하지만 실제로는 누수가 아니므로 식별 할 수 있도록 도와줍니다.

'실제'누수는 여러 번 실행될 수 있고 해제되지 않은 메모리를 할당하는 코드에 있으므로 모든 메모리가 사용되고 응용 프로그램이 중단 될 때까지 시간이 지남에 따라 더 많은 메모리가 소모됩니다.

아무리 오래 사용해도 응용 프로그램을 사용하는 경우 일반적으로 걱정할 필요가없는 사과 프레임 워크에서 128 바이트의 '누수'가 발생합니다.

그러나 앱을 사용하면 버튼을 누를 때마다 문자열이 몇 바이트인지에 관계없이 절대로 출시되지 않는 새 문자열이 할당됩니다. 사용자가 버튼을 충분히 누르면이 버튼이 소비됩니다 모든 메모리가 앱에 사용 가능 해지고 결국에는 충돌이 일어납니다. 이것은 당신이 조심해야 할 누출의 종류입니다.

누설 도구는 현실적으로 두 종류의 차이점을 알 수는 없지만 수행 할 수 있어야합니다. 예를 들어 인스턴스가 하나만 있고 앱의 전체 수명 동안 존재해야하는 것과 같은 일종의 싱글 톤 객체가 필요할 수 있습니다. 앱을 시작할 때 객체를 만들고 현실적으로이 객체를 해제 할 필요는 없으며 앱이 종료 될 때 종료 될 수 있습니다. 누출은 누설로 표시 될 것이고, 당신이하고있는 일을 모르는 것을 의미한다고 생각하는 다른 개발자들은 작은 자식처럼 사장에게 달려 가서 "그는 정말로 새는 코드를 작성하고 있습니다. reeeeally 나쁜 ". 그리고 프로그래머가 아닌 당신의 상사는 나쁜 말을하기 때문에 진지하게 받아 들일 것입니다. 어쨌든 평판 좋은 대학의 CS에서 2.2 점을 긁어 내서 그가 무슨 말을하고 있는지 알아야합니다. 실제로 그것이 완전히 합리적이고 정확히 당신이하고자하는 일입니다.

그래서 누수 도구를 사용하여 코드에서 앱을 망칠 버그를 찾으십시오. Apple 프레임 워크에서 '유출'된 모든 바이트에 대해 걱정하지 마십시오.

0

이 하나 떨어져 128 바이트 누출 다음이 :)

+0

"답변에 감사드립니다." – iPhoneDev

관련 문제