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

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

文檔序號(hào):9249179閱讀:來(lái)源:國(guó)知局
出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0032]如圖1所示,本發(fā)明一個(gè)實(shí)施例提供了一種基于PoolMon的內(nèi)存泄露檢測(cè)和定位的方法,該可以包括以下步驟:
[0033]步驟101:將待檢測(cè)程序運(yùn)行在系統(tǒng)上,對(duì)該程序的各個(gè)操作進(jìn)行反復(fù)循環(huán)執(zhí)行,直至達(dá)到第一預(yù)設(shè)時(shí)間停止待檢測(cè)程序的運(yùn)行;
[0034]步驟102:檢測(cè)所述各個(gè)操作反復(fù)循環(huán)執(zhí)行過(guò)程中及執(zhí)行前和執(zhí)行完畢后系統(tǒng)內(nèi)存的占用情況;
[0035]步驟103:根據(jù)所述系統(tǒng)內(nèi)存占用情況,判斷所述待檢測(cè)程序是否發(fā)生內(nèi)存泄露;
[0036]步驟104:根據(jù)判斷結(jié)果,如果發(fā)生內(nèi)存泄露,將所述待檢測(cè)程序運(yùn)行在至少一個(gè)系統(tǒng)上,每個(gè)系統(tǒng)上反復(fù)循環(huán)執(zhí)行所述待檢測(cè)程序的其中一個(gè)操作,直至達(dá)到第二預(yù)設(shè)時(shí)間停止待檢測(cè)程序的運(yùn)行,其中,所述系統(tǒng)數(shù)量與所述待檢測(cè)程序的操作數(shù)量相同,且每個(gè)所述系統(tǒng)上執(zhí)行的操作互不相同;
[0037]步驟105:在對(duì)應(yīng)的系統(tǒng)上執(zhí)行各操作過(guò)程中,通過(guò)所述PoolMon采集每個(gè)操作對(duì)應(yīng)的各個(gè)內(nèi)存標(biāo)簽的訪問(wèn)記錄數(shù)據(jù),并形成采集文件;
[0038]步驟106:分析所述采集文件,確定導(dǎo)致內(nèi)存泄露的內(nèi)存標(biāo)簽。
[0039]本發(fā)明實(shí)施例提供了一種基于PoolMon的內(nèi)存泄露檢測(cè)和定位的方法,將待檢測(cè)的程序運(yùn)行在一個(gè)系統(tǒng)上,對(duì)該程序的各個(gè)操作進(jìn)行反復(fù)循環(huán)執(zhí)行足夠的時(shí)間,在執(zhí)行操作過(guò)程中檢測(cè)系統(tǒng)內(nèi)存的占用情況,根據(jù)系統(tǒng)內(nèi)存的占用情況判斷該程序是否發(fā)生內(nèi)存泄露,如果發(fā)生內(nèi)存泄露,則將該程序的各個(gè)操作分別在不同的系統(tǒng)上反復(fù)循環(huán)執(zhí)行足夠的時(shí)間,并通過(guò)PoolMon采集操作執(zhí)行過(guò)程中各個(gè)操作對(duì)應(yīng)的內(nèi)存標(biāo)簽的訪問(wèn)記錄數(shù)據(jù),通過(guò)分析內(nèi)存標(biāo)簽的訪問(wèn)記錄數(shù)據(jù),確定出導(dǎo)致內(nèi)存泄露的內(nèi)存標(biāo)簽,這樣,首先檢測(cè)待檢測(cè)程序是否存在內(nèi)存泄露的情況,如果存在則對(duì)導(dǎo)致內(nèi)存泄露的內(nèi)存標(biāo)簽進(jìn)行定位,便于程序開(kāi)發(fā)人員對(duì)程序的修改,從而提高檢測(cè)和定位內(nèi)存泄露的效率。
[0040]在本發(fā)明一個(gè)實(shí)施例中,在對(duì)待檢測(cè)程序的各個(gè)操作分別進(jìn)行執(zhí)行過(guò)程中,每經(jīng)過(guò)一個(gè)間隔時(shí)間,通過(guò)PoolMon采集一次每個(gè)操作對(duì)應(yīng)的多個(gè)內(nèi)存標(biāo)簽的訪問(wèn)記錄數(shù)據(jù),直至操作執(zhí)行完畢,這樣將獲得一系列針對(duì)各個(gè)內(nèi)存標(biāo)簽的訪問(wèn)記錄數(shù)據(jù),通過(guò)分析這些數(shù)據(jù)可以確定對(duì)應(yīng)的內(nèi)存標(biāo)簽是否發(fā)生內(nèi)存泄露。
[0041]在本發(fā)明一個(gè)實(shí)施例中,在對(duì)各個(gè)操作分別進(jìn)行執(zhí)行過(guò)程中,每經(jīng)過(guò)一個(gè)間隔時(shí)間,通過(guò)PoolMon采集一次數(shù)據(jù),其中,操作的執(zhí)行時(shí)間要足夠長(zhǎng),保證內(nèi)存泄露的累計(jì)量,而且間隔時(shí)間不能太長(zhǎng),確保有足夠的數(shù)據(jù)進(jìn)行分析,從而能夠準(zhǔn)確判斷導(dǎo)致內(nèi)存泄露的內(nèi)存標(biāo)簽。
[0042]在本發(fā)明一個(gè)實(shí)施例中,待檢測(cè)程序的各個(gè)操作在同一個(gè)系統(tǒng)上執(zhí)行過(guò)程中,如果隨著操作執(zhí)行過(guò)程的繼續(xù),系統(tǒng)的內(nèi)存占用不斷增加,而且當(dāng)所有操作停止執(zhí)行后系統(tǒng)的內(nèi)存占用任比初始系統(tǒng)內(nèi)存占用大很多,則可以判斷該程序發(fā)生了內(nèi)存泄露,需要進(jìn)行修復(fù),否則判斷該程序沒(méi)有發(fā)生內(nèi)存泄露,不需要修復(fù)。
[0043]在本發(fā)明一個(gè)實(shí)施例中,將通過(guò)PoolMon采集的數(shù)據(jù)形成采集文件,以便于對(duì)采集文件中數(shù)據(jù)進(jìn)行分析,通過(guò)分析采集文件中的數(shù)據(jù),如果內(nèi)存標(biāo)簽的內(nèi)存占用隨著對(duì)應(yīng)操作的不斷執(zhí)行而不斷增大,而且停止執(zhí)行對(duì)應(yīng)的操作后內(nèi)存標(biāo)簽占用的內(nèi)存仍比操作執(zhí)行之前內(nèi)存標(biāo)簽占用的內(nèi)存大很多,則可以確定該內(nèi)存標(biāo)簽導(dǎo)致內(nèi)存泄露,從而實(shí)現(xiàn)了對(duì)于內(nèi)存泄露原因的準(zhǔn)確定位。
[0044]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述。
[0045]如圖2所示,本發(fā)明一個(gè)實(shí)施例提供了一種基于PoolMon的內(nèi)存泄露檢測(cè)和定位的方法,該可以包括以下步驟:
[0046]步驟201:將待檢測(cè)程序運(yùn)行在一個(gè)純凈的系統(tǒng)上。
[0047]在本發(fā)明一個(gè)實(shí)施例中,將待檢測(cè)的程序運(yùn)行在一個(gè)沒(méi)有其他應(yīng)用程序的純凈系統(tǒng)上,例如,將待檢測(cè)程序運(yùn)行在一個(gè)純凈的Windows系統(tǒng)上,該系統(tǒng)上沒(méi)有其他的應(yīng)用程序。
[0048]步驟202:將待檢測(cè)程序的所有操作進(jìn)行反復(fù)循環(huán)執(zhí)行,直至達(dá)到設(shè)定的時(shí)間。
[0049]在本發(fā)明一個(gè)實(shí)施例中,設(shè)定一個(gè)執(zhí)行時(shí)間,在該執(zhí)行時(shí)間內(nèi)對(duì)待檢測(cè)程序的所有操作進(jìn)行反復(fù)循環(huán)執(zhí)行。例如,設(shè)定執(zhí)行時(shí)間為5小時(shí),待檢測(cè)程序包括3個(gè)操作,分別為操作A、操作B和操作C,反復(fù)循環(huán)執(zhí)行操作A、操作B和操作C,直至達(dá)到5個(gè)小時(shí)的執(zhí)行時(shí)間。
[0050]步驟203:檢測(cè)所有操作反復(fù)循環(huán)執(zhí)行過(guò)程中及執(zhí)行前和執(zhí)行完畢后系統(tǒng)內(nèi)存的占用情況。
[0051]在本發(fā)明一個(gè)實(shí)施例中,首先在執(zhí)行各操作之間,檢測(cè)并記錄系統(tǒng)內(nèi)存的占用情況,然后在執(zhí)行各操作的過(guò)程中及執(zhí)行完畢后,同樣檢測(cè)并記錄系統(tǒng)內(nèi)存的占用情況。例如,通過(guò)資源管理器,檢測(cè)并記錄系統(tǒng)的初始內(nèi)存占用情況,然后系統(tǒng)對(duì)操作A、操作B和操作C反復(fù)循環(huán)執(zhí)行5小時(shí),在此過(guò)程中,每經(jīng)過(guò)I小時(shí)檢測(cè)一次系統(tǒng)內(nèi)存的占用情況并進(jìn)行記錄,最后停止對(duì)操作A、操作B和操作C的執(zhí)行,檢測(cè)并記錄停止執(zhí)行操作后系統(tǒng)的內(nèi)存占用情況,此過(guò)程中共對(duì)系統(tǒng)內(nèi)存的占用情況進(jìn)行7次檢測(cè)和記錄。
[0052]步驟204:根據(jù)系統(tǒng)內(nèi)存占用情況,判斷待檢測(cè)程序是否發(fā)生內(nèi)存泄露,如果是則執(zhí)行步驟205,如果否則結(jié)束當(dāng)前流程。
[0053]在本發(fā)明一個(gè)實(shí)施例中,如果在執(zhí)行各操作過(guò)程中,系統(tǒng)內(nèi)存占用越來(lái)越大,而且當(dāng)停止各個(gè)操作執(zhí)行后,系統(tǒng)內(nèi)存占用與初始系統(tǒng)內(nèi)存占用之差大于預(yù)定值,則判斷待檢測(cè)程序發(fā)生內(nèi)存泄露,執(zhí)行步驟205,如果在執(zhí)行各操作過(guò)程中,系統(tǒng)內(nèi)存占用變化不明顯,且停止執(zhí)行各操作后系統(tǒng)內(nèi)存占用與初始系統(tǒng)內(nèi)存占用之差小于預(yù)定值,則判斷待檢測(cè)程序沒(méi)有發(fā)生內(nèi)存泄露,結(jié)束當(dāng)前流程。例如,系統(tǒng)初始內(nèi)存占用為5GB,設(shè)定內(nèi)存減少預(yù)定值為2GB,對(duì)操作A、操作B和操作C執(zhí)行5小時(shí)過(guò)程中,系統(tǒng)內(nèi)存占用不斷增加,最后系統(tǒng)內(nèi)存占用為20GB,停止對(duì)操作A、操作B和操作C的執(zhí)行后,系統(tǒng)內(nèi)存占用為19GB,此時(shí)系統(tǒng)內(nèi)存占用與初始系統(tǒng)內(nèi)存占用之差為14GB,大于2GB,那么就可以判斷待檢測(cè)程序發(fā)生了內(nèi)存泄露,然后執(zhí)行步驟205 ;如果對(duì)操作A、操作B和操作C執(zhí)行5小時(shí)過(guò)程中系統(tǒng)內(nèi)存占用在1GB上下波動(dòng),停止對(duì)操作A、操作B和操作C的執(zhí)行后,系統(tǒng)內(nèi)存占用為6GB,此時(shí)系統(tǒng)內(nèi)存占用與初始系統(tǒng)內(nèi)存占用之差為1GB,那么可以判斷待檢測(cè)現(xiàn)在沒(méi)有發(fā)生內(nèi)存泄露,結(jié)束當(dāng)前流程。
[0054]步驟205:根據(jù)待檢測(cè)程序包括操作的數(shù)量,將待檢測(cè)程序運(yùn)行在多個(gè)純凈的系統(tǒng)上。
[0055]在本發(fā)明一個(gè)實(shí)施例中,將待檢測(cè)的程序運(yùn)行在多個(gè)純凈的系統(tǒng)上,系統(tǒng)數(shù)量與待檢測(cè)程序包括的操作的數(shù)量相同。例如,待檢測(cè)程序包括操作A、操作B和操作C共3個(gè)操作,那么就將待檢測(cè)程序運(yùn)行在三個(gè)純凈的系統(tǒng)上,分別為系統(tǒng)1、系統(tǒng)2和系統(tǒng)3。
[0056]步驟206:在每個(gè)系統(tǒng)上反復(fù)循環(huán)執(zhí)行待檢測(cè)程序的一個(gè)操作,直至達(dá)到設(shè)定的時(shí)間,其中,每個(gè)系統(tǒng)上執(zhí)行的操作互不相同。
[0057]在本發(fā)明一個(gè)實(shí)施
當(dāng)前第2頁(yè)1 2 3 4 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1