本申請(qǐng)涉及內(nèi)存檢測(cè),尤其是一種基于終端運(yùn)行時(shí)的內(nèi)存合規(guī)檢測(cè)方法、系統(tǒng)、裝置與存儲(chǔ)介質(zhì)。
背景技術(shù):
1、現(xiàn)有的嵌入式終端設(shè)備在編寫(xiě)較復(fù)雜的程序時(shí),一般會(huì)使用動(dòng)態(tài)內(nèi)存分配機(jī)制,這種機(jī)制一般配合多線(xiàn)程使用。雖然動(dòng)態(tài)內(nèi)存使用方便,但是需要開(kāi)發(fā)人員嚴(yán)格執(zhí)行內(nèi)存的申請(qǐng)、使用和釋放規(guī)則。如果沒(méi)有將不再使用的內(nèi)存進(jìn)行釋放,則會(huì)造成內(nèi)存泄露。如果線(xiàn)程非法使用其他線(xiàn)程申請(qǐng)的內(nèi)存,則會(huì)造成數(shù)據(jù)污染。如果非法釋放不屬于自己的內(nèi)存,則會(huì)造成程序奔潰。因此,相關(guān)技術(shù)中仍存在需要解決的技術(shù)問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、本申請(qǐng)的目的在于至少一定程度上解決現(xiàn)有技術(shù)中存在的技術(shù)問(wèn)題之一。
2、為此,本申請(qǐng)實(shí)施例的一個(gè)目的在于提供一種基于終端運(yùn)行時(shí)的內(nèi)存合規(guī)檢測(cè)方法、系統(tǒng)、裝置與存儲(chǔ)介質(zhì),該方案可以提高故障定位的效率,提升內(nèi)存管理效率,增強(qiáng)終端的整體可靠性與穩(wěn)定性。
3、為了達(dá)到上述技術(shù)目的,本申請(qǐng)實(shí)施例所采取的技術(shù)方案包括:一種基于終端運(yùn)行時(shí)的內(nèi)存合規(guī)檢測(cè)方法,包括以下步驟:響應(yīng)于第一線(xiàn)程的若干個(gè)申請(qǐng)內(nèi)存操作,生成內(nèi)存節(jié)點(diǎn)信息登記表;所述內(nèi)存節(jié)點(diǎn)信息登記表包括若干個(gè)內(nèi)存節(jié)點(diǎn),每個(gè)所述內(nèi)存節(jié)點(diǎn)對(duì)應(yīng)一個(gè)內(nèi)存地址信息;響應(yīng)于第二線(xiàn)程的使用內(nèi)存操作以及釋放內(nèi)存操作,提取所述第二線(xiàn)程的線(xiàn)程句柄表;基于所述線(xiàn)程句柄表以及所述內(nèi)存地址信息,確定所述第二線(xiàn)程對(duì)應(yīng)的目標(biāo)節(jié)點(diǎn)信息;基于預(yù)設(shè)節(jié)點(diǎn)信息以及所述目標(biāo)節(jié)點(diǎn)信息,確定檢測(cè)結(jié)果。
4、本申請(qǐng)可以響應(yīng)于第一線(xiàn)程的若干個(gè)申請(qǐng)內(nèi)存操作,生成內(nèi)存節(jié)點(diǎn)信息登記表;所述內(nèi)存節(jié)點(diǎn)信息登記表包括若干個(gè)內(nèi)存節(jié)點(diǎn),每個(gè)所述內(nèi)存節(jié)點(diǎn)對(duì)應(yīng)一個(gè)內(nèi)存地址信息;響應(yīng)于第二線(xiàn)程的使用內(nèi)存操作以及釋放內(nèi)存操作,提取所述第二線(xiàn)程的線(xiàn)程句柄表;基于所述線(xiàn)程句柄表以及所述內(nèi)存地址信息,確定所述第二線(xiàn)程對(duì)應(yīng)的目標(biāo)節(jié)點(diǎn)信息;基于預(yù)設(shè)節(jié)點(diǎn)信息以及所述目標(biāo)節(jié)點(diǎn)信息,確定檢測(cè)結(jié)果。本申請(qǐng)可以提高故障定位的效率,提升內(nèi)存管理效率,增強(qiáng)終端的整體可靠性與穩(wěn)定性。
5、另外,根據(jù)本發(fā)明中上述實(shí)施例的一種基于終端運(yùn)行時(shí)的內(nèi)存合規(guī)檢測(cè)方法,還可以有以下附加的技術(shù)特征:
6、進(jìn)一步地,本申請(qǐng)實(shí)施例中,所述第一線(xiàn)程與所述第二線(xiàn)程為不同的兩個(gè)線(xiàn)程。
7、進(jìn)一步地,本申請(qǐng)實(shí)施例中,所述目標(biāo)節(jié)點(diǎn)信息包括目標(biāo)內(nèi)存剩余時(shí)間,所述預(yù)設(shè)節(jié)點(diǎn)信息包括第一內(nèi)存剩余時(shí)間值以及第二內(nèi)存剩余時(shí)間值,所述基于預(yù)設(shè)節(jié)點(diǎn)信息以及所述目標(biāo)節(jié)點(diǎn)信息,確定檢測(cè)結(jié)果,包括:
8、在釋放內(nèi)存過(guò)程中,所述目標(biāo)內(nèi)存剩余時(shí)間與所述第一內(nèi)存剩余時(shí)間值相同,確定所述檢測(cè)結(jié)果為第一檢測(cè)結(jié)果;所述第一檢測(cè)結(jié)果用于表征釋放內(nèi)存過(guò)程中內(nèi)存存在泄漏;
9、在釋放內(nèi)存后,所述目標(biāo)內(nèi)存剩余時(shí)間與所述第二內(nèi)存剩余時(shí)間值相同,確定所述檢測(cè)結(jié)果為第二檢測(cè)結(jié)果;所述第一檢測(cè)結(jié)果用于表征內(nèi)存釋放存在誤釋放。
10、進(jìn)一步地,本申請(qǐng)實(shí)施例中,所述預(yù)設(shè)節(jié)點(diǎn)信息包括釋放節(jié)點(diǎn)id,所述目標(biāo)節(jié)點(diǎn)信息包括目標(biāo)節(jié)點(diǎn)id,所述基于預(yù)設(shè)節(jié)點(diǎn)信息以及所述目標(biāo)節(jié)點(diǎn)信息,確定檢測(cè)結(jié)果,還包括:
11、在釋放內(nèi)存過(guò)程中,所述目標(biāo)節(jié)點(diǎn)id與所述釋放節(jié)點(diǎn)id不同,確定所述檢測(cè)結(jié)果為第三檢測(cè)結(jié)果;所述第三檢測(cè)結(jié)果用于表征內(nèi)存釋放存在異常。
12、進(jìn)一步地,本申請(qǐng)實(shí)施例中,所述基于預(yù)設(shè)節(jié)點(diǎn)信息以及所述目標(biāo)節(jié)點(diǎn)信息,確定檢測(cè)結(jié)果,還包括:
13、鏡像生成所述第二線(xiàn)程的新內(nèi)存節(jié)點(diǎn),并填充所述新內(nèi)存節(jié)點(diǎn)對(duì)應(yīng)的節(jié)點(diǎn)信息并同步釋放所述新內(nèi)存節(jié)點(diǎn)的內(nèi)存。。
14、進(jìn)一步地,本申請(qǐng)實(shí)施例中,所述第一內(nèi)存剩余時(shí)間值為二進(jìn)制數(shù)0,所述第二內(nèi)存剩余時(shí)間值為二進(jìn)制數(shù)0xfffffff。
15、進(jìn)一步地,本申請(qǐng)實(shí)施例中,所述基于所述線(xiàn)程句柄表以及所述內(nèi)存地址信息,確定所述第二線(xiàn)程對(duì)應(yīng)的目標(biāo)節(jié)點(diǎn)信息,包括:
16、基于所述線(xiàn)程句柄表,確定所述第二線(xiàn)程的內(nèi)存釋放者信息;
17、根據(jù)所述第二線(xiàn)程的內(nèi)存釋放者信息,確定目標(biāo)內(nèi)存地址信息;
18、將所述內(nèi)存節(jié)點(diǎn)信息登記表中所述內(nèi)存地址信息與所述目標(biāo)內(nèi)存地址信息相同的節(jié)點(diǎn)確定為目標(biāo)節(jié)點(diǎn),并得到所述目標(biāo)節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)節(jié)點(diǎn)信息。
19、另一方面,本申請(qǐng)實(shí)施例還提供一種基于終端運(yùn)行時(shí)的內(nèi)存合規(guī)檢測(cè)系統(tǒng),包括:
20、第一處理單元,用于響應(yīng)于第一線(xiàn)程的若干個(gè)申請(qǐng)內(nèi)存操作,生成內(nèi)存節(jié)點(diǎn)信息登記表;所述內(nèi)存節(jié)點(diǎn)信息登記表包括若干個(gè)內(nèi)存節(jié)點(diǎn),每個(gè)所述內(nèi)存節(jié)點(diǎn)對(duì)應(yīng)一個(gè)內(nèi)存地址信息;
21、第二處理單元,用于響應(yīng)于第二線(xiàn)程的使用內(nèi)存操作以及釋放內(nèi)存操作,提取所述第二線(xiàn)程的線(xiàn)程句柄表;
22、第三處理單元,用于基于所述線(xiàn)程句柄表以及所述內(nèi)存地址信息,確定所述第二線(xiàn)程對(duì)應(yīng)的目標(biāo)節(jié)點(diǎn)信息;
23、第四處理單元,用于基于預(yù)設(shè)節(jié)點(diǎn)信息以及所述目標(biāo)節(jié)點(diǎn)信息,確定檢測(cè)結(jié)果。
24、另一方面,本申請(qǐng)還提供一種基于終端運(yùn)行時(shí)的內(nèi)存合規(guī)檢測(cè)裝置,包括:
25、至少一個(gè)處理器;
26、至少一個(gè)存儲(chǔ)器,用于存儲(chǔ)至少一個(gè)程序;
27、當(dāng)所述至少一個(gè)程序被所述至少一個(gè)處理器執(zhí)行,使得所述至少一個(gè)處理器實(shí)現(xiàn)如
技術(shù)實(shí)現(xiàn)要素:
中任一項(xiàng)所述一種基于終端運(yùn)行時(shí)的內(nèi)存合規(guī)檢測(cè)方法。
28、此外,本申請(qǐng)還提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中存儲(chǔ)有處理器可執(zhí)行的指令,所述處理器可執(zhí)行的指令在由處理器執(zhí)行時(shí)用于執(zhí)行如上述任一項(xiàng)所述一種基于終端運(yùn)行時(shí)的內(nèi)存合規(guī)檢測(cè)方法。
29、本申請(qǐng)的優(yōu)點(diǎn)和有益效果將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過(guò)本申請(qǐng)的實(shí)踐了解到:
30、本申請(qǐng)可以響應(yīng)于第一線(xiàn)程的若干個(gè)申請(qǐng)內(nèi)存操作,生成內(nèi)存節(jié)點(diǎn)信息登記表;所述內(nèi)存節(jié)點(diǎn)信息登記表包括若干個(gè)內(nèi)存節(jié)點(diǎn),每個(gè)所述內(nèi)存節(jié)點(diǎn)對(duì)應(yīng)一個(gè)內(nèi)存地址信息;響應(yīng)于第二線(xiàn)程的使用內(nèi)存操作以及釋放內(nèi)存操作,提取所述第二線(xiàn)程的線(xiàn)程句柄表;基于所述線(xiàn)程句柄表以及所述內(nèi)存地址信息,確定所述第二線(xiàn)程對(duì)應(yīng)的目標(biāo)節(jié)點(diǎn)信息;基于預(yù)設(shè)節(jié)點(diǎn)信息以及所述目標(biāo)節(jié)點(diǎn)信息,確定檢測(cè)結(jié)果。本申請(qǐng)可以提高故障定位的效率,提升內(nèi)存管理效率,增強(qiáng)終端的整體可靠性與穩(wěn)定性。
1.一種基于終端運(yùn)行時(shí)的內(nèi)存合規(guī)檢測(cè)方法,其特征在于,包括以下步驟:
2.根據(jù)權(quán)利要求1所述一種基于終端運(yùn)行時(shí)的內(nèi)存合規(guī)檢測(cè)方法,其特征在于,所述第一線(xiàn)程與所述第二線(xiàn)程為不同的兩個(gè)線(xiàn)程。
3.根據(jù)權(quán)利要求1所述一種基于終端運(yùn)行時(shí)的內(nèi)存合規(guī)檢測(cè)方法,其特征在于,所述目標(biāo)節(jié)點(diǎn)信息包括目標(biāo)內(nèi)存剩余時(shí)間,所述預(yù)設(shè)節(jié)點(diǎn)信息包括第一內(nèi)存剩余時(shí)間值以及第二內(nèi)存剩余時(shí)間值,所述基于預(yù)設(shè)節(jié)點(diǎn)信息以及所述目標(biāo)節(jié)點(diǎn)信息,確定檢測(cè)結(jié)果,包括:
4.根據(jù)權(quán)利要求3所述一種基于終端運(yùn)行時(shí)的內(nèi)存合規(guī)檢測(cè)方法,其特征在于,所述預(yù)設(shè)節(jié)點(diǎn)信息包括釋放節(jié)點(diǎn)id,所述目標(biāo)節(jié)點(diǎn)信息包括目標(biāo)節(jié)點(diǎn)id,所述基于預(yù)設(shè)節(jié)點(diǎn)信息以及所述目標(biāo)節(jié)點(diǎn)信息,確定檢測(cè)結(jié)果,還包括:
5.根據(jù)權(quán)利要求4所述一種基于終端運(yùn)行時(shí)的內(nèi)存合規(guī)檢測(cè)方法,其特征在于,所述基于預(yù)設(shè)節(jié)點(diǎn)信息以及所述目標(biāo)節(jié)點(diǎn)信息,確定檢測(cè)結(jié)果,還包括:
6.根據(jù)權(quán)利要求1所述一種基于終端運(yùn)行時(shí)的內(nèi)存合規(guī)檢測(cè)方法,其特征在于,所述第一內(nèi)存剩余時(shí)間值為二進(jìn)制數(shù)0,所述第二內(nèi)存剩余時(shí)間值為二進(jìn)制數(shù)0xfffffff。
7.根據(jù)權(quán)利要求1所述一種基于終端運(yùn)行時(shí)的內(nèi)存合規(guī)檢測(cè)方法,其特征在于,所述基于所述線(xiàn)程句柄表以及所述內(nèi)存地址信息,確定所述第二線(xiàn)程對(duì)應(yīng)的目標(biāo)節(jié)點(diǎn)信息,包括:
8.一種基于終端運(yùn)行時(shí)的內(nèi)存合規(guī)檢測(cè)系統(tǒng),其特征在于,包括:
9.一種基于終端運(yùn)行時(shí)的內(nèi)存合規(guī)檢測(cè)裝置,其特征在于包括:
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中存儲(chǔ)有處理器可執(zhí)行的指令,其特征在于,所述處理器可執(zhí)行的指令在由處理器執(zhí)行時(shí)用于執(zhí)行如權(quán)利要求1-7任一項(xiàng)所述一種基于終端運(yùn)行時(shí)的內(nèi)存合規(guī)檢測(cè)方法。