本篇文章是对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的内存溢出问题,今后我们会通过各种案例来讲解。

转载于:https://www.cnblogs.com/royi123/p/4259277.html

Grow heap (frag case) to 6.437MB for 1114126-byte allocation相关推荐

  1. (android)system ui 内存优化

    android中systemUI是作为一个设置壁纸的服务存在的.以前项目中,对systemUI做了延迟启动的优化,可以把内存从25M左右降到8M左右,可是最近一个项目用了同样的方法(延迟启动),内存却 ...

  2. android uid systemui,(android)system ui 内存优化

    android中systemUI是作为一个设置壁纸的服务存在的.以前项目中,对systemUI做了延迟启动的优化,可以把内存从25M左右降到8M左右,可是最近一个项目用了同样的方法(延迟启动),内存却 ...

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

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

  4. android最强论坛,Android开发论坛

    点击模拟器后logcat有如下内容: 10-10 01:47:36.809: WARN/WindowManager(60): Current dispatch state: {{null to Win ...

  5. java runnable main_【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 ...

  6. 近距离端详Android ART运行时库

    Table of Contents 在最新的Google I/O大会上,Google 发布了关于Android上最新的运行时库的情况.这就是Android RunTime (ART). ART 将会取 ...

  7. android volley 超时,android – Volley缓慢而导致内存泄漏

    在我的项目中,我使用volley来下载一个JSON流,我将其解析并显示在列表视图中.我使用以下方法加载我的数据: private void loadEventData(int year, final ...

  8. 如何分析Android的Log

    转载自 http://www.2cto.com/kf/201405/297264.html 首先,让我们看一看AndroidLog的格式.下面这段log是以所谓的long格式打印出来的.从前面Logc ...

  9. 无聊之作 对 手游十万个为什么(神之刃) 的解包分析笔记 (游戏引擎)

    从神之刃开始,对这个游戏的引擎就充满了好奇,要什么样的手法把一个游戏包减少到40M.虽然有些童鞋总喜欢说无非就是压缩资源减少图片大小毫无技术含量这等话,但我们公司是做不到的.十万个为什么手游版的出现, ...

最新文章

  1. js 获取当前时间 随记
  2. 沿任意方向缩放、镜像、正交投影及切变及其推导
  3. 招商银行的软件BUG
  4. 关于github里readme编辑的方法
  5. Kubernetes本地集群和Google Kubernetes Engine的区别
  6. MFC开发IM-第二十四篇、使用 acl 库针对 C++ 对象进行序列化及反序列编程
  7. php怎么构造一个验证码,PHP封装一个生成验证码的函数
  8. python pexpect 学习与探索
  9. load,initialize方法
  10. 曾经的8848,远离真实的代价
  11. 如何修改Excel2016默认的等线字体--亲测可用
  12. CSS常见面试题(持续更新)
  13. 基于java的超市进销存财务管理系统源码【包调试】
  14. 腐蚀rust服务器命令_腐蚀rust服务器命令一览 腐蚀rust有哪些命令
  15. 艾灸神阙穴的神奇疗效
  16. 机器学习之线性回归 Linear Regression(二)Python实现
  17. 给定C语言数据结构,给定C语言的数据结构struct T { int w; union T { char c;int i;double d;)U; };...
  18. 在maven中的pom.xml配置ojdbc报错
  19. 最大信息系数(MIC)
  20. Java开发(七)for循环语句

热门文章

  1. 清远高考成绩查询2021年,2021年清远高考最高分多少分,历年清远高考状元
  2. 域名使用cname方式跳转不到新域名_七牛云图床和Markdown使用
  3. java web前端邮件,javaweb之javamail
  4. java 类型 转换 valueOf和parse...
  5. pytorch torchvision.transforms.ToTensor
  6. 图解TCPIP-DNS
  7. matlab elif,MATLAB与fftfilt相当于Python
  8. 谷歌也挖墙脚啊[抠鼻]
  9. 算法学习总结(3)——二叉树数据结构重点知识总结
  10. 消息中间件学习总结(10)——Kafka、RabbitMQ、RocketMQ消息中间件的消息发送性能对比