两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

輔助內(nèi)存分析的方法和系統(tǒng)的制作方法

文檔序號:6580646閱讀:320來源:國知局
專利名稱:輔助內(nèi)存分析的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計算機領(lǐng)域,具體涉及運行時內(nèi)存分析,更具體涉及一種用于輔助運 行時內(nèi)存分析的方法和系統(tǒng)。
背景技術(shù)
為了檢測程序中潛在的運行時內(nèi)存問題,通常進行程序插裝以跟蹤程序運行時的 內(nèi)存訪問事件,就是說,將某些額外的語句或指令插入程序中,這樣,當(dāng)程序運行時,這些額 外的語句或指令將與原來的程序指令一起運行。這些插入的語句或指令將調(diào)用“內(nèi)存訪問 跟蹤”模塊中的例程,而“內(nèi)存訪問跟蹤”模塊中的例程將把內(nèi)存訪問事件記錄在存儲器(例 如,內(nèi)存中的列表、數(shù)據(jù)庫等)中。
程序插裝已被廣泛應(yīng)用于分析工具(例如動態(tài)內(nèi)存分析工具)、優(yōu)化工具和測試 工具。這些工具利用程序插裝來修改二進制碼或字節(jié)碼,以便實現(xiàn)諸如性能分析、代碼優(yōu)化 和覆蓋性測試分析等目標(biāo)。


