原因

GC_CONCURRENTfreed 178K, 41% free 3673K/6151K, external 0K/0K, paused 2ms+2ms

GC_EXPLICITfreed 6K, 41% free 3667K/6151K, external 0K/0K, paused 29ms

红颜色标出的部分就是垃圾回收触发的原因。在Android中有五种类型的垃圾回收触发原因。

GC_CONCURRENT当堆内存增长到一定程度时会触发。此时触发可以对堆中的没有用的对象及时进行回收,腾出空间供新的对象申请,避免进行不必要的增大堆内存的操作。

GC_EXPLICIT当程序中调用System.gc()方法触发。这个方法应避免出现在程序中调用。因为JVM有足够的能力来控制垃圾回收。

GC_EXTERNAL_MALLOC当Bitmap和NIO Direct ByteBuffer对象分配外部存储(机器内存,非Dalvik堆内存)触发。这个日志只有在2.3之前存在,从2.3系统开始,垃圾回收进行了调整,前面的对象都会存储到Dalivik堆内存中。所以在2.3系统之后,你就再也不会看到这种信息了。

GC_FOR_MALLOC当堆内存已满,系统需要更多内存的时候触发。这条日志出现后意味着JVM要暂停你的程序进行垃圾回收操作。

GC_HPROF_DUMP_HEAP当创建一个内存分析文件HPROF时触发。

结果

GC_CONCURRENTfreed 178K, 41% free 3673K/6151K, external 0K/0K, paused 2ms+2ms

GC_EXPLICITfreed 6K, 41% free 3667K/6151K, external 0K/0K, paused 29ms

这部分数据告诉我们JVM进行垃圾回收释放了多少空间。

堆内存数据

GC_CONCURRENT freed 178K,41% free 3673K/6151K, external 0K/0K, paused 2ms+2ms

GC_EXPLICIT freed 6K,41% free 3667K/6151K, external 0K/0K, paused 29ms

这部分告诉我们堆内存中可用内存占的比例,当前活跃的对象总的空间,以及当前堆的总大小。所以这里的数据就是41%的堆内存可用,已经使用了3673K,总的堆内存大小为6151K。

外部存储数据

GC_EXTERNAL_ALLOC freed 1125K, 47% free 6310K/11847K,external 1051K/1103K, paused 46ms

GC_EXTERNAL_ALLOC freed 295K, 47% free 6335K/11847K,external 1613K/1651K, paused 41ms

这部分数据告诉我们外部存储(位于机器内存)对象的数据。在2.3之前,bitmap对象存放在机器内存。因此在第一条数据中我们可以看到以有1051K使用,外部存储为1103K。

上面两行数据相差100毫秒,我们可以看到第一条数据表明外部存储快满了,由于GC_EXTERNAL_ALLOC被触发,外部存储空间扩大到了1651K。

垃圾回收暂停时间

GC_CONCURRENT freed 178K, 41% free 3673K/6151K, external 0K/0K,paused 2ms+2ms

GC_EXPLICIT freed 6K, 41% free 3667K/6151K, external 0K/0K,paused 29ms

这部分数据表明垃圾回收消耗的时间。在GC_CONCURRENT回收时,你会发现两个暂停时间。一个是在回收开始的暂停时间,另一个时在回收结束的暂停时间。GC_CONCURRENT从2.3开始引入,相比之前的程序全部暂停的垃圾回收机制,它的暂停时间要小的多。一般少于5毫秒。因为GC_CONCURRENT的绝大多数操作在一个单独的线程中进行。

