[發明專利]輔助內存分析的方法和系統無效
| 申請號: | 200910175692.2 | 申請日: | 2009-09-29 |
| 公開(公告)號: | CN102033804A | 公開(公告)日: | 2011-04-27 |
| 發明(設計)人: | 羅志達;齊堯 | 申請(專利權)人: | 國際商業機器公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京市中咨律師事務所 11247 | 代理人: | 于靜;張亞非 |
| 地址: | 美國*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 輔助 內存 分析 方法 系統 | ||
技術領域
本發明涉及計算機領域,具體涉及運行時內存分析,更具體涉及一種用于輔助運行時內存分析的方法和系統。
背景技術
為了檢測程序中潛在的運行時內存問題,通常進行程序插裝以跟蹤程序運行時的內存訪問事件,就是說,將某些額外的語句或指令插入程序中,這樣,當程序運行時,這些額外的語句或指令將與原來的程序指令一起運行。這些插入的語句或指令將調用“內存訪問跟蹤”模塊中的例程,而“內存訪問跟蹤”模塊中的例程將把內存訪問事件記錄在存儲器(例如,內存中的列表、數據庫等)中。
程序插裝已被廣泛應用于分析工具(例如動態內存分析工具)、優化工具和測試工具。這些工具利用程序插裝來修改二進制碼或字節碼,以便實現諸如性能分析、代碼優化和覆蓋性測試分析等目標。
圖1示出了用于內存訪問跟蹤的程序插裝的示意圖。如圖所示,程序經過插裝后在運行時環境中運行,在運行過程中將通過插入的額外代碼調用內存訪問跟蹤模塊,內存訪問跟蹤模塊將把內存訪問事件存儲在存儲器中,并可從存儲器中加載已存儲的內存訪問事件,以用于進行相關的分析。
例如,對于如下所述的簡單的Java程序:
對其中的某些語句進行插裝以便記錄內存訪問操作,插裝后的程序如下(實際上,所有的插裝都是針對二進制碼或字節碼進行的,而不是針對源碼進行的,所示程序僅是為了例示插裝時代碼是如何修改的):
這樣,在該程序運行過程中,當程序在類Simple的域i中寫入一個新值時,方法addMemAccess將被調用。該方法addMemAccess具有4個參數,包括內存訪問對象引用、域名稱、訪問類型和當前線程ID(標識)。這樣,該方法將在存儲器中記錄一個包含上述信息的內存訪問事件,并可以針對已記錄的內存訪問事件進行動態內存分析。
線程是一種獨立的、可調度的指令流,是在進程上下文中運行的邏輯流程。由于當今的多核處理器對并行軟件的需求,線程成為越來越重要的編程模型。雖然線程與進程相比是一種遠為輕量級的執行單位,頻繁地創建和終止線程仍然是很昂貴的。為了減少線程創建和終止,現代系統允許線程在其生命期中持續地獲取和執行多個任務。
任務是一種代表指令序列的單獨的作業,并且與其他作業完全獨立。一個線程實際上包含多個任務,每個任務運行在線程的上下文中。當一個任務在線程中執行完畢后,線程獲取準備好執行的另一個任務。線程中的任務通常是順序執行的,而沒有交錯。典型的線程/任務模型是線程池和工作隊列,其在行業軟件中被廣泛使用以提高系統吞吐量和性能。
由于動態內存分析工具應當記錄每一次內存訪問事件,隨著程序的運行,將有越來越多的內存訪問事件被記錄在存儲器(例如內存)中,這樣,內存開銷將會越來越大,與此同時,動態內存分析將變得越來越慢。
圖2示出了兩種示例性應用在使用程序插裝進行動態內存分析前后的內存占用的比較。如圖所示,對于WAS?Trade應用,動態內存分析的內存開銷是3.3倍,而對于Tomcat應用,動態內存分析的內存開銷是3-5倍。可見,在動態內存分析中跟蹤內存訪問將帶來極大的額外內存占用。
因此,本領域中需要一種能夠減少運行時內存分析中的內存開銷從而使運行時內存分析更為高效的方法。
發明內容
在本發明的一個方面,提出了一種用于輔助內存分析的方法,包括:為程序運行中的每一個任務分配一個唯一的ID(標識);記錄程序運行過程中發生的內存訪問事件,包括進行內存訪問的任務的ID;響應于一任務結束,發出任務結束通知,該任務結束通知包括該結束任務的ID;以及響應于該任務結束通知,釋放內存中具有該結束任務的ID的所有內存訪問事件。
在本發明的另一個方面,提出了一種用于輔助內存分析的系統,包括:任務ID分配模塊,用于為程序運行中的每一個任務分配一個唯一的ID;內存訪問跟蹤模塊,用于記錄程序運行過程中發生的內存訪問事件,包括進行內存訪問的任務的ID;任務結束通知模塊,用于響應于一任務結束,發出任務結束通知,該任務結束通知包括該結束任務的ID;以及任務跟蹤處理模塊,用于響應于該任務結束通知,釋放內存中具有該結束任務的ID的所有內存訪問事件。
附圖說明
所附權利要求中闡述了被認為是本發明的特點的創造性特征。但是,通過參照附圖閱讀下面對說明性實施例的詳細說明可更好地理解發明本身以及其優選使用模式、目標、特征以及優點,在附圖中:
圖1是用于內存訪問跟蹤的程序插裝的示意圖;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于國際商業機器公司,未經國際商業機器公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910175692.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種五子棋游戲裝置
- 下一篇:冷量可變式旋轉壓縮機的控制方法及其應用





