本篇文章是对Grow heap (frag case) 堆内存过大的问题进行了详细的分析介绍,需要的朋友参考下

对于Android开发者来说虽然使用了可以自动管理内存的Java语言,但是对于内存管理不当,可能你的应用不断出现类似 INFO/dalvikvm-heap(10798): Grow heap (frag case) to 6.437MB for 1114126-byte allocation,而出现的
Grow heap
后面的值不断增加,接下来轻微则Android系统开始结束后台任务来增加不断增加的堆内存问题,最后可能直接出现OOM,同时有时候GC还可能出现GC
freed 0 objects / 0 bytes in
75ms这样的问题,对于Java的内存管理我们近期已经说到了,就上面这些问题Android123给大家做一个简单的分析。

1. 这里Grow heap (frag case) to 6.437MB for 1114126-byte allocation表示你一直在分配一个较大的对象,占用的堆内存达到了6.4MB。

2.
为什么会出现这样的问题,经过询问表示是因为分配了一个byte[]数组,需要以Blob方式写入SQLite数据库,而造成的这么大的单个对象出现,这
里Android开发网提醒大家,这是很危险的操作,对于不同固件和低RAM配置的设备随时都有OOM的危险,如果你真的需要往SQLite存储二进制,
这里可以采用分段的方式,将某个对象拆分为1MB或更小,分更多的段来存放,中间加一层拆分数据缓存层来解决比较好。

3. 同时每次构造单个较大对象前,可以通知gc准备收集,比如在执行需要耗操作前执行System.gc(); 防止OutOfMemoryError的发生,对于Java的内存溢出问题,今后我们会通过各种案例来讲解。

Grow heap (frag case) to 6.437MB for 1114126-byte allocation的更多相关文章

  1. 一个android应用开发的感悟

    对于客户端的开发,以我个人现在的水准,很难进行一个系统的讲解,只能分享下遇到的几个问题点好了! 1:对于tabhost的使用,这个东西真的是过时了:第一个版本,我是用的tabhost确实是很难用,不过 ...

  2. Echoprint系列--Android编译与调用

    在Echoprint系列--编译中编译了源代码,这次将Echoprint移植到Android平台并測试识别歌曲功能. 一.编译库 1.环境准备 Android NDK,我的是android-ndk-r ...

  3. 【原创】LogCat信息演示Activity生命周期

    界面如下:注意:这是在手机.竖屏状态下! (一)1个Activity     /**     * 7个方法     * 测试1个Activity的生命周期     *      * LogCat:   ...

  4. GC是如何回收SoftReference对象的

    看Fresco的代码中,有这样的一个类: /** * To eliminate the possibility of some of our objects causing an OutOfMemor ...

  5. 关于android 使用bitmap的OOM心得和解决方式

    android开发,从2010年開始学习到如今的独立完毕一个app,这漫长的四年,已经经历了非常多次bug的折磨.无数次的加班训练.然而,自以为自己已经比較了解android了,却近期在一个项目上.由 ...

  6. 【BUG】"main" prio=5 tid=1 RUNNABLE

    载入超大效果图导致内存不足(GC/ANR) 06-30 11:42:56.624: D/dalvikvm(16264): GC_CONCURRENT freed 1982K, 7% free 4537 ...

  7. 转:Heap spraying high addresses in 32-bit Chrome/Firefox on 64-bit Windows

    转:https://blog.skylined.nl/20160622001.html,June 22nd, 2016 In my previous blog post I wrote about m ...

  8. The Dangers of the Large Object Heap(转载,LOH内存碎片情景重现)

    原文地址:https://www.simple-talk.com/dotnet/.net-framework/the-dangers-of-the-large-object-heap/ You'd h ...

  9. What and where are the stack and heap?

    The stack is the memory set aside as scratch space for a thread of execution. When a function is cal ...

随机推荐

  1. 服务端指南 数据存储篇 | 聊聊 Redis 使用场景(转)

    作者:梁桂钊 本文,是升级版,补充部分实战案例.梳理几个场景下利用 Redis 的特性可以大大提高效率. 随着数据量的增长,MySQL 已经满足不了大型互联网类应用的需求.因此,Redis 基于内存存 ...

  2. CentOS7 中把默认yum源更换成163源

    163源是目前国内最好用的源,速度是相当快的,现在我们把CentOS7中的源改为163源 1.进入yum源配置文件 cd /etc/yum.repos.d 2.备份一下当前的源,以防出错后可以还原回来 ...

  3. virgo-tomcat没有任务错误日志的停掉的解决办法

    最近virgo-tomcat总是无缘无故的down掉,用了下面的几种方法来解决这个问题,具体哪个方法生效了,目前还不清楚...1. 删掉了home/logs下面的很大的日志文件 2. 在.bash_p ...

  4. (四)监控cpu

    定义规则:创建模板--->群组--->应用集--->监控项--->图形--->触发器--->添加主机(加入到群组,关联模板) 1)cpu空闲率,用户态使用率,内核态 ...

  5. 如何通过chrome的开发者工具查找新浪评论数据在哪个文件

    1.打开开发者工具(ctrl+shift+i) 2.打开搜索(Esc) 示例:http://comment5.news.sina.com.cn/page/info?format=js&chan ...

  6. Problem D: 乌龟棋【四维dp】

    Problem D: 乌龟棋 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 24  Solved: 15[Submit][Status][Web Boa ...

  7. POJ1751 Highways(Prim)

    Highways Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 13182   Accepted: 3814   Speci ...

  8. POJ1861 Network(Kruskal)(并查集)

    Network Time Limit: 1000MS     Memory Limit: 30000K Total Submissions: 16047   Accepted: 6362   Spec ...

  9. boost::Circular Buffer

    boost.circular_buffer简介 很多时候,我们需要在内存中记录最近一段时间的数据,如操作记录等.由于这部分数据记录在内存中,因此并不能无限递增,一般有容量限制,超过后就将最开始的数据移 ...

  10. POJ 3728 The merchant(并查集+DFS)

    [题目链接] http://poj.org/problem?id=3728 [题目大意] 给出一棵树,每个点上都可以交易货物,现在给出某货物在不同点的价格, 问从u到v的路程中,只允许做一次买入和一次 ...