android 通知垃圾回收,Android中垃圾回收日志信息相关推荐

  1. java 什么时候进行垃圾回收_Java中垃圾回收有什么目的?什么时候进行垃圾回收?...

    仅提供一个大致的思路: 垃圾回收(gc)的目的是释放堆中不需要保存的对象,达到内存的充分利用. 1.回收哪些对象的判定 垃圾回收最简单的思路是采用引用计数的方式,即记录对象被引用的次数,直到一段时间内 ...

  2. xamarin android 通知,在 Xamarin.Android 中使用 Notification.Builder 构建通知

    0 背景 在 Android 4.0 以后,系统支持一种更先进的 Notification.Builder 类来发送通知.但 Xamarin 文档含糊其辞,多方搜索无果,遂决定自己摸索. 之前的代码: ...

  3. android 通知灯 测试,Android灯光系统通知灯【转】

    标签: 一.通知灯应用程序的编写 1.首先实现一个按钮功能 xmlns:tools="http://schemas.android.com/tools" android:layou ...

  4. android 通知显示时间,android:在特定时间显示通知?

    我有一个名为的函数show_notification(),当用户点击按钮时我会调用它.关键是,一旦他点击[如下面的函数],我不想显示通知,我想在特定的time= hours:mins 地方显示此通知. ...

  5. android 通知打开app,Android打开通知栏并回到主页的几种方式

    用PendingIntent.getActivity创建通知栏 在MainActivity中增加点击事件,用来启动NotifyService和延迟2秒销毁MainActivity,如下面代码所示 In ...

  6. android 通知id,java – Android:获取唯一的通知ID

    我相信你不应该一次就给用户那么多的通知.您应该显示一个整合关于Gmail客户端事件组的信息的单个通知.为此目的使用Notification.Builder. NotificationCompat.Bu ...

  7. android 通知图标大小,android – 通知栏显示大图标和小图标

    我的应用程序中的通知栏仅显示自动收报机中的小图标(应该如此).但是,当"阴影"被拉下时,它会显示自动收报机中的小图标,以及我在Notification.Builder中设置的大图标 ...

  8. android 通知多行,Android多行通知,例如Gmail应用

    我正在尝试创建一个多行通知,如Gmail应用程序所示,如下图所示(5个通知分组在一个通知下) 我尝试了各种示例,但似乎只能创建单个通知 public void createSingleNotifica ...

  9. ormlite android jar,android使用orm框架ormlite在控制台打印log日志信息

    在默认情况下,在android下默认只打印info级别的日志信息,所以在默认情况只能打印ormlite中创建数据库表的语句,而对于数据的插入和查询等sql语句是不会打印出来的.在ormlite中提供了 ...

最新文章

  1. Unet实现图像分割(四)
  2. Python语言学习之文件夹那些事:python和文件夹的使用方法之详细攻略
  3. hdu 4640(状压dp)
  4. 百练OJ:4151:电影节
  5. java程序设计实例教程 刘志成_Java程序设计实例教程教学课件作者刘志成章节05_Java图形用户界面技术.PPT...
  6. 【EF学习笔记09】----------使用 EntityState 枚举标记实体状态,实现增删改查
  7. python快速检测视频跳过帧_使用Python实现跳帧截取视频帧
  8. MyBatis自学(1):MyBatis概述
  9. 常见笔顺错误的字_最全汉字笔顺正确写法,建议家长为孩子收藏
  10. centos 6.8 升级mysql_centos6.8 Mysql5.6.22 升级 mysql-5.7.20
  11. nohup java - cp_nohup java - cp
  12. jq toggle()方法学习
  13. Luogu4781 【模板】拉格朗日插值
  14. 大数据工程师简历_大数据毕业生简历该怎么写?
  15. linux上dig命令,Linux中dig命令起什么作用呢?
  16. 网络处理器(NP)与图形处理器(GPU)
  17. 单尺度Retinex
  18. Excel中去掉多余的网格线
  19. 最全音视频基础知识学习详解(含多个干货链接)
  20. js中转换Date日期格式

热门文章

  1. 单元测试线程代码的5个技巧
  2. 使用MVC模式制作游戏-教程和简介
  3. 从MongoDB GridFS流式传输文件
  4. Java Secret:使用枚举构建状态机
  5. 60秒计时器的仿真电路_基于伏秒平衡的同步整流方案探讨
  6. IntelliJ IDEA for Mac 在MacOS模式下的注释快捷键(Comment Shortcut)
  7. sum和total的区别
  8. Python中replace()函数
  9. android提交项目到svn,Android Studio 配置SVN,通过Share project提交项目和实现忽略文件...
  10. python cls_关于python中的self,ins , cls的解释