这个文章说得非常好:https://www.yourkit.com/docs/java/help/sizes.jsp#:~:text=YourKit%20Java%20Profiler%20is%20capable%20of%20measuring%20shallow,the%20number%20and%20types%20of%20%20its%20fields.

Shallow size:用于存储一个对象的内存大小,它引用的对象不计算在内。

Retained size:一个对象的Shallow size加上只有它可以直接或间接访问到的对象的Shallow size。当这个对象被回收时,Retained size所代表的内存都可以被回收。

引用文章开头的两张图:

参考上图,Shallow size 就是图中每个对象分到的内存大小。
在Figure1中:
obj1的Retained size = obj1+obj2+obj4
为什么obj5和obj3为什么不计算进来呢?因为它们不只有obj1直接或间接访问。
在Figure2中:
obj1的Retained size = obj1+obj2+obj3+obj4
不加obj5,是因为除了obj1,它还有其他对象访问它。

所以,在Figure1中,当obj1被垃圾回收时,obj2,obj4都会被回收。
在Figure2中,当obj1被垃圾回收时,obj2,obj3,obj4都会被回收。

Android studio profiler中的Shallow size和retained sizes是什么意思相关推荐

  1. android studio 自动try,Catch Try让我在Android Studio调试中感到困惑

    我试图在Android Studio中调试这段代码.这一切看起来都非常简单,但尝试中的'return sb1'不允许我打破它(带有x的红点)并且说它不可执行.Catch Try让我在Android S ...

  2. 关于Android Studio单元测试中“Method d in android.util.Log not mocked.”问题的解决。

    关于Android Studio单元测试中"Method d in android.util.Log not mocked."问题的解决. 点开链接 这就是解决方案.(这主要是由于 ...

  3. 关于Android Studio开发中“unfortunately, xxx has stopped”的错误提示

    在Android Studio开发中,可能会遇到这样的情况:代码提示中没有任何的错误信息,但在运行虚拟机.点击某个按键进行操作时,可能会出现"unfortunately, xxx has s ...

  4. 如何在安卓(Android studio)项目中导入模块、jar包、和aar包

    安卓(Android studio)编程中,我们常需要引用"别人写的功能",以扩展app的功能,"别人写的功能"主要有模块.jar包.和aar包三种方式. 下面 ...

  5. Android Studio编译中出现No static method metafactory怎么办?_莫韵乐与bug的奇妙冒险

    Android Studio编译中出现No static method metafactory怎么办? 在build.gradle(:app)中的加入以下代码 android {//...compil ...

  6. Android Studio开发过程中BUG解决方案——持续更新

    Android Studio开发过程中BUG解决方案: android萌新打怪升级之旅:android项目开发BUG集成 起笔时间:2022.5.20 版本:2021.2.1 问题描述1:无法查看/d ...

  7. 使用android studio查看内存,Android Studio Profiler使用心得 检测内存泄露问题

    最近在分析app的内存泄露问题研究了下as的profiler功能  这里记录下个人心得 下面是个人心得 1.首先得出结论profiler不详细提供分析c或c++库进行的内存占用 其中包括android ...

  8. android studio 前言中不允许有内容_Android Studio 中 System Trace 的新增功能

    在 Android Studio 4.0 中,我们已经对 CPU Profiler 的 UI 做了大量调整来提供更加直观的工作流记录,而在 Android Studio 4.1 中,我们基于开发者们的 ...

  9. Android Studio Profiler CPU检测卡顿

    前言 Android Studio 3.0 及更高版本中的 Android Profiler 取代了 Android Monitor 工具.Android Profiler工具可提供实时数据,帮助您了 ...

  10. android studio 自动提示jni代码,如何将JNI(C/C++本机代码)添加到现有的Android Studio项目中...

    从现有项目中执行以下步骤: 1.修改build.gradle(模块应用程序)看起来像这样(很多变化!): apply plugin: 'com.android.model.application' m ...

最新文章

  1. empty vocabulary; perhaps the documents only contain stop words
  2. linux机器启动pg数据库命令,Linux下创建Postgresql数据库的方法步骤
  3. NEFU 635(二分+枚举)
  4. cnn 验证集 参与训练吗_一个简单的零基础的机器学习教程之二,字母数字验证码识别...
  5. java 获取子类实际的类型名_Java 泛型类 以及 泛型类获取子类的具体参数类型 以及 获取子类型具体参数的实例...
  6. mysql字段简索引_3万字总结,Mysql优化之精髓
  7. python 实现对象去重
  8. 深入浅出 妙用Javascript中apply、call、bind
  9. 解决Ubuntu无法定位软件包问题
  10. java获取行政区划编码(省市区县居委5级)
  11. 系统完全优化 全面剖析XP
  12. MAC开机密码破解方法
  13. Raspberry Pi使用USB摄像头远程监控
  14. java-php-python-ssm-心灵治愈服务平台-计算机毕业设计
  15. Python Pandas库 Series.dt.tz_localize()和 Series.dt.tz_convert()的简单使用
  16. 固话呼转的设置及取消方法
  17. Gitlab 设置页面语言为简体中文
  18. 【编程练习】小强去春游
  19. Linux系统 PDF转图片
  20. 将指定文字写入QImage中并保存成图片

热门文章

  1. linux配置网口的ip地址,Linux基本操作和基础命令(Linux修改IP地址以及修改网卡地址)...
  2. cycJava基础以及集合总结
  3. 【技术科普】HLS视频流内m3u8文件和TS切片是什么关系?
  4. 原相机怎么设置水印_原来手机拍照也可以添加文字、水印、超实用,我怎么没有早点发现...
  5. 在COMSOL中如何绘制贴片天线的S参数
  6. webservice 传输加密
  7. 【未来简史】读书笔记
  8. python的split函数作用_spilt函数 详解 for Python
  9. 【离散数学】偏序集Hasse图的画法和重要元素
  10. 《黑白团团队》第六次作业:团队项目系统设计改进与详细设计