如何在项目中查找内存泄漏以及有哪些帮助工具?
来源:互联网 发布:淘宝首页下拉看懂电影 编辑:程序博客网 时间:2024/05/20 16:36
相信很多人有过这种情况,想优化项目,却无从下手,而内存泄漏就是一个很大的模块,那么如何在现有的项目中查找内存泄漏呢?
1.确定是否存在内存泄漏
使用MAT内存分析工具
我们可以反复执行某一个操作并同时执行GC排除可以回收掉的内存,观察data object(Heap视图中的一个数据对象)的Total Size值,正常情况下Total Size值会稳定在一个i额有限的范围内,也就是说代码良好,没有泄漏情况,反之,如果随着操作次数的增多Total Size的值越来越大,可以初步判断这个操作导致了内存泄漏
2.找怀疑对象
MAT对比操作前后的hprof来定位内存泄漏的是什么数据对象
3.MAT分析hprof来定位内存泄漏的原因所在
过滤出怀疑对象,然后分析持有此类对象的外部对象,然后再过滤掉一些弱引用、软引用、虚引用,因为他们可以被GC回收,不属于内存泄漏。
逐个分析每个对象的GC路径是否正常,此时就是要进入代码分析此时这个对象的引用持有是否合理。
性能优化的帮助工具:
1.MAT
2.Mamory Monitor
3.Heap Tool
4.Allaction Tracking
5.LeakCanary
6.Lint工具
PS:个人觉得LeakCanary最方便,可以直接在手机端查看内存泄漏。
0 0
- 如何在项目中查找内存泄漏以及有哪些帮助工具?
- 内存泄漏有哪些场景以及解决方法
- 如何在系统中查找内存泄漏(memory leak)程序?
- 如何在系统中查找内存泄漏(memory leak)程序?
- 如何检测C++的内存泄漏 用哪些工具
- 如何在WebLogic 8.1.6环境中查找有连接池泄漏的代码
- 如何在您的Java应用中查找并修复内存泄漏
- 内存泄漏的情况有哪些?
- (转载)Java中关于内存泄漏出现的原因以及如何避免内存泄漏
- Java中关于内存泄漏出现的原因以及如何避免内存泄漏
- Java剖析工具JProfiler查找内存泄漏
- Android 查找内存泄漏工具使用
- 如何解决内存溢出以及内存泄漏
- 在项目中设立里程碑有哪些好处
- 在Android开发中,有哪些好的内存优化方式?如何避免 Out Of Memory(OOM) ?
- 在Android开发中,有哪些好的内存优化方式?如何避免 Out Of Memory(OOM) ?
- 如何在VC++ 6.0中启用内存泄漏检测?
- 如何在VisualC++中检测和隔离内存泄漏
- mac fink 与简单用法
- d3.js:数据转换篇(二)Associative Arrays(关联数组)篇----v3
- 数据库字段区分大小写问题
- 关于java中Arrays.sort()的几种用法
- 抽象工厂模式
- 如何在项目中查找内存泄漏以及有哪些帮助工具?
- pip,python,ubuntu,linux,..sudo 导致失败问题(sudo -H)
- 【Android7.1.2源码解析系列】Android编译系统翻译------Android_Build_System(/build/core/build-system.html)
- Java基础加强之集合篇(模块记忆、精要分析)
- ps切图方法总结
- 字符串模式匹配算法——BM、Horspool、Sunday、KMP、KR、AC算法
- hihocoder 1054 滑动解锁 dfs
- 选择排序,插入排序和希尔排序总结
- Java 连接池的工作原理