基于逃逸分析的android垃圾收集性能優(yōu)化研究
發(fā)布時(shí)間:2021-03-31 19:40
本文提出了一種簡(jiǎn)單有效的基于逃逸分析的應(yīng)用于android系統(tǒng)的垃圾收集算法。隨著移動(dòng)終端的普及,移動(dòng)操作系統(tǒng)的性能,特別是android系統(tǒng)的性能,受到越來越多的關(guān)注,而垃圾收集是提升整體系統(tǒng)性能的瓶頸之一。逃逸分析是一種可以有效減少Java程序中的同步負(fù)載壓力和內(nèi)存堆分配壓力數(shù)據(jù)流分析算法。本文通過應(yīng)用逃逸分析于CyanogenMod系統(tǒng)判斷對(duì)象是否逃逸出方法,從而避免對(duì)象的堆式分配,減少垃圾收集針對(duì)的對(duì)象,極大的減輕垃圾收集的壓力,進(jìn)而可以提升整體的性能。本文以傳統(tǒng)的逃逸分析為框架,實(shí)現(xiàn)了一種控制流非敏感的,過程間的,上下文相關(guān)的全局?jǐn)?shù)據(jù)流分析方法,即每一個(gè)對(duì)象動(dòng)態(tài)歸屬于每一個(gè)棧幀,每一個(gè)棧幀有一個(gè)唯一編號(hào),當(dāng)方法(或者線程)所屬的棧幀退出時(shí),對(duì)比其所屬的棧幀號(hào)碼與對(duì)象的唯一編號(hào),從而確定對(duì)象是否逃逸出方法(或者線程)。我們更改了虛擬機(jī)系統(tǒng)的對(duì)象分配、方法返回、基本垃圾收集算法的結(jié)構(gòu)來實(shí)現(xiàn)我們的算法。實(shí)驗(yàn)結(jié)果顯示,通過這種結(jié)合逃逸分析的新的垃圾收集算法,可以使得不同的android應(yīng)用在運(yùn)行過程中的性能提升4%到24%,在超過60%的測(cè)試用例中,可以判定為非逃逸對(duì)象比例為20%,即可進(jìn)行棧式分配的比例。除此之外,文中使用了一種簡(jiǎn)單有效的標(biāo)記方法來使得垃圾收集過程中忽略這些可以進(jìn)行棧式分配的對(duì)象,結(jié)果表明,垃圾收集所帶來的暫停時(shí)間減少了14%到56%。結(jié)果表明,應(yīng)用逃逸分析可以有效地減少對(duì)象堆式分配的比例,從而減輕垃圾收集的壓力來提高整體的系統(tǒng)性能。
【學(xué)位授予單位】:北京理工大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2015
【分類號(hào)】:TP316;TP302.7
本文編號(hào):2060942
【學(xué)位授予單位】:北京理工大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2015
【分類號(hào)】:TP316;TP302.7
文章目錄
摘要
Abstract
第1章 緒論
1.1 研究目的和意義
1.2 國(guó)內(nèi)外研究現(xiàn)狀
1.2.1 垃圾收集研究現(xiàn)狀
1.2.2 逃逸分析研究現(xiàn)狀
1.2.3 對(duì)象內(nèi)存空間管理優(yōu)化應(yīng)用
1.2.4 分析優(yōu)化框架
1.3 本文的研究?jī)?nèi)容
1.4 論文組織
第2章 垃圾收集策略
2.1 垃圾收集的意義
2.2 引用計(jì)數(shù)算法
2.2.1 引用計(jì)數(shù)算法原理
2.2.2 引用計(jì)數(shù)算法的優(yōu)缺點(diǎn)
2.3 標(biāo)記清除算法
2.3.1 標(biāo)記清除算法原理
2.3.2 標(biāo)記清除算法的優(yōu)缺點(diǎn)
2.4 節(jié)點(diǎn)復(fù)制算法
2.4.1 節(jié)點(diǎn)復(fù)制算法原理
2.4.2 節(jié)點(diǎn)復(fù)制算法的優(yōu)缺點(diǎn)
2.5 標(biāo)記縮并算法
2.5.1 標(biāo)記縮并算法原理
2.5.2 標(biāo)記縮并算法的優(yōu)缺點(diǎn)
第3章 逃逸分析
3.1 逃逸分析的意義
3.2 逃逸分析的框架
3.2.1 對(duì)象的逃逸
3.2.2 連接圖的抽象
3.2.3 逃逸分析的基本思想
3.3 過程內(nèi)分析
3.4 過程間分析
3.4.1 方法入.處的操作
3.4.2 方法退出時(shí)的操作
3.4.3 程序調(diào)用之前和程序調(diào)用之后的操作
第4章 逃逸分析的實(shí)現(xiàn)與實(shí)驗(yàn)結(jié)果
4.1 與傳統(tǒng)方法的不同
4.2 算法描述
4.2.1 一個(gè)例子
4.2.2 算法小結(jié)
4.3 算法的實(shí)現(xiàn)
4.3.1 數(shù)據(jù)結(jié)構(gòu)和改變
4.3.2 解釋器產(chǎn)生的靜態(tài)引用
4.3.3 多線程與本地代碼
4.3.4 一個(gè)優(yōu)化措施
4.4 實(shí)驗(yàn)及結(jié)果分析
4.4.1 收集的對(duì)象
4.4.2 等價(jià)集合的大小與生命周期
4.4.3 在多線程下的表現(xiàn)
4.4.4 性能與開銷
4.4.5 大型程序下的情況
結(jié)論
參考文獻(xiàn)
攻讀學(xué)位期間發(fā)表論文與研究成果清單
致謝
【參考文獻(xiàn)】
相關(guān)期刊論文 前2條
1 宋玉婷;孫文輝;;基于JML的標(biāo)記—清掃垃圾收集驗(yàn)證[J];計(jì)算機(jī)應(yīng)用與軟件;2014年09期
2 張鵬飛;錢敏;;Java垃圾回收新算法芻探[J];微型機(jī)與應(yīng)用;2011年02期
本文編號(hào):2060942
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/2060942.html
最近更新
教材專著