亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于PoolMon的內(nèi)存泄露檢測和定位的方法及裝置的制造方法

文檔序號:9249179閱讀:598來源:國知局
一種基于PoolMon的內(nèi)存泄露檢測和定位的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件測試領(lǐng)域,特別涉及一種基于PoolMon的內(nèi)存泄露檢測和定位的方法及裝置。
【背景技術(shù)】
[0002]內(nèi)存泄露是由于疏忽或錯(cuò)誤造成程序未能釋放已經(jīng)不再使用的內(nèi)存,隨后這部分內(nèi)存不能進(jìn)行重新分配,隨著時(shí)間的推移,不斷為程序分配新的內(nèi)存,由于系統(tǒng)可用內(nèi)存不斷減少,系統(tǒng)將出現(xiàn)卡頓的現(xiàn)象,最終由于系統(tǒng)內(nèi)存池耗盡,系統(tǒng)中止運(yùn)行,對于用戶來說,系統(tǒng)中止運(yùn)行是不可接受,可能帶來巨大的損失,所以程序在交付用戶使用之前,需要檢測其是否存在內(nèi)存泄露的情況,如果存在則需要確定具體是哪部分導(dǎo)致內(nèi)存泄露,并進(jìn)行修復(fù)。
[0003]目前,對于程序內(nèi)存泄露的檢測,主要是通過程序運(yùn)行過程中消耗的內(nèi)存值,確定程序是否存在內(nèi)存泄露的情況,如果存在,則對整個(gè)程序進(jìn)行檢查修改。
[0004]針對目前這種內(nèi)存泄露檢測的方法,由于各種原因會(huì)導(dǎo)致程序消耗內(nèi)存發(fā)生變化,單純通過程序消耗的內(nèi)存來判斷出現(xiàn)內(nèi)存泄露具有很大的誤差,而且,發(fā)現(xiàn)存在內(nèi)存泄露的情況后,對整個(gè)程序進(jìn)行修改,需要很長的時(shí)間尋找導(dǎo)致內(nèi)存泄露原因,程序開發(fā)人員工作效率低。

【發(fā)明內(nèi)容】

