잠재적 인 중복 될 수 있지만 내 문제에 대한 apropriate 대답을 찾을 수없는 경우 미안 해요. 그래서 좋은 자료를 참고할 수 있다면, 내가보기에 더 기쁠 것입니다.안드로이드 미묘한 메모리 누수 분석 MAT
여기에 문제가 있습니다. 저는 앱을 실행하는 동안 미세한 메모리 누수를 관찰했습니다. 따라서 16 시간 동안 실행 한 후에 힙 덤프는 Eclipse Memory Analyzer를 통해 실행되며 메모리 누수가 의심 스러울 때 많은 쓰레드가 쓰레기 수집되지 않는다고 제안합니다. 힙은 약 16 시간 후에 3MB 증가합니다. - 왼쪽 패널은 5 분 동안 응용 프로그램을 실행 한 후, 그리고 오른쪽 패널 (16) 이후
private WorkerThread mWorkerThread;
private static Runnable mUploadTask = new Runnable() {
@Override
public void run() {
Object[] data = dataQueue.poll();
if(data != null) {
uploadPacketviaAMQP((String)data[0], (String)data[1]);
}
};
private static class WorkerThread extends HandlerThread{
private Handler mWorkerHandler;
public WorkerThread(String name) {
super(name);
}
public void postTask(Runnable task){
mWorkerHandler.post(task);
}
public void prepareHandler(){
mWorkerHandler = new Handler(getLooper());
}
}
그래서 여기가 MAT 화면 잡고 있습니다 : 여기
내가 다시 땅에 작업을 실행하는 데 사용되는 코드입니다 시간. 참조가 재귀적이고 이리저리 뛰어 오르며 어떤 구체적인 대상으로 이어지지 않기 때문에 그것은 나에게 어떤 의미가 없습니다.는이 문제를 어떻게 디버깅에 대해 가야하나요?
감사합니다.