[發明專利]定位內存泄漏的方法、服務器端、客戶端和系統有效
| 申請號: | 201010111619.1 | 申請日: | 2010-02-09 |
| 公開(公告)號: | CN102148844A | 公開(公告)日: | 2011-08-10 |
| 發明(設計)人: | 周慶益 | 申請(專利權)人: | 深圳市金蝶中間件有限公司 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08;G06F11/34 |
| 代理公司: | 北京三高永信知識產權代理有限責任公司 11138 | 代理人: | 何文彬 |
| 地址: | 518057 廣東省深圳市南山區高*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 定位 內存 泄漏 方法 服務器端 客戶端 系統 | ||
技術領域
本發明涉及網絡技術領域,特別涉及一種定位內存泄漏的方法、服務器端、客戶端和系統。
背景技術
當應用程序在運行的過程中發生問題時,JVM(Java?Virtual?Machine,Java虛擬機)能夠記錄下問題發生時系統的運行狀態,并將其存儲在heap?dump文件即轉儲文件中,以便于開發者、程序員查看和調試,為分析和診斷問題提供了重要的依據。heap?dump文件中記載的運行狀態通常包括系統內存中的數據,以及對象之間的引用關系等。應用程序在運行過程中發生的問題通常為內存泄漏問題。利用專用的工具對heap?dump文件進行分析,能夠定位到內存泄漏源處的對象,以及對象之間的引用關系,并展示給用戶。
現有技術中,通常利用基于GUI(Graphical?User?Interface,圖形用戶界面)的分析工具來對heap?dump文件進行分析,并將反映對象之間引用關系的樹形結構展示給用戶,用戶在該樹形結構中查看泄漏源。
但是上述技術依賴于專用的工具,需要在服務器端使用專用的工具,才能完成內存泄漏源的定位及展示,且定位及展示均是在服務器端本地完成的。當需要在遠程的客戶端展示內存泄漏源的定位結果時,該技術目前還無法實現。
發明內容
為了解決現有技術的問題,本發明實施例提供了一種定位內存泄漏的方法、服務器端、客戶端和系統。所述技術方案如下:
一種定位內存泄漏的方法,所述方法包括:
對轉儲文件進行分析得到內存泄漏信息,所述內存泄漏信息包括內存泄漏源對應的第一對象的信息,以及引起內存泄漏的引用關系的信息,所述引用關系的終止對象為所述第一對象;
接收客戶端在瀏覽器和服務器B/S模式下發來的定位內存泄漏的請求;
將所述第一對象的信息和引用關系的信息發送給所述客戶端,使得所述客戶端根據收到的信息獲取到所述第一對象和引用關系,并展示所述第一對象和引用關系。
將所述第一對象的信息和引用關系的信息發送給所述客戶端,具體包括:
在所述內存泄漏信息中,從所述引用關系的起始對象開始,按照引用的順序依次讀取并發送所述引用關系中每個對象的信息給所述客戶端,直到所述第一對象的信息發送完成為止。
所述方法還包括:
在所述引用關系中的每個對象的開始讀取時刻,設置狀態標識為讀取狀態,使得在讀取狀態下不再響應所述客戶端的其它請求;
在所述引用關系中的每個對象的結束讀取時刻,設置所述狀態標識為非讀取狀態,使得在非讀取狀態下能夠響應所述客戶端的其它請求。
一種定位內存泄漏的方法,所述方法包括:
在瀏覽器和服務器B/S模式下向服務器端發送定位內存泄漏的請求;
接收所述服務器端返回的內存泄漏信息,所述內存泄漏信息包括內存泄漏源對應的第一對象的信息,以及引起內存泄漏的引用關系的信息,所述引用關系的終止對象為所述第一對象,且所述內存泄漏信息為所述服務器端對轉儲文件進行分析后得到的;
根據接收到的所述第一對象的信息和所述引用關系的信息,獲取到所述第一對象和引用關系,并展示所述第一對象和引用關系。
所述根據接收到的所述第一對象的信息和所述引用關系的信息,獲取到所述第一對象和引用關系,并展示所述第一對象和引用關系,具體包括:
根據接收到的所述第一對象的信息和所述引用關系的信息,獲取到所述第一對象和引用關系,根據所述第一對象和引用關系生成樹形結構,并展示所述樹形結構。
一種定位內存泄漏的服務器端,所述服務器端包括:
分析模塊,用于對轉儲文件進行分析得到內存泄漏信息,所述內存泄漏信息包括內存泄漏源對應的第一對象的信息,以及引起內存泄漏的引用關系的信息,所述引用關系的終止對象為所述第一對象;
接收模塊,用于接收客戶端在瀏覽器和服務器B/S模式下發來的定位內存泄漏的請求;
發送模塊,用于在所述接收模塊收到所述請求后,將所述分析模塊得到的所述第一對象的信息和引用關系的信息發送給所述客戶端,使得所述客戶端根據收到的信息獲取到所述第一對象和引用關系,并展示所述第一對象和引用關系。
所述發送模塊具體包括:
發送單元,用于在所述接收模塊收到所述請求后,在所述分析模塊得到的所述內存泄漏信息中,從所述引用關系的起始對象開始,按照引用的順序依次讀取并發送所述引用關系中每個對象的信息給所述客戶端,直到所述第一對象的信息發送完成為止,使得所述客戶端根據收到的信息獲取到所述第一對象和引用關系,并展示所述第一對象和引用關系。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳市金蝶中間件有限公司,未經深圳市金蝶中間件有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010111619.1/2.html,轉載請聲明來源鉆瓜專利網。





