2016-06-23 1 views
0

나는 거의 각 화면에서 많은 화면, 사용자 정의보기 및 API 호출을하는 하나의 응용 프로그램을 만들고 있습니다. 때때로 사용자가 앱을 오랫동안 사용하면 Out of Memory 문제로 인해 앱이 다운되는 경우가 있습니다. 이상적으로는 응용 프로그램을 개발하는 동안 모든 지침을 따르고 ARC는 메모리 사용을 관리합니다. 그런 메모리 문제를 피하는 가장 좋은 방법은 무엇입니까?iOS의 메모리 부족 문제를 방지하는 가장 좋은 방법은 무엇입니까?

+1

저는 매우 효율적으로 작동하는 많은 앱을 보았습니다. ARC가 앱의 충돌을 막을 수는 없습니다. 메모리 사용으로 인해 응용 프로그램이 충돌하는 경우 코드에 문제가있는 것입니다. 충돌에 대한 세부 정보를 제공하고 코드를 추가하십시오. –

+0

FYI ARC는 메모리 사용을 처리하지 않습니다. –

+0

알았습니다. 충돌 보고서를 받고 곧 제공 할 예정입니다. – Pushkraj

답변

0

코드가 내장 된이 문제와 함께 당신을 도울 수있는 메모리 프로파일 러 - dealloc을 호출하지 않을 경우에 사용하는 방법에 대한 자습서,이 http://www.raywenderlich.com/23037/how-to-use-instruments-in-xcode

그렇지 않으면 도움이 될 수 있습니다, 그것은 수 유지주기의 증상 (두 객체가 서로에 대해 강력한 참조를 유지하므로 할당이 해제되지 않습니다.)

+0

... 이것은 "약한 참조"라는 개념에 도움이 될 수있는 문제입니다. 이 개념은 일반적으로 정리 될 수있는 자체 참조 데이터 구조를 생성하는 맥락에서 제공되지만, 메모리 (예 : ...)가 처리 될 수있는 내용에 대한 참조를 만들려는 경우에도 유용합니다 빡빡 해지기 시작합니다. (문제의 객체가 수확되면 포인터가 "nil"로 설정되므로 테스트해야합니다. 예측할 수없는 경쟁 조건이 발생할 수 있습니다.) –

+0

... 여전히 "이것은 아마도 디자인 문제 일 것"이라고 말했다. 응용 프로그램에 "화면이 많으면"모든 화면에서 동시에 모든 데이터 구조를 유지할 수는 없습니다 (!). 메모리 관리자의 행동에 너무 많이 의존하는 대신 "모든 경쟁 조건과 디버그 추함이 더해지기 때문에"디자인 (!) 문제로이를 해결해야 할 필요가 있습니다. 데이터 구조는 명시 적으로 폐기되고 재 작성되어야 할 필요가 있습니다. 모바일 세상에서 RAM이있는 STINGY (!)이어야합니다! –

관련 문제