Android Studio Profiler Memory (内存分析工具)的简单使用及问题分析
https://www.jianshu.com/p/60efad38c5d6
https://www.jianshu.com/p/60efad38c5d6
Memory Profiler 是 Android Studio自带的内存分析工具,可以帮助开发者很好的检测内存的使用,在出现问题时,也能比较方便的分析定位问题,不过在使用的时候,好像并非像自己一开始设想的样子。
如何查看整体的内存使用概况
如果想要看一个APP整体内存的使用,看APP heap就可以了,不过需要注意Shallow Size跟Retained Size是意义,另外native消耗的内存是不会被算到Java堆中去的。
image.png
- Allocations:堆中的实例数。
- Shallow Size:此堆中所有实例的总大小(以字节为单位)。其实算是比较真实的java堆内存
- Retained Size:为此类的所有实例而保留的内存总大小(以字节为单位)。这个解释并不准确,因为Retained Size会有大量的重复统计
- native size:8.0之后的手机会显示,主要反应Bitmap所使用的像素内存(8.0之后,转移到了native)
举个例子,创建一个List的场景,有一个ListItem40MClass类,自身占用40M内存,每个对象有个指向下一个ListItem40MClass对象的引用,从而构成List,
作者:看书的小蜗牛
链接:https://www.jianshu.com/p/60efad38c5d6
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Memory Profiler 是 Android Studio自带的内存分析工具,可以帮助开发者很好的检测内存的使用,在出现问题时,也能比较方便的分析定位问题,不过在使用的时候,好像并非像自己一开始设想的样子。
如何查看整体的内存使用概况
如果想要看一个APP整体内存的使用,看APP heap就可以了,不过需要注意Shallow Size跟Retained Size是意义,另外native消耗的内存是不会被算到Java堆中去的。
image.png
- Allocations:堆中的实例数。
- Shallow Size:此堆中所有实例的总大小(以字节为单位)。其实算是比较真实的java堆内存
- Retained Size:为此类的所有实例而保留的内存总大小(以字节为单位)。这个解释并不准确,因为Retained Size会有大量的重复统计
- native size:8.0之后的手机会显示,主要反应Bitmap所使用的像素内存(8.0之后,转移到了native)
举个例子,创建一个List的场景,有一个ListItem40MClass类,自身占用40M内存,每个对象有个指向下一个ListItem40MClass对象的引用,从而构成List,
作者:看书的小蜗牛
链接:https://www.jianshu.com/p/60efad38c5d6
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。