Dalvik和ART的GC区别

Dalvik和ART的GC区别(转载)

小结笔记

Dalvik中GC的问题如下

  1. GC时挂起所有线程
  2. 大而连续的空间紧张
  3. 内存碎片化严重

ART

  1. 在ART中标记不需要挂起所有程序的线程:在ART中GC会要求程序在分配空间的时候标记自身的堆栈,这个过程非常短,不需要挂起所有程序的线程(解决问题1)
  2. 提供 LOS :large object space 专供Bitmap使用,从而提高了GC的管理效率和整体性能(解决问题2)
  3. ART里有moving collector来压缩活动对象,使得内存空间更加紧凑 (解决问题3)

Google在ART里对GC做了非常大的优化,从演示的数据里看,内存分配的效率提高了10倍,GC的效率提高了2-3倍。

  • 通过标记时机的变更使中断和阻塞的时间更短;
  • 通过LOS解决大对象的内存分配和存储问题;
  • 通过moving collector来压缩内存,使内存空间更加紧凑,从而达到GC整体性能的巨大提升。

google官网:调试 ART 垃圾回收

你可能感兴趣的:(Android)