版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、伴隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,計(jì)算機(jī)軟件所解決的問題日益復(fù)雜,軟件的功能、結(jié)構(gòu)和行為的復(fù)雜性不斷增加,使得大規(guī)模框架密集型應(yīng)用程序得到廣泛應(yīng)用。這些應(yīng)用程序通常結(jié)合了標(biāo)準(zhǔn)類庫和特定領(lǐng)域的第三方框架。雖然類庫和框架的使用簡化了開發(fā)工作,但調(diào)用這些類庫和框架的通用API的代價(jià)可能是非常昂貴的。程序員在軟件開發(fā)過程中往往過多關(guān)注于系統(tǒng)的功能實(shí)現(xiàn),忽視對程序進(jìn)行優(yōu)化設(shè)計(jì),并將性能優(yōu)化的任務(wù)交給運(yùn)行時(shí)系統(tǒng),導(dǎo)致因不合理的內(nèi)存使用所導(dǎo)致的內(nèi)存問題在軟
2、件中廣泛存在。軟件復(fù)雜性的增加對軟件分析和測試過程中理解軟件的內(nèi)存行為和檢測內(nèi)存使用問題提出了新的挑戰(zhàn)。對于現(xiàn)代軟件系統(tǒng)而言,如何快速理解軟件的內(nèi)存行為,準(zhǔn)確檢測出軟件中的內(nèi)存使用問題對于保證軟件質(zhì)量具有重要意義。
目前,軟件內(nèi)存使用分析已經(jīng)在國內(nèi)外被大量學(xué)者廣泛研究:一方面,通過程序分析技術(shù)研究程序中各個(gè)數(shù)據(jù)結(jié)構(gòu)之間的依賴關(guān)系,借助這些信息識別程序中的不合理的設(shè)計(jì);另一方面,通過充分的測試用例測試獲取足量的動態(tài)執(zhí)行信息,對程
3、序的執(zhí)行信息采用特征分析或統(tǒng)計(jì)分析的方法研究程序的內(nèi)存使用。但是,已有的這些方法依然存在一些問題。主要表現(xiàn)在:(1)資源開銷較大。Java程序執(zhí)行過程中涉及大量對象的創(chuàng)建和使用,包含復(fù)雜的對象引用關(guān)系,使得一些方法在內(nèi)存使用分析過程中需要大量的資源開銷;(2)提供的診斷信息有限。一些方法的診斷信息只能提供與內(nèi)存使用相關(guān)的類級別信息,診斷信息較為抽象。此外,檢測報(bào)告缺乏與問題相關(guān)的上下文信息,難以輔助調(diào)試人員進(jìn)行問題理解和問題修復(fù);(3)
4、診斷結(jié)果的準(zhǔn)確性有待提高。已有研究方法往往通過內(nèi)存使用問題的某一特征點(diǎn)進(jìn)行問題的識別,檢測結(jié)果的準(zhǔn)確性和有效性較低。針對以上問題,本文進(jìn)行了以下兩個(gè)方面的研究:
(1)設(shè)計(jì)了一種基于對象引用關(guān)系的Java程序內(nèi)存行為分析方法。與傳統(tǒng)的依據(jù)內(nèi)存消耗的大小確定程序中數(shù)據(jù)結(jié)構(gòu)的重要性并分析相關(guān)內(nèi)存行為的方法不同,該方法同時(shí)考慮內(nèi)存消耗和內(nèi)存支配兩個(gè)因素來確定一個(gè)數(shù)據(jù)結(jié)構(gòu)在程序內(nèi)存行為中的重要性,通過研究數(shù)據(jù)結(jié)構(gòu)之間在內(nèi)存使用上的支配
5、關(guān)系和對數(shù)據(jù)結(jié)構(gòu)進(jìn)行引用分析,得到程序中重要的內(nèi)存行為。實(shí)驗(yàn)結(jié)果表明該方法對程序中重要內(nèi)存行為的分析具備良好的效果。
?。?)設(shè)計(jì)了一種基于內(nèi)存使用傳播分析的Java內(nèi)存低效使用檢測方法。與原有的通過檢測程序中消耗內(nèi)存較多的數(shù)據(jù)結(jié)構(gòu)并分析其內(nèi)存使用合理性的方法不同,該方法首先獲取程序執(zhí)行過程中的內(nèi)存使用信息,并將其抽象為內(nèi)存使用傳播圖(Memory Usage Propagation Graph, MUPG),以此提供程序完整的
6、內(nèi)存行為;其次通過對MUPG包含的內(nèi)存使用信息進(jìn)行特征分析識別,檢測和確定程序中的內(nèi)存低效使用問題;最后依據(jù)MUPG提供的上下文路徑信息分析導(dǎo)致問題產(chǎn)生的根本原因。實(shí)驗(yàn)結(jié)果表明該方法在內(nèi)存低效使用問題檢測上具有較好的效果。
本課題設(shè)計(jì)了兩種程序內(nèi)存使用分析技術(shù)以幫助軟件開發(fā)人員對Java程序的內(nèi)存使用進(jìn)行分析,揭示潛在的內(nèi)存低效使用問題,并找出導(dǎo)致這些問題產(chǎn)生的根源。雖然這些技術(shù)的實(shí)現(xiàn)都是針對Java程序進(jìn)行,但我們相信提供的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Java內(nèi)存泄漏發(fā)現(xiàn)技術(shù)研究.pdf
- [java]使用jni技術(shù)實(shí)現(xiàn)java程序調(diào)用dll
- 面向數(shù)據(jù)流的Java程序指針分析技術(shù)研究.pdf
- java高內(nèi)存編程
- Java ME程序測試平臺的若干關(guān)鍵技術(shù)研究.pdf
- Java并發(fā)程序的模型提取與模型檢測技術(shù)研究.pdf
- 嵌入式JAVA虛擬機(jī)內(nèi)存儲器管理技術(shù)研究.pdf
- Java內(nèi)存泄漏規(guī)約及其工具研究.pdf
- java堆內(nèi)存與棧內(nèi)存的區(qū)別
- java內(nèi)存分配與管理是java的核心技術(shù)之一
- c++_java內(nèi)存分配
- 創(chuàng)建使用觸摸屏的java 程序
- Java程序及對象關(guān)系的動態(tài)可視技術(shù)研究與實(shí)現(xiàn).pdf
- 針對惡意代碼的連續(xù)內(nèi)存鏡像分析技術(shù)研究.pdf
- Android軟件內(nèi)存泄漏測試技術(shù)研究.pdf
- 用戶態(tài)內(nèi)存管理關(guān)鍵技術(shù)研究.pdf
- java內(nèi)存的詳細(xì)分析(包括垃圾回收)
- 針對惡意代碼的連續(xù)內(nèi)存鏡像分析技術(shù)研究
- 使用Eclipse 遠(yuǎn)程調(diào)試java 應(yīng)用程序.doc
- java軟件保護(hù)技術(shù)研究
評論
0/150
提交評論