久久精品综合-欧美精品久久久久久-www一区二区-韩国三级中文字幕hd久久精品-国产一区二区三区在线-日韩免费视频

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

Linux系統Dalvik堆內存的管理與回收介紹

[摘要]Linux系統Dalvik虛擬機中可以對Android進行一些優化處理,而對堆內存的管理和回收是優化系統的重要手段。本文就來介紹一下Linux系統Dalvik堆內存的管理與回收。Android系統啟...

  Linux系統Dalvik虛擬機中可以對Android進行一些優化處理,而對堆內存的管理和回收是優化系統的重要手段。本文就來介紹一下Linux系統Dalvik堆內存的管理與回收。

Linux系統Dalvik堆內存的管理與回收介紹

  Android系統啟動

  Android系統啟動后,會有一個Zygote進程創建第一個Dalvik虛擬機,它只維護了一個堆。以后啟動的所有應用程序進程是被Zygote進程fork出來的,并都持有一個自己的Dalvik虛擬機。在創建應用程序的過程中,Dalvik虛擬機采用COW策略復制Zygote進程的地址空間。

  COW策略:一開始的時候(未復制Zygote進程的地址空間的時候),應用程序進程和Zygote進程共享了同一個用來分配對象的堆。當Zygote進程或者應用程序進程對該堆進行寫操作時,內核就會執行真正的拷貝操作,使得Zygote進程和應用程序進程分別擁有自己的一份拷貝,這就是所謂的COW。因為copy是十分耗時的,所以必須盡量避免copy或者盡量少的copy。

  為了實現這個目的,當創建第一個應用程序進程時,會將已經使用了的那部分堆內存劃分為一部分,還沒有使用的堆內存劃分為另外一部分。前者就稱為Zygote堆,后者就稱為Active堆。這樣只需把zygote堆中的內容復制給應用程序進程就可以了。以后無論是Zygote進程,還是應用程序進程,當它們需要分配對象的時候,都在Active堆上進行。這樣就可以使得Zygote堆盡可能少地被執行寫操作,因而就可以減少執行寫時拷貝的操作。在Zygote堆里面分配的對象其實主要就是Zygote進程在啟動過程中預加載的類、資源和對象了。這意味著這些預加載的類、資源和對象可以在Zygote進程和應用程序進程中做到長期共享。這樣既能減少拷貝操作,還能減少對內存的需求。

  類似于JVM,Dalvik虛擬機也需要負責對堆內存中的對象進行管理工作,它使用的也是標記清除算法,但是細節上略有區別。

Linux是一套免費使用和自由傳播的類Unix操作系統




主站蜘蛛池模板: 色综合久久中文字幕综合网 | 日本在线日本中文字幕日本在线视频播放 | 香蕉大成网人站在线 | 午夜精品视频在线观看美女 | 天天色综合天天 | 中文www新版资源在线 | 深夜在线观看免费看视频 | 日韩欧美黄色大片 | 羞羞人成午夜爽爽影院 | 最新国产福利在线观看 | 中文乱码一二三四有限公司 | 星辰影院在线观看高清免费观看 | 亚洲欧美国产精品专区久久 | 天干夜天干天干国产 | 四虎影院com | 视频二区 素人 欧美 日韩 | 天天干天天舔 | 亚洲欧美另类精品久久久 | 清清草在线视频 | 五月天激情婷婷大综合 | 色老头网站久久网 | 欧美小视频在线 | 最新欧美精品一区二区三区不卡 | 五月激情网站 | 日韩国产中文字幕 | 天天做天天添天天谢 | 直接黄91麻豆网站 | 伊人影视传媒有限公司 | 日本三级一区 | 性视频网| 午夜777| 五月激情啪啪网 | 在线观看欧美日韩 | 亚洲高清在线观看 | 五月婷婷六月天 | 亚洲美女色在线欧洲美女 | 色噜噜狠狠狠狠色综合久不 | 日韩精品一区二区三区免费观看 | 亚洲v日本v欧美v综合v | 欧美亚洲另类综合 | 日本www色视频成人免费 |