Leak Canary로 메모리 유출 탐지
LeakCanary
스퀘어는 메모리 유출을 감지하는 프로그램 라이브러리square/leakcanary를 공개해 바로 사용해 보았는데 매우 편리했다.
A small leak will sink a great ship
Piwai가 쓴 Leak Canary 기사가 여기 있습니다.
LeakCanary: Detect all memory leaks!
요컨대
Piwai가 쓴 Leak Canary 기사가 여기 있습니다.
LeakCanary: Detect all memory leaks!
요컨대
If you want to eliminate OOM crashes, install LeakCanary now!
LeakCanary 가져오기 방법
Dependency에 leakcanary 추가dependencies {
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3'
}
LeakCanary는 애플리케이션을 초기화할 때만 초기화됩니다.public class ExampleApplication extends Application {
@Override public void onCreate() {
super.onCreate();
LeakCanary.install(this);
}
}
창고 안에 견본 항목이 있으니 한번 시험해 볼 수 있다.$ git clone [email protected]:square/leakcanary.git
$ cd leakcanary/library
$ ./gradlew leakcanary-sample:installDebug
메모리 유출이 발생하면 알림이 뜨고 클릭하면 액티비티가 열리고 누가 어떤 대상을 가졌는지 볼 수 있다.
그리고 메모리 유출 통지는 앱으로 설치돼 수시로 확인할 수 있다.이것은 샘플이 아니라 프로그램 라이브러리의 기능입니다. 항목에 한 줄만 추가하면 이 편리한 기능을 사용할 수 있습니다.
LeakCanary의 메모리 유출 탐지 방법
왜 한 줄만 쓰면 메모리 유출이 나오지?
dependencies {
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3'
}
public class ExampleApplication extends Application {
@Override public void onCreate() {
super.onCreate();
LeakCanary.install(this);
}
}
$ git clone [email protected]:square/leakcanary.git
$ cd leakcanary/library
$ ./gradlew leakcanary-sample:installDebug
왜 한 줄만 쓰면 메모리 유출이 나오지?
LeakCanary.install(application)
.정보 쌓는 거 어디서 났어요?
Debug.dumpHprofData(fileName)
.hproof는 바이너리입니다.
org.eclipse.mat
해상도를 사용하여 Snapshot으로 변환하고, 디스플레이를 편리하게 하기 위해 LeakTrace로 변환합니다.실제로 써봤어요.
당장 앱에 넣으면 메모리 유출!Leak Canary를 보니 폐기돼야 할 Activity가 참고를 갖고 있었고, 조사한 어느 Fragment에서 Bus의 unregister가 유출됐다.
한 줄만 들어가면 메모리 유출을 간단하게 알아낼 수 있어 좋다.우수한 스퀘어 엔지니어라도 메모리 유출을 놓치지 않기 때문에 사용하기 전에 Leak Canary에 가입하세요.
Reference
이 문제에 관하여(Leak Canary로 메모리 유출 탐지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rejasupotaro/items/4a8cfe0abda2d83145dd
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Leak Canary로 메모리 유출 탐지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rejasupotaro/items/4a8cfe0abda2d83145dd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)