1. 程式人生 > >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整體效能的巨大提升。