Google은 액티비티 간 이동 중에 30MB 이상의 메모리 할당에서 500MB 이상으로 뛰어 넘는 앱을 보유하고 있습니다. 그런 일이 발생하는 동안 할당을 추적 할 수 있으며 메모리에서 무엇이 보유되고 있는지 볼 수 있지만 힙의 HPROF 파일을 만들어서 MAT에로드하고 그 메모리를 사용하는 방법을 더 잘 이해할 수 있습니다.Android Studio에서 메모리 할당량이 많은 힙 덤프가 끝나지 않습니다.
그러나 덤프를 만들려고하면 점선과 회 전자가 메모리 그래프에 표시되고 끝나지 않고 (겉으로보기에) 계속 유지됩니다. 문제없이 더 낮은 할당량으로 덤프를 만들 수는 있지만 500+ MB가 할당 된 상태에서 할당량을 할당 할 수는 없습니다.
해당 시나리오의 알려진 문제점을 찾았지만 찾을 수 없습니다. 문제 해결을 위해 변경할 수있는 설정이 있습니까? 아니면 문제를 해결하기 위해 할 수있는 일이 있습니까? 힙에 대한 좋은 분석이 없다면, 나는 기억에 어떤 일이 일어나고 있는지 눈이 멀었다.
참고 : 저는 메모리 문제 자체에 대한 도움을 찾고 있지 않습니다. ATM, 저는 주로 힙 덤프를 어떻게 얻을 수 있는지에 관심이 많습니다.
500MB는 프로세스의 힙 한도를 훨씬 넘어야하므로 MAT가 얼마나 유용 할 것인지 잘 모르겠습니다. 하지만 문제가되는 상태에 도달 할 수있는 확실한 방법이 있다면 테스트 케이스를 작성하고 HPROF 파일을 얻는 것이 더 좋은지 확인하십시오 (Debug.dumpHprofData()를 통해) (https : // developer.android.com/reference/android/os/Debug.html#dumpHprofData(java.lang.String)). – CommonsWare
터미널 메소드에 시도해 보겠습니다. 고마워요! 불행히도이 문제를 재현 할 수있는 확실한 방법은 없습니다. 문제가없는 날 동안 앱을 사용하고 갑자기 스파이크가 보이면 일단 제거하고 다시 설치하면 문제가 다시 발생합니다. 상태. 그것은 아주 드문 일입니다. – jkane001
@commonsware 터미널 명령 트릭을 해냈어, 고마워! 답변을 제출하면 기꺼이 받아 들일 것입니다. – jkane001