Python虛擬機(jī)內(nèi)存管理的研究
本文關(guān)鍵詞:Python虛擬機(jī)內(nèi)存管理的研究
更多相關(guān)文章: Python 虛擬機(jī) 內(nèi)存管理 貪心策略 實(shí)證研究 垃圾回收 優(yōu)化
【摘要】:動(dòng)態(tài)語(yǔ)言的簡(jiǎn)潔性,易學(xué)性縮短了軟件開(kāi)發(fā)人員的開(kāi)發(fā)周期,所以深受研發(fā)人員的喜愛(ài)。其在機(jī)器學(xué)習(xí)、科學(xué)計(jì)算、Web開(kāi)發(fā)等領(lǐng)域都有廣泛的應(yīng)用。在眾多的動(dòng)態(tài)語(yǔ)言中,Python是用戶(hù)數(shù)量較大的動(dòng)態(tài)語(yǔ)言之一。本文主要研究Python對(duì)內(nèi)存資源的管理。Python開(kāi)發(fā)效率高,但是運(yùn)行效率常為人詬病,主要原因在于一切皆是對(duì)象的語(yǔ)言實(shí)現(xiàn)哲學(xué)導(dǎo)致在某些基本類(lèi)型上的設(shè)計(jì)比較臃腫。在一切皆是對(duì)象的哲學(xué)基礎(chǔ)上,Python虛擬機(jī)將所有的對(duì)象分成非容器對(duì)象和容器對(duì)象,兩種對(duì)象都是基于內(nèi)存池進(jìn)行管理。操作系統(tǒng)提供的庫(kù)函數(shù)malloc是一個(gè)通用的內(nèi)存管理方案,有很多的局限性:碎片問(wèn)題、效率問(wèn)題、內(nèi)存泄露和懸掛指針,所以Python虛擬機(jī)在malloc基礎(chǔ)上采用池化的內(nèi)存解決方案和自動(dòng)內(nèi)存管理。本文詳細(xì)的解讀了Python虛擬機(jī)的非容器對(duì)象和容器對(duì)象池化內(nèi)存管理方案,基于引用計(jì)數(shù)的垃圾回收機(jī)制及其循環(huán)垃圾回收模塊。之后本文闡述了Python虛擬機(jī)在非容器對(duì)象內(nèi)存池管理算法上存在內(nèi)存強(qiáng)占和碎片的缺陷并提出了一種基于貪心策略的內(nèi)存申請(qǐng)和釋放的算法。最后,針對(duì)非容器對(duì)象在開(kāi)源的實(shí)驗(yàn)平臺(tái)Unladen-Swallow上驗(yàn)證本文方法在Web應(yīng)用領(lǐng)域的高效性。針對(duì)循環(huán)引用的問(wèn)題,本文進(jìn)行了關(guān)于Python虛擬機(jī)內(nèi)存使用的實(shí)證研究,選取了六種不同的Python項(xiàng)目,并獲取這六種不同的開(kāi)源項(xiàng)目運(yùn)行過(guò)程中的動(dòng)態(tài)信息。實(shí)驗(yàn)的數(shù)據(jù)顯示,循環(huán)垃圾出現(xiàn)頻率不高。傳統(tǒng)的基于TD算法的循環(huán)垃圾檢測(cè)算法需要掃描候選集三次,而一種輕量級(jí)的循環(huán)垃圾回收算法只需掃描一次,但是其完備性不足。本文采用輕量級(jí)垃圾回收技術(shù)和傳統(tǒng)的TD算法相結(jié)合的算法并充分考慮了Python循環(huán)垃圾回收的特點(diǎn)對(duì)循環(huán)垃圾回收算法進(jìn)行了優(yōu)化并進(jìn)行了實(shí)驗(yàn)驗(yàn)證。
【關(guān)鍵詞】:Python 虛擬機(jī) 內(nèi)存管理 貪心策略 實(shí)證研究 垃圾回收 優(yōu)化
【學(xué)位授予單位】:南京大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2014
【分類(lèi)號(hào)】:TP302
【目錄】:
- 摘要5-7
- ABSTRACT7-11
- 第一章 引言11-15
- 1.1 研究動(dòng)因11-12
- 1.2 研究現(xiàn)狀12-13
- 1.3 本文工作13-14
- 1.4 論文結(jié)構(gòu)14-15
- 第二章 Python的內(nèi)存管理15-26
- 2.1 非容器對(duì)象的管理15-17
- 2.1.1 非容器對(duì)象內(nèi)存池15-16
- 2.1.2 非容器對(duì)象內(nèi)存池特征分析16-17
- 2.2 容器對(duì)象的管理17-20
- 2.2.1 Arena17-18
- 2.2.2 Pool18-19
- 2.2.3 Block19-20
- 2.2.4 釋放算法20
- 2.3 Python的垃圾回收機(jī)制20-25
- 2.3.1 引用計(jì)數(shù)垃圾回收機(jī)制21-22
- 2.3.2 Python解決循環(huán)引用的算法22-25
- 2.4 本章小結(jié)25-26
- 第三章 Python內(nèi)存管理的實(shí)證研究26-32
- 3.1 問(wèn)題的提出26-27
- 3.2 實(shí)驗(yàn)設(shè)計(jì)27-29
- 3.3 實(shí)驗(yàn)結(jié)果29-30
- 3.4 實(shí)驗(yàn)數(shù)據(jù)分析30-31
- 3.5 本章小結(jié)31-32
- 第四章 非容器對(duì)象管理的優(yōu)化以及其應(yīng)用32-39
- 4.1 Python的Web應(yīng)用32
- 4.2 非容器對(duì)象管理優(yōu)化32-34
- 4.2.1 Python VM非容器對(duì)象管理算法的缺陷33
- 4.2.2 基于貪心的非容器對(duì)象管理算法33-34
- 4.3 貪心式內(nèi)存管理模型特征分析34-35
- 4.4 實(shí)驗(yàn)35-38
- 4.4.1 實(shí)驗(yàn)對(duì)象35-36
- 4.4.2 實(shí)驗(yàn)綜述36
- 4.4.3 實(shí)驗(yàn)結(jié)果及分析36-38
- 4.6 本章小結(jié)38-39
- 第五章 循環(huán)垃圾回收器優(yōu)化39-53
- 5.1 基本概念描述39-41
- 5.2 輕量級(jí)的循環(huán)垃圾回收算法41-46
- 5.2.1 計(jì)算圖41-42
- 5.2.2 偽代碼42-44
- 5.2.3 LWCC算法的缺陷44-46
- 5.3 Python循環(huán)垃圾回收算法優(yōu)化46-50
- 5.3.1 Python循環(huán)垃圾回收算法46-48
- 5.3.2 一種LWCC和TD混合的循環(huán)垃圾回收算法48-49
- 5.3.3 算法的正確性說(shuō)明49-50
- 5.4 實(shí)驗(yàn)50-52
- 5.5 本章小結(jié)52-53
- 第六章 總結(jié)與展望53-55
- 6.1 工作總結(jié)53-54
- 6.2 未來(lái)工作54-55
- 參考文獻(xiàn)55-59
- 附錄 攻讀碩士學(xué)位期間發(fā)表論文情況59-60
- 致謝60-61
【相似文獻(xiàn)】
中國(guó)期刊全文數(shù)據(jù)庫(kù) 前10條
1 姚競(jìng);;面向項(xiàng)目的“Python程序設(shè)計(jì)”教學(xué)實(shí)踐與研究[J];福建電腦;2009年07期
2 透明;;關(guān)于Python[J];程序員;2002年03期
3 王寧,汪飛星;基于Python開(kāi)發(fā)氣象服務(wù)器運(yùn)行系統(tǒng)界面[J];微機(jī)發(fā)展;2003年07期
4 湯韜;;Python庫(kù)簡(jiǎn)介[J];程序員;2006年06期
5 高昂;;Python近況全接觸[J];程序員;2009年04期
6 郭芬;劉明;;Python垃圾收集器原理研究及應(yīng)用[J];信息技術(shù);2009年07期
7 王麗;;Python的元類(lèi)編程研究[J];電腦編程技巧與維護(hù);2011年06期
8 李?lèi)?ài)寧;唐勇;孫曉輝;劉昕彤;;基于Python語(yǔ)言的3DES算法優(yōu)化[J];計(jì)算機(jī)系統(tǒng)應(yīng)用;2011年08期
9 曾浩;;Python在其它語(yǔ)言中的應(yīng)用研究[J];大眾科技;2012年07期
10 鞠文飛;曾智銳;;使用Python開(kāi)發(fā)跨平臺(tái)的單詞助記程序[J];電腦編程技巧與維護(hù);2012年24期
中國(guó)重要會(huì)議論文全文數(shù)據(jù)庫(kù) 前5條
1 ;Development of Python-based ArcGIS Tools for Spatially Balanced Forest Sampling Design[A];Information Technology and Computer Science—Proceedings of 2012 National Conference on Information Technology and Computer Science[C];2012年
2 伊鵬躍;于哲峰;汪海;;基于Abaqus/Python的三維復(fù)合材料層壓板有限元建模參數(shù)化開(kāi)發(fā)[A];第17屆全國(guó)復(fù)合材料學(xué)術(shù)會(huì)議(復(fù)合材料結(jié)構(gòu)設(shè)計(jì)與性能表征分論壇)論文集[C];2012年
3 黃佳聰;高俊峰;;基于Python編程語(yǔ)言的空間動(dòng)態(tài)模型集成[A];自然地理學(xué)與生態(tài)安全學(xué)術(shù)論文摘要集[C];2012年
4 于文麗;;基于Python的空間自相關(guān)模式研究[A];中國(guó)地理學(xué)會(huì)百年慶典學(xué)術(shù)論文摘要集[C];2009年
5 郭霞;關(guān)志東;劉遂;陳萍;劉佳;王欣晶;邱太文;;基于Python的Abaqus二次開(kāi)發(fā)在層壓板修理模擬中的應(yīng)用[A];計(jì)算機(jī)輔助工程及其理論研討會(huì)2013(CAETS2013)論文集[C];2013年
中國(guó)重要報(bào)紙全文數(shù)據(jù)庫(kù) 前6條
1 高壽福;無(wú)所不能的靈蛇——Python[N];中華讀書(shū)報(bào);2001年
2 ·特約作者 鄒肇輝;BT編程的王者[N];電腦報(bào);2005年
3 易水;IT新詞集錦(403)[N];計(jì)算機(jī)世界;2004年
4 本報(bào)記者 蒙克;顛覆傳統(tǒng)數(shù)據(jù)庫(kù)的“玩具”[N];網(wǎng)絡(luò)世界;2009年
5 ;Ruby on Rails[N];計(jì)算機(jī)世界;2006年
6 周蓉蓉;中低端Unix直指Linux[N];計(jì)算機(jī)世界;2006年
中國(guó)碩士學(xué)位論文全文數(shù)據(jù)庫(kù) 前10條
1 周健;Python虛擬機(jī)內(nèi)存管理的研究[D];南京大學(xué);2014年
2 胡忠?guī)?基于Python的企業(yè)安全漏洞管理方法研究[D];北京郵電大學(xué);2015年
3 王國(guó)強(qiáng);基于Python的SDG-HAZOP軟件中推理規(guī)則問(wèn)題的研究[D];北京化工大學(xué);2009年
4 鄺洪勝;基于Python的電商導(dǎo)購(gòu)APP設(shè)計(jì)與實(shí)現(xiàn)[D];華南理工大學(xué);2015年
5 李?lèi)?基于Python+Tkinter的Linux GUI輔助管理工具的設(shè)計(jì)與實(shí)現(xiàn)[D];吉林大學(xué);2009年
6 趙強(qiáng);用于PCB版圖審查的Python腳本子系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D];西安電子科技大學(xué);2014年
7 趙明洪;Python程序設(shè)計(jì)題的查重研究[D];新疆農(nóng)業(yè)大學(xué);2015年
8 曹明君;基于Visual Studio與Python平臺(tái)開(kāi)發(fā)有限元分析結(jié)果自動(dòng)后處理系統(tǒng)[D];青島理工大學(xué);2015年
9 王健;Python插件在CG制作管理中的應(yīng)用[D];南京理工大學(xué);2008年
10 張正陽(yáng);基于Python的戶(hù)外通訊設(shè)備連接關(guān)系的挖掘研究[D];蘇州大學(xué);2015年
,本文編號(hào):821066
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/821066.html