ART执行的字节码所以速度会很快,使用AOT(AHead of Time)相对于JIT(Just In Time)会在应用创建的时候将dex编译成字节码时时间会比较长占用空间会比较大
之所以会无缝的替换是因为他实现了虚拟机的接口
内存回收机制
对象的是否被引用 引用链
清除算法 标记-清除
堆分配
ImageSpace 包含了用于预加载系统类对象,这些对象都是在创建oat时创建得到的,存储在boot.art@classes.dex中,以后启动可以不需要加载系统类对象节省时间
zygote 存储zygote继承创建的对象
allocation 和dvk中的active一样对象的创建都是在这个内存中实现的
large object 分配大对象的空间
因为写复制机制,zygote进程回合应用进程公用imageSpace和zygoteSpace
Art同样使用标记-清除算法执行清除对象的操作
不同的是他有6中不同的算法,同步三种,异步三种,分别为
MarkSweep类型的垃圾收集器,用来收集在Zygote Space和Allocation Spa