Android/Android 더하기

메모리 프로파일러를 사용하여 앱의 메모리 사용량 검사

728x90
반응형

메모리 누수

 

 

메모리 프로파일러

앱의 메모리 사용 현황을 실시간 그래프로 보여주며,

메모리 프로파일러를 사용하여 힙 덤프를 캡처하고,

가비지 컬렉션을 강제 실행하고 메모리 할당을 추적할 수 있습니다.

 

메모리 프로파일링을 해야하는 이유

Android에서는 관리되는 메모리 환경을 제공합니다. 즉, 앱에서 일부 객체를 더 이상 사용하지 않는다고 판단되면 가비지 컬렉터가 사용되지 않는 메모리를 힙에 돌려보냅니다. Android에서 사용되지 않는 메모리를 찾는 방법은 끊임없이 개선되고 있지만, 모든 Android 버전의 특정 시점에서 시스템이 코드를 일시중지해야 합니다. 대부분의 경우 일시중지를 감지할 수 없습니다. 하지만, 시스템에서 메모리를 수집할 수 있는 것보다 빠르게 앱에서 메모리를 할당하는 경우 컬렉터가 할당하기에 충분한 메모리를 확보하는 동안 앱이 지연될 수 있습니다. 이로 인해 앱이 프레임을 건너뛰고 눈에 띄게 느려질 수 있습니다.

앱이 느려지지 않더라도 메모리 누수가 발생할 경우 앱이 백그라운드에 있는 동안에도 메모리를 유지할 수 있습니다. 이 동작으로 인해 불필요한 가비지 컬렉션 이벤트가 강제로 실행되어 시스템의 나머지 메모리 성능이 저하될 수 있습니다. 결국 시스템에서 메모리를 확보하기 위해 앱 프로세스를 강제 종료해야 합니다. 그러면 사용자가 앱으로 돌아올 때 앱을 완전히 다시 시작해야 합니다.

이 문제를 방지하려면 메모리 프로파일러를 사용하여 다음을 처리해야 합니다.

타임라인에 성능 문제를 일으킬 수 있는 바람직하지 않은 메모리 할당 패턴이 있는지 찾아봅니다.
자바 힙을 덤프하여 특정 시점에서 어느 객체가 메모리를 모두 사용하는지 확인합니다. 장기간 여러 번 힙을 덤프하면 메모리 누수를 식별하는 데 도움이 될 수 있습니다.
정상적인 사용자 상호작용과 극단적인 사용자 상호작용 동안 메모리 할당을 기록하여 코드에서 단기간에 너무 많은 객체를 할당하거나 누출되는 객체를 할당하는 부분을 정확히 파악합니다.
앱의 메모리 사용을 줄일 수 있는 프로그래밍 방법에 관한 정보는 앱 메모리 관리를 참고하세요.

 

 

 


메모리 프로파일러 개요

 

 


모리 할당 보기

 

 


힙 덤프 캡처

 

 


메모리 프로파일러에서 누수 감지

 

 

 

 

728x90
반응형