圖1示出了用于內(nèi)存訪問跟蹤的程序插裝的示意圖。如圖所示,程序經(jīng)過插裝后 在運行時環(huán)境中運行,在運行過程中將通過插入的額外代碼調(diào)用內(nèi)存訪問跟蹤模塊,內(nèi)存 訪問跟蹤模塊將把內(nèi)存訪問事件存儲在存儲器中,并可從存儲器中加載已存儲的內(nèi)存訪問 事件,以用于進行相關(guān)的分析。
例如,對于如下所述的簡單的Java程序
權(quán)利要求
1.一種用于輔助內(nèi)存分析的方法,包括為程序運行中的每一個任務(wù)分配一個唯一的ID ;記錄程序運行過程中發(fā)生的內(nèi)存訪問事件,包括進行內(nèi)存訪問的任務(wù)的ID ; 響應(yīng)于一任務(wù)結(jié)束,發(fā)出任務(wù)結(jié)束通知,該任務(wù)結(jié)束通知包括該結(jié)束任務(wù)的ID ;以及 響應(yīng)于該任務(wù)結(jié)束通知,釋放內(nèi)存中具有該結(jié)束任務(wù)的ID的所有內(nèi)存訪問事件。
2.根據(jù)權(quán)利要求1的方法,其中,所述程序運行在面向?qū)ο笳Z言環(huán)境中,且所述為程序 運行中的每一個任務(wù)分配一個唯一的ID是通過以下方式實現(xiàn)的使用程序插裝在代表任務(wù)的對象的類中添加一個用于存儲對象ID的域;以及 修改該類的構(gòu)造器,以使其為該域分配一個唯一的數(shù)值,作為對象的唯一 ID。
3.根據(jù)權(quán)利要求1或2的方法,其中,所述響應(yīng)于一任務(wù)結(jié)束,發(fā)出任務(wù)結(jié)束通知是通 過以下方式實現(xiàn)的使用程序插裝在代表任務(wù)的對象的類中插入在對象運行結(jié)束時執(zhí)行的方法,該方法用 于發(fā)出包括該對象的ID的任務(wù)結(jié)束通知。
4.根據(jù)權(quán)利要求3的方法,其中,包括在任務(wù)結(jié)束通知中的該對象的ID是通過以下方 式獲得的使用程序插裝在代表任務(wù)的對象的類中插入在對象開始運行時執(zhí)行的方法,該方法用 于將該對象的ID存儲在一棧中;以及由所述在對象運行結(jié)束時執(zhí)行的方法從該棧的棧頂取出該對象的ID。
5.根據(jù)權(quán)利要求3的方法,其中,所述代表任務(wù)的對象的類為實現(xiàn)了任務(wù)執(zhí)行接口的類。
6.根據(jù)權(quán)利要求1的方法,其中,所述任務(wù)是由線程從工作隊列中獲取的。
7.一種用于輔助內(nèi)存分析的系統(tǒng),包括任務(wù)ID分配模塊,用于為程序運行中的每一個任務(wù)分配一個唯一的ID ; 內(nèi)存訪問跟蹤模塊,用于記錄程序運行過程中發(fā)生的內(nèi)存訪問事件,包括進行內(nèi)存訪 問的任務(wù)的ID ;任務(wù)結(jié)束通知模塊,用于響應(yīng)于一任務(wù)結(jié)束,發(fā)出任務(wù)結(jié)束通知,該任務(wù)結(jié)束通知包括 該結(jié)束任務(wù)的ID;以及任務(wù)跟蹤處理模塊,用于響應(yīng)于該任務(wù)結(jié)束通知,釋放內(nèi)存中具有該結(jié)束任務(wù)的ID的 所有內(nèi)存訪問事件。
8.根據(jù)權(quán)利要求7的系統(tǒng),其中,所述程序運行在面向?qū)ο笳Z言環(huán)境中,且所述任務(wù)ID 分配模塊是通過以下方式實現(xiàn)的使用程序插裝在代表任務(wù)的對象的類中添加一個用于存儲對象ID的域;以及 修改該類的構(gòu)造器,以使其為該域分配一個唯一的數(shù)值,作為對象的唯一 ID。
9.根據(jù)權(quán)利要求7或8的系統(tǒng),其中,所述任務(wù)結(jié)束通知模塊是通過以下方式實現(xiàn)的 使用程序插裝在代表任務(wù)的對象的類中插入在對象運行結(jié)束時執(zhí)行的方法,該方法用于發(fā)出包括該對象的ID的任務(wù)結(jié)束通知。
10.根據(jù)權(quán)利要求9的系統(tǒng),其中,包括在任務(wù)結(jié)束通知的該對象的ID是通知以下方式 獲得的使用程序插裝在代表任務(wù)的對象的類中插入在對象開始運行時執(zhí)行的方法,該方法用于將該對象的ID存儲在一棧中;以及由所述在對象運行結(jié)束時執(zhí)行的方法從該棧的棧頂取出該對象的ID。
11.根據(jù)權(quán)利要求9的系統(tǒng),其中,所述代表任務(wù)的對象的類為實現(xiàn)了任務(wù)執(zhí)行接口的類。
12.根據(jù)權(quán)利要求7的系統(tǒng),其中,所述任務(wù)是由線程從工作隊列中獲取的。
全文摘要
提出了一種用于輔助運行時內(nèi)存分析的方法和系統(tǒng),該方法包括為程序運行中的每一個任務(wù)分配一個唯一的ID;記錄程序運行過程中發(fā)生的內(nèi)存訪問事件,包括進行內(nèi)存訪問的任務(wù)的ID;響應(yīng)于一任務(wù)結(jié)束,發(fā)出任務(wù)結(jié)束通知,該任務(wù)結(jié)束通知包括該結(jié)束任務(wù)的ID;以及響應(yīng)于該任務(wù)結(jié)束通知,釋放內(nèi)存中具有該結(jié)束任務(wù)的ID的所有內(nèi)存訪問事件。本發(fā)明的方法和系統(tǒng)可確保內(nèi)存中存儲的內(nèi)存訪問事件不會無限制地增長,從而顯著地減少其內(nèi)存開銷,并使得動態(tài)內(nèi)存分析更快和更有效率。
文檔編號G06F11/36GK102033804SQ20091017569
公開日2011年4月27日 申請日期2009年9月29日 優(yōu)先權(quán)日2009年9月29日
發(fā)明者羅志達(dá), 齊堯 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
邵武市| 大英县| 东山县| 进贤县| 台南市| 安吉县| 波密县| 调兵山市| 宜川县| 襄汾县| 江门市| 永定县| 恭城| 肃宁县| 霍林郭勒市| 理塘县| 科尔| 乐东| 祁阳县| 惠来县| 景洪市| 林周县| 个旧市| 仁怀市| 理塘县| 内丘县| 正定县| 新宾| 思茅市| 鹤峰县| 南阳市| 合川市| 胶州市| 垣曲县| 申扎县| 资兴市| 金山区| 盐山县| 长治县| 中卫市| 古蔺县|