平穩(wěn)趨勢)的次數(shù)時,認(rèn)為該被測進(jìn)程的內(nèi)存占用值的變化趨勢為遞增趨勢。如在一實(shí)施例中,該被測進(jìn)程為微信應(yīng)用進(jìn)程,該預(yù)設(shè)時間是十分鐘,對該被微信應(yīng)用進(jìn)程進(jìn)行了五次時長為十分鐘的采集,如在10點(diǎn)10分到10點(diǎn)20分采集了微信應(yīng)用進(jìn)程的多個內(nèi)存采樣信息(每次采樣間隔為十秒鐘,則采樣得到60個內(nèi)存采樣信息),在10點(diǎn)30分到10點(diǎn)40分采集微信應(yīng)用進(jìn)程的多個內(nèi)存采樣信息(每次采樣間隔為十秒鐘,則采樣得到60個內(nèi)存采樣信息),在10點(diǎn)50分到11點(diǎn)整采集微信應(yīng)用進(jìn)程的多個內(nèi)存采樣信息(每次采樣間隔為十秒鐘,則采樣得到60個內(nèi)存采樣信息),在11點(diǎn)整到11點(diǎn)10分采集微信應(yīng)用進(jìn)程的多個內(nèi)存采樣信息(每次采樣間隔為十秒鐘,則采樣得到60個內(nèi)存采樣信息),在11點(diǎn)10分到11點(diǎn)20分采集微信應(yīng)用進(jìn)程的多個內(nèi)存采樣信息(每次采樣間隔為十秒鐘,則采樣得到60個內(nèi)存采樣信息),分別分析該微信應(yīng)用進(jìn)程的內(nèi)存占用值在這5個時間段的子變化趨勢,如該微信應(yīng)用進(jìn)程的內(nèi)存占用值在10點(diǎn)10分到10點(diǎn)20分的時間段內(nèi)的子變化趨勢是遞增趨勢,該微信應(yīng)用進(jìn)程的內(nèi)存占用值在10點(diǎn)30分到10點(diǎn)40分的時間段內(nèi)的子變化趨勢是遞增趨勢,該微信應(yīng)用進(jìn)程的內(nèi)存占用值在10點(diǎn)50分到11點(diǎn)整的時間段內(nèi)的子變化趨勢是非遞增趨勢,該微信應(yīng)用進(jìn)程的內(nèi)存占用值在11點(diǎn)整到11點(diǎn)10分的時間段內(nèi)的子變化趨勢是非遞增趨勢,該微信應(yīng)用進(jìn)程的內(nèi)存占用值在11點(diǎn)10分到11點(diǎn)20分的時間段內(nèi)的子變化趨勢是遞增趨勢,則認(rèn)為微信應(yīng)用進(jìn)程的內(nèi)存占用值的變化趨勢為遞增趨勢。
[0129]參照圖10,圖10為本發(fā)明內(nèi)存泄露檢測方法的第二實(shí)施例的流程示意圖。
[0130]基于上述內(nèi)存泄露檢測方法的第一實(shí)施例,該方法還包括:S13、獲取測試腳本,該測試腳本為shell腳本;
[0131]該采集被測進(jìn)程的內(nèi)存采樣信息的步驟為:運(yùn)行shell腳本采集被測進(jìn)程的內(nèi)存米樣?目息O
[0132]在該步驟S13中,可直接從該被測進(jìn)程所在的終端的存儲器中讀取,也可通過與該被測進(jìn)程所在的終端進(jìn)行有線連接或無線連接的其他終端獲取測試腳本,如該被測進(jìn)程所在的終端為安卓手機(jī),與該安卓手機(jī)連接的終端為平板電腦,該平板電腦上保存有用于進(jìn)行內(nèi)存泄露檢測的測試腳本,則從該平板電腦中獲取測試腳本,并將該測試腳本保存在安卓手機(jī)中(如保存在安卓手機(jī)的SD卡中);在另一實(shí)施例中,該步驟S13中從該被測進(jìn)程所在的終端的SD卡中讀取測試腳本。
[0133]該測試腳本為shell腳本,該測試腳本運(yùn)行在該被測進(jìn)程所在的終端的底層。由于該shell腳本運(yùn)行在該被測進(jìn)程所在的終端的底層,因此可通過該shell腳本準(zhǔn)確的采集到被測程序的內(nèi)存采樣信息。
[0134]參照圖11,圖11為本發(fā)明內(nèi)存泄露檢測方法的第三實(shí)施例的流程示意圖。
[0135]基于上述內(nèi)存泄露檢測方法的第一實(shí)施例或第二實(shí)施例,該方法還包括:
[0136]S14、在該被測進(jìn)程存在內(nèi)存泄露時,根據(jù)該被測進(jìn)程的內(nèi)存占用值的變化趨勢定位該被測進(jìn)程發(fā)生內(nèi)存泄露的對象或代碼段。
[0137]在該被測進(jìn)程存在內(nèi)存泄露時,有可能只是由于該被測進(jìn)程的某一部分代碼段或?qū)ο笤谶\(yùn)行時導(dǎo)致內(nèi)存泄露,在該步驟中,根據(jù)被測進(jìn)程的內(nèi)存占用值的變化趨勢定位該被測進(jìn)程發(fā)生內(nèi)存泄露的對象或代碼段,如,從該被測進(jìn)程的內(nèi)存占用值的變化趨勢中找到內(nèi)存占用值處于遞增的時間點(diǎn),再查找到在該時間點(diǎn)時,用戶進(jìn)行了一些什么操作,進(jìn)而查找到對應(yīng)的對象或代碼段,即查找到發(fā)生內(nèi)存泄露的對象或代碼段,如在圖5所示的某個被測進(jìn)程的內(nèi)存占用值的變化趨勢的示意圖,在第169秒到第190秒采集的內(nèi)存占用值明顯增加,且增加后的內(nèi)存占用值比之前采集的內(nèi)存占用值都大,因此可認(rèn)為在第169秒到第190秒運(yùn)行被測進(jìn)程時發(fā)生了內(nèi)存泄露,查找在該第169秒到第190秒時,用戶進(jìn)行了一些什么操作,進(jìn)而查找到對應(yīng)的對象或代碼段,對發(fā)生內(nèi)存泄露的對象或代碼段進(jìn)行定位。
[0138]基于上述內(nèi)存泄露檢測方法的第一實(shí)施例或第二實(shí)施例,該方法還包括:
[0139]將所述采集的被測進(jìn)程的內(nèi)存采樣信息發(fā)送給監(jiān)控終端,以使得所述監(jiān)控終端生成所述被測進(jìn)程的內(nèi)存占用值的變化趨勢,并根據(jù)所述被測進(jìn)程的內(nèi)存占用值的變化趨勢,判斷所述被測進(jìn)程是否存在內(nèi)存泄露。
[0140]該被測進(jìn)程所在的終端與監(jiān)控終端之間建立有線或無線連接,如在一實(shí)施例中,該被測進(jìn)程所在的終端為安卓手機(jī),該監(jiān)控終端為平板電腦,該安卓手機(jī)與該平板電腦通過USB數(shù)據(jù)線連接,或該安卓手機(jī)與該平板電腦通過無線通訊技術(shù)連接。
[0141]在該步驟中,可將采集的被測進(jìn)程的多個內(nèi)存采樣信息以日志文件形式發(fā)送給監(jiān)控終端,監(jiān)控終端在接收到被測進(jìn)程的多個內(nèi)存采樣信息后,進(jìn)行分析,以確定該被測進(jìn)程是否存在內(nèi)存泄露,具體的,該監(jiān)控終端首先生成該被測進(jìn)程的內(nèi)存占用值的變化趨勢,然后根據(jù)該被測進(jìn)程的內(nèi)存占用值的變化趨勢,判斷該被測進(jìn)程是否存在內(nèi)存泄露。
[0142]進(jìn)一步的,本發(fā)明還提供一種終端,該終端包括上述任一實(shí)施例提供的的內(nèi)存泄露檢測裝置。
[0143]通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實(shí)施例方法可借助軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)(如R0M/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,空調(diào)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實(shí)施例該的方法。
[0144]以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種內(nèi)存泄露檢測裝置,其特征在于,該裝置包括: 采集模塊,用于采集被測進(jìn)程的內(nèi)存采樣信息,所述內(nèi)存采樣信息包括采樣時間、被測進(jìn)程在所述采樣時間對應(yīng)的內(nèi)存占用值; 生成模塊,用于生成所述被測進(jìn)程的內(nèi)存占用值的變化趨勢; 檢測模塊,用于根據(jù)所述被測進(jìn)程的內(nèi)存占用值的變化趨勢,判斷所述被測進(jìn)程是否存在內(nèi)存泄露。2.如權(quán)利要求1所述的內(nèi)存泄露檢測裝置,其特征在于,所述檢測模塊還用于,在所述被測進(jìn)程的內(nèi)存占用值的變化趨勢為遞增趨勢時,判斷所述被測進(jìn)程存在內(nèi)存泄露,否則,判斷所述被測進(jìn)程不存在內(nèi)存泄露。3.如權(quán)利要求1或2所述的內(nèi)存泄露檢測裝置,其特征在于,所述裝置還包括:獲取模塊,用于獲取測試腳本,所述測試腳本為shell腳本; 所述采集模塊,還用于運(yùn)行shell腳本采集被測進(jìn)程的內(nèi)存采樣信息。4.如權(quán)利要求1或2所述的內(nèi)存泄露檢測裝置,其特征在于,所述裝置還包括: 定位模塊,用于在所述被測進(jìn)程存在內(nèi)存泄露時,根據(jù)所述被測進(jìn)程的內(nèi)存占用值的變化趨勢定位被測進(jìn)程發(fā)生內(nèi)存泄露的對象或代碼段。5.如權(quán)利要求1或2所述的內(nèi)存泄露檢測裝置,其特征在于,所述裝置還包括: 發(fā)送模塊,用于將所述采集的被測進(jìn)程的內(nèi)存采樣信息發(fā)送給監(jiān)控終端,以使得所述監(jiān)控終端生成所述被測進(jìn)程的內(nèi)存占用值的變化趨勢,并根據(jù)所述被測進(jìn)程的內(nèi)存占用值的變化趨勢,判斷所述被測進(jìn)程是否存在內(nèi)存泄露。6.一種內(nèi)存泄露檢測方法,其特征在于,該方法包括: 采集被測進(jìn)程的內(nèi)存采樣信息,所述內(nèi)存采樣信息包括采樣時間、被測進(jìn)程在所述采樣時間對應(yīng)的內(nèi)存占用值; 生成所述被測進(jìn)程的內(nèi)存占用值的變化趨勢; 根據(jù)所述被測進(jìn)程的內(nèi)存占用值的變化趨勢,判斷所述被測進(jìn)程是否存在內(nèi)存泄露。7.如權(quán)利要求6所述的內(nèi)存泄露檢測方法,其特征在于,所述根據(jù)所述被測進(jìn)程的內(nèi)存占用值的變化趨勢,判斷所述被測進(jìn)程是否存在內(nèi)存泄露的步驟包括: 若所述被測進(jìn)程的內(nèi)存占用值的變化趨勢為遞增趨勢,則判斷所述被測進(jìn)程存在內(nèi)存泄露,否則,判斷所述被測進(jìn)程不存在內(nèi)存泄露。8.如權(quán)利要求6或7所述的內(nèi)存泄露檢測方法,其特征在于,所述根據(jù)所述被測進(jìn)程的內(nèi)存占用值的變化趨勢,判斷所述被測進(jìn)程是否存在內(nèi)存泄露的步驟之后,該方法還包括: 在所述被測進(jìn)程存在內(nèi)存泄露時,根據(jù)所述被測進(jìn)程的內(nèi)存占用值的變化趨勢定位所述被測進(jìn)程發(fā)生內(nèi)存泄露的對象或代碼段。9.如權(quán)利要求6或7所述的內(nèi)存泄露檢測方法,其特征在于,所述采集被測進(jìn)程的內(nèi)存采樣信息,所述內(nèi)存采樣信息包括采樣時間、被測進(jìn)程在所述采樣時間對應(yīng)的內(nèi)存占用值的步驟之后,該方法還包括: 將所述采集的被測進(jìn)程的內(nèi)存采樣信息發(fā)送給監(jiān)控終端,以使得所述監(jiān)控終端生成所述被測進(jìn)程的內(nèi)存占用值的變化趨勢,并根據(jù)所述被測進(jìn)程的內(nèi)存占用值的變化趨勢,判斷所述被測進(jìn)程是否存在內(nèi)存泄露。10.—種終端,其特征在于,所述終端包括如權(quán)利要求1-5任一項(xiàng)所述的內(nèi)存泄露檢測目.0
【專利摘要】本發(fā)明公開了一種內(nèi)存泄露檢測裝置,該裝置包括:采集模塊,用于采集被測進(jìn)程的內(nèi)存采樣信息,所述內(nèi)存采樣信息包括采樣時間、被測進(jìn)程在所述采樣時間對應(yīng)的內(nèi)存占用值;生成模塊,用于生成所述被測進(jìn)程的內(nèi)存占用值的變化趨勢;檢測模塊,用于根據(jù)所述被測進(jìn)程的內(nèi)存占用值的變化趨勢,判斷所述被測進(jìn)程是否存在內(nèi)存泄露。本發(fā)明還公開了一種內(nèi)存泄露檢測方法和終端。采用本發(fā)明,可提高內(nèi)存泄露檢測的準(zhǔn)確性。
【IPC分類】G06F11/36
【公開號】CN105204996
【申請?zhí)枴緾N201510615560
【發(fā)明人】楊顯鈞
【申請人】努比亞技術(shù)有限公司
【公開日】2015年12月30日
【申請日】2015年9月24日