内存泄漏
-
Profiler--确认数量并导出文件
确认数量1.png -
使用命令转换文件
hprof-conv heap-original.hprof heap-converted.hprof
-
使用Eclipse---MemoryAnalyzer打开文件
GC可回收.PNG
4.打开柱状图 Histogram
柱状图3.PNG
-
进入QQLIVE
柱状图3.PNG -
mege后进入界面找出泄漏点;并根据引用对象寻找代码
引用对象5.PNG
7.无法使用正常方式处理,如置null或者取消注册等方法,可以用反射。
try{
Field mCurRootViewField = InputMethodManager.class.getDeclaredField(attr);
mCurRootViewField.setAccessible(true);
//取对象
Object mCurRootView=mCurRootViewField.get(im);
if (null!=mCurRootView) {
Context context=((View)mCurRootView).getContext();
if(context==this){
//破坏GC链
mCurRootViewField.set(im,null);
}
}
}catch(Exception e){
e.printStackTrace();
}
内存抖动
垃圾桶很多,且一段时间内的分配和回收数量很多。
内存抖动.PNG
网友评论