Native Size: 이 객체 유형에서 사용하는 총 네이티브 메모리의 양(바이트). 이 열은 Android 7.0 이상의 경우에만 표시됩니다.
Android에서 Bitmap 등 일부 프레임워크 클래스에 네이티브 메모리를 사용하므로 자바에서 할당된 일부 객체의 경우 여기에 메모리가 표시됩니다.
Shallow Size: 이 객체 유형에서 사용하는 총 자바 메모리의 양(바이트).
Retained Size: 이 클래스의 모든 인스턴스로 인해 유지되는 총 메모리 크기(바이트).
메모리 프로파일링 기법
메모리 프로파일러를 사용하는 동안 앱 코드에 스트레스를 주어 강제로 메모리 누수를 유발해야 합니다. 앱에서 메모리 누수를 유발하는 한 가지 방법은 힙을 검사하기 전에 잠시 동안 앱이 실행되도록 하는 것입니다. 메모리가 힙의 할당 상한까지 서서히 누수될 수 있습니다. 하지만 누수가 적을수록 더 오랫동안 앱을 실행해야 누수를 확인할 수 있습니다.
다음 중 한 가지 방법으로 메모리 누수를 트리거할 수도 있습니다.
기기가 다양한 액티비티 상태에 있는 동안 기기를 세로 모드에서 가로 모드로 회전했다가 다시 되돌리기를 여러 번 반복합니다. 기기를 회전하면 앱에서 Activity, Context 또는 View 객체를 누출하는 경우가 많을 수 있습니다. 시스템에서 Activity를 다시 만들고, 앱에서 이러한 객체 중 하나의 참조를 다른 곳에 유지하는 경우 시스템에서 가비지 컬렉션할 수 없기 때문입니다.
다양한 액티비티 상태에 있는 동안 개발자의 앱과 다른 앱 간을 전환합니다(홈 화면으로 이동한 다음 개발자의 앱으로 돌아옵니다).
shallow size / retained size
뜻밖의 수확 memory leak
이 클래스를 유지하기위해, retained size 가 중요하지.
참고사이트
안드로이드 문서 : https://developer.android.com/studio/profile/memory-profiler?hl=ko
안드로이드 예시 : https://www.youtube.com/watch?v=LGVbpobV-Yg