[0005]本發(fā)明提供一種基于PoolMon的內(nèi)存泄露檢測和定位的方法及裝置,能夠提高檢測和定位內(nèi)存泄露的效率。
[0006]本發(fā)明實(shí)施例提供了一種基于PoolMon的內(nèi)存泄露檢測和定位的方法,包括:
[0007]將待檢測程序運(yùn)行在系統(tǒng)上,對該程序的各個(gè)操作進(jìn)行反復(fù)循環(huán)執(zhí)行,直至達(dá)到第一預(yù)設(shè)時(shí)間停止待檢測程序的運(yùn)行;
[0008]檢測所述各個(gè)操作反復(fù)循環(huán)執(zhí)行過程中及執(zhí)行前和執(zhí)行完畢后系統(tǒng)內(nèi)存的占用情況;
[0009]根據(jù)所述系統(tǒng)內(nèi)存占用情況,判斷所述待檢測程序是否發(fā)生內(nèi)存泄露;
[0010]根據(jù)判斷結(jié)果,如果發(fā)生內(nèi)存泄露,將所述待檢測程序運(yùn)行在至少一個(gè)系統(tǒng)上,每個(gè)系統(tǒng)上反復(fù)循環(huán)執(zhí)行所述待檢測程序的其中一個(gè)操作,直至達(dá)到第二預(yù)設(shè)時(shí)間停止待檢測程序的運(yùn)行,其中,所述系統(tǒng)數(shù)量與所述待檢測程序的操作數(shù)量相同,且每個(gè)所述系統(tǒng)上執(zhí)行的操作互不相同;
[0011]在對應(yīng)的系統(tǒng)上執(zhí)行各操作過程中,通過所述PoolMon采集每個(gè)操作對應(yīng)的各個(gè)內(nèi)存標(biāo)簽的訪問記錄數(shù)據(jù),并形成采集文件;
[0012]分析所述采集文件,確定導(dǎo)致內(nèi)存泄露的內(nèi)存標(biāo)簽。
[0013]優(yōu)選地,所述在對應(yīng)的系統(tǒng)上執(zhí)行各操作過程中,通過所述PoolMon采集每個(gè)操作對應(yīng)的各個(gè)內(nèi)存標(biāo)簽的訪問記錄數(shù)據(jù)包括:從開始執(zhí)行所述各操作起,在每個(gè)系統(tǒng)上,每經(jīng)過一個(gè)間隔時(shí)間,通過所述PoolMon采集一次各個(gè)內(nèi)存標(biāo)簽的訪問記錄數(shù)據(jù),直至達(dá)到所述第二預(yù)設(shè)時(shí)間。
[0014]優(yōu)選地,所述間隔時(shí)間小于所述第二預(yù)設(shè)時(shí)間。
[0015]優(yōu)選地,所述根據(jù)所述系統(tǒng)內(nèi)存占用情況,判斷所述待檢測程序是否發(fā)生內(nèi)存泄露包括:如果所述各個(gè)操作反復(fù)循環(huán)執(zhí)行過程中系統(tǒng)內(nèi)存占用不斷增加,且所述待檢測程序停止運(yùn)行后系統(tǒng)內(nèi)存占用與初始系統(tǒng)內(nèi)存占用之差大于第一預(yù)定值,則判斷為所述待檢測程序發(fā)生內(nèi)存泄露,否則判斷為不發(fā)生內(nèi)存泄露。
[0016]優(yōu)選地,所述分析所述采集文件,確定導(dǎo)致內(nèi)存泄露的內(nèi)存標(biāo)簽包括:根據(jù)所述采集文件中記錄的數(shù)據(jù),如果所述內(nèi)存標(biāo)簽的內(nèi)存占用不斷增加,且停止執(zhí)行對應(yīng)操作后所述內(nèi)存標(biāo)簽的內(nèi)存占用與初始內(nèi)存標(biāo)簽的內(nèi)存占用之差大于第二預(yù)定值,則確定該內(nèi)存標(biāo)簽導(dǎo)致內(nèi)存泄露。
[0017]本發(fā)明實(shí)施例還提供了一種基于PoolMon的內(nèi)存泄露檢測和定位的裝置,包括:
[0018]第一執(zhí)行單元,用于將待檢測程序運(yùn)行在系統(tǒng)上,對該程序的各個(gè)操作進(jìn)行反復(fù)循環(huán)執(zhí)行,直至達(dá)到第一預(yù)設(shè)時(shí)間停止待檢測程序的運(yùn)行;
[0019]檢測單元,用于檢測所述第一執(zhí)行單元對各個(gè)操作反復(fù)循環(huán)執(zhí)行過程中及執(zhí)行前和執(zhí)行完畢后系統(tǒng)內(nèi)存的占用情況;
[0020]判斷單元,用于根據(jù)所述檢測單元檢測出的系統(tǒng)內(nèi)存占用情況,判斷所述待檢測程序是否發(fā)生內(nèi)存泄露;
[0021]第二執(zhí)行單元,用于根據(jù)所述判斷單元做出的判斷結(jié)果,如果發(fā)生內(nèi)存泄露,將所述待檢測程序運(yùn)行在至少一個(gè)系統(tǒng)上,每個(gè)系統(tǒng)上反復(fù)循環(huán)執(zhí)行所述待檢測程序的其中一個(gè)操作,直至達(dá)到第二預(yù)設(shè)時(shí)間停止待檢測程序的運(yùn)行,其中,所述系統(tǒng)數(shù)量與所述待檢測程序的操作數(shù)量相同,且每個(gè)所述系統(tǒng)上執(zhí)行的操作互不相同;
[0022]采集單元,用于所述第二執(zhí)行單元在對應(yīng)的系統(tǒng)上執(zhí)行各操作過程中,通過所述PoolMon采集每個(gè)操作對應(yīng)的各個(gè)內(nèi)存標(biāo)簽的訪問記錄數(shù)據(jù),并形成采集文件;
[0023]分析單元,用于分析所述采集單元形成的采集文件,確定導(dǎo)致內(nèi)存泄露的內(nèi)存標(biāo)簽。
[0024]優(yōu)選地,所述采集單元,用于從開始執(zhí)行所述各操作起,在每個(gè)系統(tǒng)上,每經(jīng)過一個(gè)間隔時(shí)間,通過所述PoolMon采集一次各個(gè)內(nèi)存標(biāo)簽的訪問記錄數(shù)據(jù),直至達(dá)到所述第二預(yù)設(shè)時(shí)間。
[0025]優(yōu)選地,所述判斷單元,用于如果所述各個(gè)操作反復(fù)循環(huán)執(zhí)行過程中系統(tǒng)內(nèi)存占用不斷增加,且所述待檢測程序停止運(yùn)行后系統(tǒng)內(nèi)存占用與初始系統(tǒng)內(nèi)存占用之差大于第一預(yù)定值,則判斷為所述待檢測程序發(fā)生內(nèi)存泄露,否則判斷為不發(fā)生內(nèi)存泄露。
[0026]優(yōu)選地,所述分析單元,用于根據(jù)所述采集文件中記錄的數(shù)據(jù),如果所述內(nèi)存標(biāo)簽的內(nèi)存占用不斷增加,且停止執(zhí)行對應(yīng)操作后所述內(nèi)存標(biāo)簽的內(nèi)存占用與初始內(nèi)存標(biāo)簽的內(nèi)存占用之差大于第二預(yù)定值,則確定該內(nèi)存標(biāo)簽導(dǎo)致內(nèi)存泄露。
[0027]本發(fā)明實(shí)施例提供了一種基于PoolMon的內(nèi)存泄露檢測和定位的方法及裝置,將待檢測的程序運(yùn)行在一個(gè)系統(tǒng)上,對該程序的各個(gè)操作進(jìn)行反復(fù)循環(huán)執(zhí)行足夠的時(shí)間,在執(zhí)行操作過程中檢測系統(tǒng)內(nèi)存的占用情況,根據(jù)系統(tǒng)內(nèi)存的占用情況判斷該程序是否發(fā)生內(nèi)存泄露,如果發(fā)生內(nèi)存泄露,則將該程序的各個(gè)操作分別在不同的系統(tǒng)上反復(fù)循環(huán)執(zhí)行足夠的時(shí)間,并通過PoolMon采集操作執(zhí)行過程中各個(gè)操作對應(yīng)的內(nèi)存標(biāo)簽的訪問記錄數(shù)據(jù),通過分析內(nèi)存標(biāo)簽的訪問記錄數(shù)據(jù),確定出導(dǎo)致內(nèi)存泄露的內(nèi)存標(biāo)簽,這樣,首先檢測待檢測程序是否存在內(nèi)存泄露的情況,如果存在則對導(dǎo)致內(nèi)存泄露的內(nèi)存標(biāo)簽進(jìn)行定位,便于程序開發(fā)人員對程序的修改,從而提高檢測和定位內(nèi)存泄露的效率。
【附圖說明】
[0028]圖1是本發(fā)明實(shí)施例提供的一種基于PoolMon的內(nèi)存泄露檢測和定位的方法流程圖;
[0029]圖2是本發(fā)明另一個(gè)實(shí)施例提供的一種基于PoolMon的內(nèi)存泄露檢測和定位的方法流程圖;
[0030]圖3是本發(fā)明實(shí)施例提供的一種基于PoolMon的內(nèi)存泄露檢測和定位的裝置不意圖。
【具體實(shí)施方式】
[0031]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做
當(dāng)前第1頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1