System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及計算機,特別是涉及一種內存泄漏檢測方法、裝置、電子設備以及存儲介質。
技術介紹
1、內存泄漏是指程序在申請內存后,沒有正確地釋放該內存,導致系統無法再次使用該內存的情況。這種情況可能會導致程序運行緩慢,甚至崩潰。因此,應該注意避免內存泄漏的發生,確保程序的正常運行。
2、專利技術人在實現本專利技術的過程中,發現:相關技術中,在進行內存泄漏檢測時,會消耗大量cpu資源,影響服務器運行。
技術實現思路
1、基于此,本專利技術的目的在于,提供一種內存泄漏檢測方法、裝置、電子設備以及存儲介質,其具有不干擾服務器運行、實時檢測內存泄漏的優點。
2、根據本申請實施例的第一方面,提供一種內存泄漏檢測方法,包括如下步驟:
3、在當前幀循環內依次讀取當前幀循環加載的第一內存對象鏈表中的對象,若在當前幀循環內已讀取的對象數量大于或者等于預設數量閾值,獲取已讀取的對象的類信息,停止在當前幀循環內對第一內存對象鏈表進行讀??;
4、在當前幀循環的下一次幀循環內,對當前幀循環的下一次幀循環加載的第二內存對象鏈表中的對象進行讀取,若在當前幀循環的下一次幀循環內,已讀取的對象數量大于或者等于預設數量閾值,但未完成對第二內存對象鏈表的全部對象進行讀取,在當前幀循環的下一次幀循環的后續幀循環內,繼續對對應幀循環的內存對象鏈表進行對象讀取,直至讀取完對應內存對象鏈表中的全部對象;其中,第二內存對象鏈表根據第一內存對象鏈表、當前幀循環的下一次幀循環相比于當前幀
5、根據已讀取的對象的類信息,確定每個類對應的對象數量;
6、對每個類對應的對象數量按照從大到小進行排列,將對象數量排名靠前的預設數量的類進行內存泄漏檢測,獲得內存泄漏檢測結果。
7、根據本申請實施例的第二方面,提供一種內存泄漏檢測裝置,包括:
8、類信息獲取模塊,用于在當前幀循環內依次讀取當前幀循環加載的第一內存對象鏈表中的對象,若在當前幀循環內已讀取的對象數量大于或者等于預設數量閾值,獲取已讀取的對象的類信息,停止在當前幀循環內對第一內存對象鏈表進行讀取;
9、對象讀取模塊,用于在當前幀循環的下一次幀循環內,對當前幀循環的下一次幀循環加載的第二內存對象鏈表中的對象進行讀取,若在當前幀循環的下一次幀循環內,已讀取的對象數量大于或者等于預設數量閾值,但未完成對第二內存對象鏈表的全部對象進行讀取,在當前幀循環的下一次幀循環的后續幀循環內,繼續對對應幀循環的內存對象鏈表進行對象讀取,直至讀取完對應內存對象鏈表中的全部對象;其中,第二內存對象鏈表根據第一內存對象鏈表、當前幀循環的下一次幀循環相比于當前幀循環的對象變化數據確定;
10、對象數量確定模塊,用于根據已讀取的對象的類信息,確定每個類對應的對象數量;
11、內存泄漏檢測結果獲得模塊,用于對每個類對應的對象數量按照從大到小進行排列,將對象數量排名靠前的預設數量的類進行內存泄漏檢測,獲得內存泄漏檢測結果。
12、根據本申請實施例的第三方面,提供一種電子設備,包括:處理器和存儲器;其中,存儲器存儲有計算機程序,計算機程序適于由處理器加載并執行如上述任意一項的內存泄漏檢測方法。
13、根據本申請實施例的第四方面,提供一種計算機可讀存儲介質,其上儲存有計算機程序,該計算機程序被處理器執行時實現如上述任意一項的內存泄漏檢測方法。
14、本申請實施例通過在當前幀循環內依次讀取當前幀循環加載的第一內存對象鏈表中的對象,若在當前幀循環內已讀取的對象數量大于或者等于預設數量閾值,獲取已讀取的對象的類信息,停止在當前幀循環內對第一內存對象鏈表進行讀??;在當前幀循環的下一次幀循環內,對當前幀循環的下一次幀循環加載的第二內存對象鏈表中的對象進行讀取,若在當前幀循環的下一次幀循環內,已讀取的對象數量大于或者等于預設數量閾值,但未完成對第二內存對象鏈表的全部對象進行讀取,在當前幀循環的下一次幀循環的后續幀循環內,繼續對對應幀循環的內存對象鏈表進行對象讀取,直至讀取完對應內存對象鏈表中的全部對象;其中,第二內存對象鏈表根據第一內存對象鏈表、當前幀循環的下一次幀循環相比于當前幀循環的對象變化數據確定;根據已讀取的對象的類信息,確定每個類對應的對象數量;對每個類對應的對象數量按照從大到小進行排列,將對象數量排名靠前的預設數量的類進行內存泄漏檢測,獲得內存泄漏檢測結果。本申請通過多次幀循環讀取完對象,由于每次幀循環只讀取一定數量的對象,而不是一次幀循環內讀取完全部對象,只占用很小一部分cpu資源,避免了影響服務器正常運行,提高了服務器的穩定性。同時,無需中斷程序,在幀循環期間即可完成內存泄漏檢測,實現了內存泄漏的實時檢測。
15、應當理解的是,以上的一般描述和后文的細節描述僅是示例性和解釋性的,并不能限制本申請。
16、為了更好地理解和實施,下面結合附圖詳細說明本專利技術。
本文檔來自技高網...【技術保護點】
1.一種內存泄漏檢測方法,其特征在于,所述方法包括如下步驟:
2.根據權利要求1所述的內存泄漏檢測方法,其特征在于:
3.根據權利要求1所述的內存泄漏檢測方法,其特征在于:
4.根據權利要求3所述的內存泄漏檢測方法,其特征在于:
5.根據權利要求1所述的內存泄漏檢測方法,其特征在于:
6.根據權利要求5所述的內存泄漏檢測方法,其特征在于:
7.根據權利要求1至6任一項所述的內存泄漏檢測方法,其特征在于:
8.一種內存泄漏檢測裝置,其特征在于,包括:
9.一種電子設備,其特征在于,包括:處理器和存儲器;其中,所述存儲器存儲有計算機程序,所述計算機程序適于由所述處理器加載并執行如權利要求1至7中任意一項所述的內存泄漏檢測方法。
10.一種計算機可讀存儲介質,其上儲存有計算機程序,其特征在于,該計算機程序被處理器執行時實現如權利要求1至7中任意一項所述的內存泄漏檢測方法。
【技術特征摘要】
1.一種內存泄漏檢測方法,其特征在于,所述方法包括如下步驟:
2.根據權利要求1所述的內存泄漏檢測方法,其特征在于:
3.根據權利要求1所述的內存泄漏檢測方法,其特征在于:
4.根據權利要求3所述的內存泄漏檢測方法,其特征在于:
5.根據權利要求1所述的內存泄漏檢測方法,其特征在于:
6.根據權利要求5所述的內存泄漏檢測方法,其特征在于:
7.根據權利要求1至6任一項...
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。