欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

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

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


圖1示出了用于內存訪問跟蹤的程序插裝的示意圖。如圖所示,程序經過插裝后 在運行時環(huán)境中運行,在運行過程中將通過插入的額外代碼調用內存訪問跟蹤模塊,內存 訪問跟蹤模塊將把內存訪問事件存儲在存儲器中,并可從存儲器中加載已存儲的內存訪問 事件,以用于進行相關的分析。
例如,對于如下所述的簡單的Java程序
權利要求
1.一種用于輔助內存分析的方法,包括為程序運行中的每一個任務分配一個唯一的ID ;記錄程序運行過程中發(fā)生的內存訪問事件,包括進行內存訪問的任務的ID ; 響應于一任務結束,發(fā)出任務結束通知,該任務結束通知包括該結束任務的ID ;以及 響應于該任務結束通知,釋放內存中具有該結束任務的ID的所有內存訪問事件。
2.根據權利要求1的方法,其中,所述程序運行在面向對象語言環(huán)境中,且所述為程序 運行中的每一個任務分配一個唯一的ID是通過以下方式實現的使用程序插裝在代表任務的對象的類中添加一個用于存儲對象ID的域;以及 修改該類的構造器,以使其為該域分配一個唯一的數值,作為對象的唯一 ID。
3.根據權利要求1或2的方法,其中,所述響應于一任務結束,發(fā)出任務結束通知是通 過以下方式實現的使用程序插裝在代表任務的對象的類中插入在對象運行結束時執(zhí)行的方法,該方法用 于發(fā)出包括該對象的ID的任務結束通知。
4.根據權利要求3的方法,其中,包括在任務結束通知中的該對象的ID是通過以下方 式獲得的使用程序插裝在代表任務的對象的類中插入在對象開始運行時執(zhí)行的方法,該方法用 于將該對象的ID存儲在一棧中;以及由所述在對象運行結束時執(zhí)行的方法從該棧的棧頂取出該對象的ID。
5.根據權利要求3的方法,其中,所述代表任務的對象的類為實現了任務執(zhí)行接口的類。
6.根據權利要求1的方法,其中,所述任務是由線程從工作隊列中獲取的。
7.一種用于輔助內存分析的系統(tǒng),包括任務ID分配模塊,用于為程序運行中的每一個任務分配一個唯一的ID ; 內存訪問跟蹤模塊,用于記錄程序運行過程中發(fā)生的內存訪問事件,包括進行內存訪 問的任務的ID ;任務結束通知模塊,用于響應于一任務結束,發(fā)出任務結束通知,該任務結束通知包括 該結束任務的ID;以及任務跟蹤處理模塊,用于響應于該任務結束通知,釋放內存中具有該結束任務的ID的 所有內存訪問事件。
8.根據權利要求7的系統(tǒng),其中,所述程序運行在面向對象語言環(huán)境中,且所述任務ID 分配模塊是通過以下方式實現的使用程序插裝在代表任務的對象的類中添加一個用于存儲對象ID的域;以及 修改該類的構造器,以使其為該域分配一個唯一的數值,作為對象的唯一 ID。
9.根據權利要求7或8的系統(tǒng),其中,所述任務結束通知模塊是通過以下方式實現的 使用程序插裝在代表任務的對象的類中插入在對象運行結束時執(zhí)行的方法,該方法用于發(fā)出包括該對象的ID的任務結束通知。
10.根據權利要求9的系統(tǒng),其中,包括在任務結束通知的該對象的ID是通知以下方式 獲得的使用程序插裝在代表任務的對象的類中插入在對象開始運行時執(zhí)行的方法,該方法用于將該對象的ID存儲在一棧中;以及由所述在對象運行結束時執(zhí)行的方法從該棧的棧頂取出該對象的ID。
11.根據權利要求9的系統(tǒng),其中,所述代表任務的對象的類為實現了任務執(zhí)行接口的類。
12.根據權利要求7的系統(tǒng),其中,所述任務是由線程從工作隊列中獲取的。
全文摘要
提出了一種用于輔助運行時內存分析的方法和系統(tǒng),該方法包括為程序運行中的每一個任務分配一個唯一的ID;記錄程序運行過程中發(fā)生的內存訪問事件,包括進行內存訪問的任務的ID;響應于一任務結束,發(fā)出任務結束通知,該任務結束通知包括該結束任務的ID;以及響應于該任務結束通知,釋放內存中具有該結束任務的ID的所有內存訪問事件。本發(fā)明的方法和系統(tǒng)可確保內存中存儲的內存訪問事件不會無限制地增長,從而顯著地減少其內存開銷,并使得動態(tài)內存分析更快和更有效率。
文檔編號G06F11/36GK102033804SQ20091017569
公開日2011年4月27日 申請日期2009年9月29日 優(yōu)先權日2009年9月29日
發(fā)明者羅志達, 齊堯 申請人:國際商業(yè)機器公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
朝阳区| 柯坪县| 海口市| 五原县| 广饶县| 托克逊县| 萍乡市| 罗田县| 乐平市| 青岛市| 依兰县| 岳阳市| 淄博市| 穆棱市| 南昌市| 乐陵市| 太谷县| 吉木乃县| 儋州市| 榆树市| 孝义市| 宜兰市| 府谷县| 兴隆县| 大宁县| 赤峰市| 鄂州市| 西宁市| 思茅市| 区。| 偏关县| 桦甸市| 祥云县| 伽师县| 页游| 台湾省| 曲沃县| 岢岚县| 苏尼特左旗| 搜索| 桂阳县|