[發明專利]一種內存泄露檢測方法和裝置有效
| 申請號: | 200910198276.4 | 申請日: | 2009-11-04 |
| 公開(公告)號: | CN102053868A | 公開(公告)日: | 2011-05-11 |
| 發明(設計)人: | 姚欣;張少華;方濤 | 申請(專利權)人: | 突觸計算機系統(上海)有限公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50;G06F11/36 |
| 代理公司: | 北京市金杜律師事務所 11256 | 代理人: | 鄭立柱 |
| 地址: | 201203 上海市張江高*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 內存 泄露 檢測 方法 裝置 | ||
技術領域
本發明涉及一種內存泄露檢測的方法及其裝置,尤其涉及在通訊網絡中的內存泄露檢測方法及其裝置。
背景技術
內存泄漏是程序運行時的一種常見錯誤。一般指由于程序設計疏忽或錯誤造成程序運行時未能釋放已經不再使用的內存的情況。內存泄漏并非指內存在物理上的消失,而是應用程序失去對分配給該程序的內存的控制,因而造成了內存的浪費。
大多數的內存泄漏是指堆內存的泄漏。堆內存是指程序從堆中分配的并且使用完應當相應釋放的內存。根據系統要求,內存往往被分配成劃分成多個內存塊,每個內存塊的大小可以是任意的。如圖1所示,多個內存塊可以通過指針連成鏈,然后經過相應的內存塊鏈頭組成環,以便系統進行管理。應用程序一般使用malloc,realloc,new等函數從堆中分配到一個內存塊。被分配給進程的內存塊被從內存塊鏈中摘除,并由操作系統將該內存塊鏈接到該進程的進程控制塊。而當進程運行結束時,應當調用對應的free或delete函數釋放該內存塊,將該內存塊與進程控制塊分離,重新插入內存塊鏈。否則,該內存塊就無法被其他應用程序再次使用。
如果進程向系統請求歸還內存塊而系統由于各種原因未能將改內存塊插入內存塊鏈,或者進程結束卻由于程序設計原因未將內存塊歸還給系統,都有可能發生本文中提到的內存泄漏。內存泄漏會導致系統可用內存的數量,從而降低計算機的性能。如果系統不對內存泄露進行檢測和處理,則可能導致隨著時間的流失消耗掉越來越多的內存。最終,在最糟糕的情況下,過多的可用內存被分配掉而造成全部或部分設備停止正常工作,或者應用程序崩潰。
可見,如何有效地監控內存使用情況,及時找到內存泄露點是內存管理中需要考慮的重要問題。
發明內容
為解決現有技術中的上述問題,本發明提出了一種新的進行內存檢測的方案。通過實施本發明的技術方案可以快速準確的找到當前的內存泄漏點,有效的降低可用內存塊的流失,提高系統運行效率,避免系統崩潰。
根據本發明的一個具體實施例,提供了一種內存泄露檢測方法,其中,包括以下步驟:a.將分配給進程的內存塊劃分多個內存類,分別記錄每個所述內存類的內存塊申請信息和內存塊釋放信息,以及每個內存塊的地址信息;b.基于每個所述內存類的所述內存塊申請信息和所述內存塊釋放信息以及所述地址信息,確定內存泄露點。
根據本發明的一個具體實施例,提供了一種內存泄露檢測裝置,其特征在于,包括:信息統計裝置,用于將分配給進程的內存塊劃分多個內存類,分別記錄每個所述內存類的內存塊申請信息和內存塊釋放信息,以及每個內存塊的地址信息;泄露點確定裝置,用于基于每個所述內存類的所述內存塊申請信息和所述內存塊釋放信息以及所述地址信息,確定內存泄露點。
根據本發明的內存檢測方法和裝置,可以以內存類為單位對內存塊的申請和釋放信息進行統計,從而高效定位內存泄漏點。尤其是盡快找到占用較多可用內存塊較多的內存泄漏點。如果進一步對找到的內存泄漏點進行跟蹤和錯誤修復,就可以有效的解決內存泄漏現象的發生,確保系統的正常運行。
附圖說明
通過閱讀以下參照附圖對非限定性實施例所做的說明,本發明的其他方面、特征、優勢將會更為明顯。其中,相同或相似的參考標號表示相同或對應的特征。
圖1示出了現有技術中內存塊鏈的結構。
圖2示出了根據本發明的一個具體實施例的內存泄漏檢測方法的流程圖;
圖3示出了根據本發明的一個具體實施例的內存泄漏點確定方法的流程圖;
圖4示出了根據本發明的一個具體實施例的內存泄漏檢測方法的流程圖;
圖5示出了根據本發明的一個具體實施例的內存泄漏檢測裝置的框圖。
具體實施方式
以下參照附圖對本發明中的內存泄漏檢測方法進行說明。
需要說明的是,以下的各實施例中,將主要以內存塊鏈的內存管理結構為例對本發明的技術方案展開詳細描述。本領域技術人員應當了解,在現有技術中,系統也使用其它模式對內存進行管理。因此,本領據技術人員根據本文中的描述,可以不經創造性勞動的將本發明的技術方案應用于內存塊鏈以外的其它內存管理結構,而這種應用必然落入隨附權利要求書的保護范圍中。
圖2示出了根據本發明的一個具體實施例的內存泄漏檢測方法的流程圖。以下參照圖2對本發明的第一方面進行的第一實施例進行詳細描述。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于突觸計算機系統(上海)有限公司,未經突觸計算機系統(上海)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910198276.4/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:自補充式氣動車
- 下一篇:一種Linux操作系統的定制方法及系統





