[發明專利]內存泄漏定位方法、裝置、計算機設備及存儲介質有效
| 申請號: | 202011436123.1 | 申請日: | 2020-12-10 |
| 公開(公告)號: | CN112463626B | 公開(公告)日: | 2023-07-11 |
| 發明(設計)人: | 陳偉杰;賀彥 | 申請(專利權)人: | 網易(杭州)網絡有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 深圳紫藤知識產權代理有限公司 44570 | 代理人: | 遠明 |
| 地址: | 310052 浙江省杭州*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 內存 泄漏 定位 方法 裝置 計算機 設備 存儲 介質 | ||
1.一種內存泄漏定位方法,其特征在于,包括:
當檢測到系統存在內存泄漏時,調用對象計算接口對系統垃圾回收器跟蹤的對象集中未執行歸集計算的對象執行所述歸集計算;
若未執行所述歸集計算的對象被執行所述歸集計算的數量達到第一預設閾值,則停止執行所述歸集計算,直至所述歸集計算的停止時間達到第二預設閾值;
若所述歸集計算的停止時間達到所述第二預設閾值,則對未執行所述歸集計算的對象執行所述歸集計算,直至未執行所述歸集計算的對象被執行所述歸集計算的數量達到所述第一預設閾值;
當確定所述對象集包括的對象已全部被執行所述歸集計算,復制提供對象引用圖的父進程生成對應的子進程;
利用所述子進程調用關系獲取接口,根據所述歸集計算的結果生成內存泄漏源對應的第一對象的對象引用圖。
2.根據權利要求1所述的方法,其特征在于,所述對象計算接口包括對象個數計算接口、對象獲取接口和對象類型排列接口。
3.根據權利要求2所述的方法,其特征在于,所述調用對象計算接口,對系統垃圾回收器跟蹤的對象集中未執行歸集計算的對象執行所述歸集計算,包括:
調用所述對象個數計算接口,計算所述對象集中未執行所述歸集計算的對象所屬的系統類型包括的對象個數;
調用所述對象類型排列接口,根據包括的對象個數排列所述系統類型,生成系統類型列表;
調用所述對象獲取接口,根據所述系統類型列表確定目標系統類型,獲取所述目標系統類型包括的對象信息。
4.根據權利要求3所述的方法,其特征在于,所述利用所述子進程調用關系獲取接口,根據所述歸集計算的結果生成內存泄漏源對應的第一對象的對象引用圖,包括:
接收用戶根據所述目標系統類型包括的對象信息設置的所述內存泄漏源對應的所述第一對象;
利用所述子進程調用所述關系獲取接口,遍歷所述系統垃圾回收器跟蹤的所述對象集,確定引用所述第一對象的目標對象;
根據所述目標對象和所述第一對象的引用關系生成所述對象引用圖。
5.根據權利要求4所述的方法,其特征在于,所述目標對象包括第一目標對象和第二目標對象,所述第一目標對象直接引用所述第一對象,所述第二目標對象引用所述第一目標對象。
6.根據權利要求5所述的方法,其特征在于,所述對象引用圖包括起始對象和終止對象,所述起始對象為至少一所述第二目標對象,所述終止對象為所述第一對象。
7.根據權利要求1所述的方法,其特征在于,所述方法還包括:
根據所述對象引用圖獲取引用所述第一對象的目標對象和所述目標對象引用所述第一對象的途徑;
根據所述目標對象引用所述第一對象的途徑定位存在所述內存泄漏的系統代碼。
8.根據權利要求3所述的方法,其特征在于,所述調用所述對象個數計算接口,計算所述對象集中未執行所述歸集計算的對象所屬的系統類型包括的對象個數,包括:
調用所述對象個數計算接口,獲取所述對象集中未執行所述歸集計算的對象信息;
根據所述對象集中未執行所述歸集計算的對象信息確定所述系統類型;
計算所述系統類型包括的對象個數。
9.根據權利要求3所述的方法,其特征在于,所述根據所述系統類型列表確定目標系統類型,包括:
在所述系統類型列表中,確定所述對象個數超過第三預設閾值的系統類型為所述目標系統類型。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于網易(杭州)網絡有限公司,未經網易(杭州)網絡有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011436123.1/1.html,轉載請聲明來源鉆瓜專利網。





