art dalvik gc对比
来源:互联网 发布:信息清理软件 编辑:程序博客网 时间:2024/05/29 00:34
dalvik的gc的过程:
1、当gc被触发时候,其会去查找所有活动的对象,这个时候整个程序与虚拟机内部的所有线程就会挂起,这样目的是在较少的堆栈里找到所引用的对象.需要注意的是这个回收动作是和应用程序同时执行(非并发).
2、gc对符合条件的对象进行标记
3、gc对标记的对象进行回收
4、恢复所有线程的执行现场继续运行
注:dalvik这么做的好处是,当pause了之后,gc势必是相当快速的.但是如果出现gc频繁并且内存吃紧势必会导致ui卡顿,掉帧.操作不流畅等.
art的gc的过程:
1、gc将会锁住java堆,扫描并进行标记
2、标记完毕释放掉java堆的锁,并且挂起所有线程
3、gc对标记的对象进行回收
4、恢复所有线程的执行现场继续运行
5、重复2-4直到结束
注:主要的改善点在将其非并发过程改变成了部分并发.还有就是对内存的重新分配管理
二者比较:gc被触发时,dalvik在查找无用对象时挂起所有线程,art则是在查找无用对象时并发执行,回收对象才挂起所有线程。art gc省时在查找无用对象的上面。
dalvik内存管理特点:内存碎片化严重,当然这也是Mark and Sweep算法带来的弊端。
每次gc后内存千疮百孔,本来连续分配的内存块变得碎片化严重,之后再分配进入的对象再进行内存寻址变得困难
art内存管理特点:
1、它将java分了一块空间命名为Large-Object-Space,专门存放large object。
2、同时art又引入了moving collector的技术(即将不连续的物理内存块进行对齐,对齐了后内存碎片化就得到了很好的解决)。
注:Large-Object-Space的引入是因为:moving collector对大块内存的位移时间成本太高。
- art dalvik gc对比
- Android 5.0 ART GC 对比 Android 4.x Dalvik GC
- Android 5.0 ART GC 对比 Android 4.x Dalvik GC
- Dalvik对比ART差异
- Dalvik与ART的GC调试
- Dalvik与ART的GC调试
- Dalvik和ART的GC区别
- Android Dalvik虚拟机和ART虚拟机对比
- Android中的ART和Dalvik对比
- ART与Dalvik哪个好 ART模式和Dalvik模式区别对比
- ART与Dalvik哪个好用 ART模式和Dalvik模式区别对比分析
- Dalvik & ART
- ART Dalvik
- JAVA虚拟机、Dalvik虚拟机和ART虚拟机简要对比
- JAVA虚拟机、Dalvik虚拟机和ART虚拟机简要对比
- JAVA虚拟机、Dalvik虚拟机和ART虚拟机简要对比
- JVM、DVM(Dalvik VM)和ART虚拟机对比
- JAVA虚拟机、Dalvik虚拟机和ART虚拟机简要对比
- linux下python的调试
- 自定义控件之绘图篇(二):路径及文字
- 一文告诉你机器学习中进行模型评价、模型选择和算法选择的终极方法(PART I)
- 学python的那些事——初学python之菜鸟的起航
- Android 沉浸式状态栏攻略 让你的状态栏变色吧
- art dalvik gc对比
- setBackgroundDrawable和setBackgroundColor的用法
- Math.min.apply方法使用
- listen()函数中backlog参数分析
- shell脚本中的“2< " ">&2" "&>”
- HTTP协议详解
- 三分天下的互联网保险,后来者还有无机会?
- WPF仿百度Echarts人口迁移图
- 打开MySQL数据库远程访问的权限