[發明專利]一種內存管理方法及設備在審
| 申請號: | 201611186212.9 | 申請日: | 2016-12-20 |
| 公開(公告)號: | CN106648893A | 公開(公告)日: | 2017-05-10 |
| 發明(設計)人: | 寧志明;汪義舟 | 申請(專利權)人: | 北京匡恩網絡科技有限責任公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50;G06F9/44 |
| 代理公司: | 北京潤平知識產權代理有限公司11283 | 代理人: | 羅攀,肖冰濱 |
| 地址: | 100191 北京市海淀*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 內存 管理 方法 設備 | ||
技術領域
本公開涉及計算機技術領域,具體地,涉及一種內存管理方法及設備。
背景技術
內存泄漏是應用程序中很常見的問題之一。現在隨著計算機科學的發展,很多高級編程語言采用動態內存垃圾回收機制,編程語言虛擬機自動管理內存,這就大大減少了內存泄漏的問題。但是對于C/C++語言,由于其具有適用于嵌入式系統開發、性能高、可靈活掌握內存等特點,依然有著不可替代性。C/C++語言具有指針引用的特點,應用程序申請的內存經過多重引用,容易出現內存泄露的情況,而C/C++語言程序沒有內存垃圾回收機制,需要用戶手動管理內存,即C/C++應用程序的代碼需要手動控制內存申請和釋放。
目前已經有了一些分析內容泄漏的工具,即內存分析程序。但這些內存分析程序,一般是運行在X86體系結構的主機上,不適用于PowerPC,MIPS,ARM等各種嵌入式處理器環境,導致嵌入式環境內存泄漏問題調試很困難。
發明內容
為克服相關技術中存在的問題,本公開提供一種內存管理方法及設備。
根據本公開實施例的第一方面,提供一種內存管理方法,包括:
接收來自應用程序的內存調用請求;
根據所述內存調用請求,從LD_PRELOAD環境變量所指定的動態庫調用相應的API來進行內存調用;以及
記錄與所述內存調用請求相關的信息,所述內存調用請求相關的信息包含所述內存調用請求所申請的內存大小及所述應用程序的調用函數的地址。
根據本公開實施例的第二方面,提供一種內存管理裝置,包括:
接收單元,用于接收來自應用程序的內存調用請求;
動態庫確定單元,用于根據所述內存調用請求,從LD_PRELOAD環境變量所指定的動態庫調用相應的API來進行內存調用;以及
記錄單元,用于記錄與所述內存調用請求相關的信息,所述內存調用請求相關的信息包含所述內存調用請求所申請的內存大小及所述應用程序的調用函數的地址。
本公開的實施例提供的技術方案可以包括以下有益效果:LD_PRELOAD環境變量所指定的動態庫提供了C語言內存管理函數常用的API的替換函數,這些替換函數在實際名稱及功能方面與常規GlibC的內存申請API是一樣的,只是在其中增加了有關與記錄與所述內存調用請求相關的信息,從而無需修改應用程序,僅需在啟動應用程序的腳本中使用LD_PERLOAD環境變量指定動態庫,之后使用該動態庫內的含內存調用請求相關信息記錄功能的代碼的API來替代C語言內存管理函數的常用內存調用API從而應用程序在進行內存調用時,既可以實現內存調用或分配,又可記錄與該內存調用相關的信息,達到內存調用及管理的目的。此外,本公開實施例的動態庫是充分地利用了Glibc的基礎特性,可移植性較強,示例性地,可以完整地移植到各種嵌入式平臺,且在交叉編譯過程中不會出現問題,實現有效移植。
應當理解的是,以上的一般描述和后文的細節描述僅是示例性和解釋性的,并不能限制本公開。
附圖說明
附圖是用來提供對本公開的進一步理解,并且構成說明書的一部分,與下面的具體實施方式一起用于解釋本公開,但并不構成對本公開的限制。在附圖中:
圖1為本公開一實施例提供的內存管理方法的流程圖;
圖2A為相關技術中應用程序對于內存申請API的調用方式的示意圖;
圖2B為本公開中應用程序對于內存申請API的調用方式的示意圖;
圖3為本公開一實施例的內存申請流程圖;
圖4為本公開另一實施例的內存管理方法的流程圖;
圖5為本公開一實施例提供的內存管理設備的結構框圖;以及
圖6為本公開另一實施例提供的內存管理設備的結構框圖。
具體實施方式
這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本公開相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本公開的一些方面相一致的裝置和方法的例子。
以下結合附圖對本公開提供的內存管理方法及設備的具體實施方式進行詳細說明。應當理解的是,此處所描述的具體實施方式僅用于說明和解釋本公開,并不用于限制本公開。
圖1為本公開一實施例提供的內存管理方法的流程圖。如圖1所示,本公開一實施例提供了一種內存管理方法,該方法包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京匡恩網絡科技有限責任公司,未經北京匡恩網絡科技有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611186212.9/2.html,轉載請聲明來源鉆瓜專利網。





