內(nèi)存泄露檢測裝置及方法、終端的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機領(lǐng)域,尤其涉及一種內(nèi)存泄露檢測裝置及方法、終端。
【背景技術(shù)】
[0002]在計算機科學中,內(nèi)存泄露是指分配了內(nèi)存給某個進程使用,而該進程使用完內(nèi)存后沒有釋放內(nèi)存,導致已分配的內(nèi)存無法回收再利用。隨著進程的運行,系統(tǒng)中的可用的內(nèi)存就會越來越少,導致系統(tǒng)由于沒有足夠的內(nèi)存而癱瘓,造成嚴重影響。內(nèi)存泄露可能是由于開發(fā)人員考慮不周,編寫的代碼存在隱患沒能及時釋放內(nèi)存,也可能是系統(tǒng)出現(xiàn)了異常,沒有釋放內(nèi)存導致的。
[0003]目前,測試內(nèi)存泄露的方法有很多,大多都涉及到相關(guān)的軟件代碼,是通過走查、反復調(diào)試來定位被測進程的代碼中存在內(nèi)存泄露的點,也可以借助如ccmalloc、Leaky等相關(guān)的工具來進行定位,判斷被測進程是否存在內(nèi)存泄露。采用現(xiàn)有的內(nèi)存泄露測試方式,存在干擾大,測試不準確的缺陷。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的主要目的在于提出一種內(nèi)存泄露檢測裝置及方法、終端,旨在解決現(xiàn)有技術(shù)中,對被測進程的內(nèi)存泄露檢測不準確的技術(shù)問題。
[0005]為實現(xiàn)上述目的,本發(fā)明提供一種內(nèi)存泄露檢測裝置,該裝置包括:
[0006]采集模塊,用于采集被測進程的內(nèi)存采樣信息,所述內(nèi)存采樣信息包括采樣時間、被測進程在所述采樣時間對應的內(nèi)存占用值;
[0007]生成模塊,用于生成所述被測進程的內(nèi)存占用值的變化趨勢;
[0008]檢測模塊,用于根據(jù)所述被測進程的內(nèi)存占用值的變化趨勢,判斷所述被測進程是否存在內(nèi)存泄露。
[0009]可選的,所述檢測模塊還用于,在所述被測進程的內(nèi)存占用值的變化趨勢為遞增趨勢時,判斷所述被測進程存在內(nèi)存泄露,否則,判斷所述被測進程不存在內(nèi)存泄露。
[0010]可選的,所述裝置還包括:
[0011]獲取模塊,用于獲取測試腳本,所述測試腳本為shell腳本;
[0012]所述采集模塊,還用于運行shell腳本采集被測進程的內(nèi)存采樣信息。
[0013]可選的,所述裝置還包括:
[0014]定位模塊,用于在所述被測進程存在內(nèi)存泄露時,根據(jù)所述被測進程的內(nèi)存占用值的變化趨勢定位被測進程發(fā)生內(nèi)存泄露的對象或代碼段。
[0015]可選的,所述裝置還包括:
[0016]發(fā)送模塊,用于將所述采集的被測進程的內(nèi)存采樣信息發(fā)送給監(jiān)控終端,以使得所述監(jiān)控終端生成所述被測進程的內(nèi)存占用值的變化趨勢,并根據(jù)所述被測進程的內(nèi)存占用值的變化趨勢,判斷所述被測進程是否存在內(nèi)存泄露。
[0017]此外,為實現(xiàn)上述目的,本發(fā)明還提出一種內(nèi)存泄露檢測方法,該方法包括:
[0018]采集被測進程的內(nèi)存采樣信息,所述內(nèi)存采樣信息包括采樣時間、被測進程在所述采樣時間對應的內(nèi)存占用值;
[0019]生成所述被測進程的內(nèi)存占用值的變化趨勢;
[0020]根據(jù)所述被測進程的內(nèi)存占用值的變化趨勢,判斷所述被測進程是否存在內(nèi)存泄
Mo
[0021]可選的,所述根據(jù)所述被測進程的內(nèi)存占用值的變化趨勢,判斷所述被測進程是否存在內(nèi)存泄露的步驟包括:
[0022]若所述被測進程的內(nèi)存占用值的變化趨勢為遞增趨勢,則判斷所述被測進程存在內(nèi)存泄露,否則,判斷所述被測進程不存在內(nèi)存泄露。
[0023]可選的,所述根據(jù)所述被測進程的內(nèi)存占用值的變化趨勢,判斷所述被測進程是否存在內(nèi)存泄露的步驟之后,該方法還包括:
[0024]在所述被測進程存在內(nèi)存泄露時,根據(jù)所述被測進程的內(nèi)存占用值的變化趨勢定位所述被測進程發(fā)生內(nèi)存泄露的對象或代碼段。
[0025]可選的,所述米集被測進程的內(nèi)存米樣?目息,所述內(nèi)存米樣?目息包括米樣時間、被測進程在所述采樣時間對應的內(nèi)存占用值的步驟之后,該方法還包括:
[0026]將所述采集的被測進程的內(nèi)存采樣信息發(fā)送給監(jiān)控終端,以使得所述監(jiān)控終端生成所述被測進程的內(nèi)存占用值的變化趨勢,并根據(jù)所述被測進程的內(nèi)存占用值的變化趨勢,判斷所述被測進程是否存在內(nèi)存泄露。
[0027]此外,為實現(xiàn)上述目的,本發(fā)明還提出一種終端,所述終端包括上述任一項所述的內(nèi)存泄露檢測裝置。
[0028]本發(fā)明提出的內(nèi)存泄露檢測裝置及方法、終端,所述內(nèi)存泄露檢測裝置包括:采集模塊,用于采集被測進程的內(nèi)存采樣信息,所述內(nèi)存采樣信息包括采樣時間、被測進程在所述采樣時間對應的內(nèi)存占用值;生成模塊,用于生成所述被測進程的內(nèi)存占用值的變化趨勢;檢測模塊,用于根據(jù)所述被測進程的內(nèi)存占用值的變化趨勢,判斷所述被測進程是否存在內(nèi)存泄露。運用本發(fā)明提供的技術(shù)方案可在該被測進程所在的終端的底層運行測試腳本,準確的采集到被測進程的內(nèi)存采樣信息,再根據(jù)采集到的內(nèi)存采樣信息判斷被測進程是否發(fā)生內(nèi)存泄露,可提高內(nèi)存泄露檢測的準確性。
【附圖說明】
[0029]圖1為實現(xiàn)本發(fā)明各個實施例的移動終端的硬件結(jié)構(gòu)示意圖;
[0030]圖2為如圖1所示的移動終端的無線通信裝置示意圖;
[0031]圖3為本發(fā)明內(nèi)存泄露檢測裝置的第一實施例的結(jié)構(gòu)示意圖;
[0032]圖4為被測進程在某一時刻所消耗的內(nèi)存情況示意圖;
[0033]圖5為被測進程的內(nèi)存占用值的變化趨勢的示意圖;
[0034]圖6為本發(fā)明內(nèi)存泄露檢測裝置的第二實施例的結(jié)構(gòu)示意圖;
[0035]圖7為本發(fā)明內(nèi)存泄露檢測裝置的第三實施例的結(jié)構(gòu)示意圖;
[0036]圖8為本發(fā)明內(nèi)存泄露檢測裝置的第四實施例的結(jié)構(gòu)示意圖;
[0037]圖9為本發(fā)明內(nèi)存泄露檢測方法的第一實施例的流程示意圖;
[0038]圖10為本發(fā)明內(nèi)存泄露檢測方法的第二實施例的流程示意圖;
[0039]圖11為本發(fā)明內(nèi)存泄露檢測方法的第三實施例的流程示意圖。
[0040]本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說明。
【具體實施方式】
[0041]應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0042]現(xiàn)在將參考附圖描述實現(xiàn)本發(fā)明各個實施例的移動終端。在后續(xù)的描述中,使用用于表示元件的諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發(fā)明的說明,其本身并沒有特定的意義。因此,“模塊”與“部件”可以混合地使用。
[0043]移動終端可以以各種形式來實施。例如,本發(fā)明中描述的終端可以包括諸如移動電話、智能電話、筆記本電腦、數(shù)字廣播接收器、PDA(個人數(shù)字助理)、PAD(平板電腦)、PMP (便攜式多媒體播放器)、導航裝置等等的移動終端以及諸如數(shù)字TV、臺式計算機等等的固定終端。下面,假設(shè)終端是移動終端。然而,本領(lǐng)域技術(shù)人員將理解的是,除了特別用于移動目的的元件之外,根據(jù)本發(fā)明的實施方式的構(gòu)造也能夠應用于固定類型的終端。
[0044]圖1為實現(xiàn)本發(fā)明各個實施例的移動終端的硬件結(jié)構(gòu)示意。
[0045]移動終端100可以包括無線通信單元110、A/V (音頻/視頻)輸入單元120、用戶輸入單元130、感測單元140、輸出單元150、存儲器160、接口單元170、控制器180和電源單元190等等。圖1示出了具有各種組件的移動終端,但是應理解的是,并不要求實施所有示出的組件??梢蕴娲貙嵤└嗷蚋俚慕M件。將在下面詳細描述移動終端的元件。
[0046]無線通信單元110通常包括一個或多個組件,其允許移動終端100與無線通信裝置或網(wǎng)絡(luò)之間的無線電通信。例如,無線通信單元可以包括廣播接收模塊111、移動通信模塊112、無線互聯(lián)網(wǎng)模塊113、短程通信模塊114和位置信息模塊115中的至少一個。
[0047]廣播接收模塊111經(jīng)由廣播信道從外部廣播管理服務器接收廣播信號和/或廣播相關(guān)信息。廣播信道可以包括衛(wèi)星信道和/或地面信道。廣播管理服務器可以是生成并發(fā)送廣播信號和/或廣播相關(guān)信息的服務器或者接收之前生成的廣播信號和/或廣播相關(guān)信息并且將其發(fā)送給終端的服務器。廣播信號可以包括TV廣播信號、無線電廣播信號、數(shù)據(jù)廣播信號等等。而且,廣播信號可以進一步包括與TV或無線電廣播信號組合的廣播信號。廣播相關(guān)信息也可以經(jīng)由移動通信網(wǎng)絡(luò)提供,并且在該情況下,廣播相關(guān)信息可以由移動通信模塊112來接收。廣播信號可以以各種形式存在,例如,其可以以數(shù)字多媒體廣播(DMB)的電子節(jié)目指南(EPG)、數(shù)字視頻廣播手持(DVB-H)的電子服務指南(ESG)等等的形式而存在。廣播接收模塊111可以通過使用各種類型的廣播裝置接收信號廣播。特別地,廣播接收模塊111可以通過使用諸如多媒體廣播-地面(DMB-T)、數(shù)字多媒體廣播-衛(wèi)星(DMB-S)、數(shù)字視頻廣播-手持(DVB-H),前向鏈路媒體(MediaFL0@)的數(shù)據(jù)廣播裝置、地面數(shù)字廣播綜合服務(ISDB-T)等等的數(shù)字廣播裝置接收數(shù)字廣播。廣播接收模塊111可以被構(gòu)造為適合提供廣播信號的各種廣播裝置以及上述數(shù)字廣播裝置。經(jīng)由廣播接收模塊111接收的廣播信號和/或廣播相關(guān)信息可以存儲在存儲器160 (或者其它類型的存儲介質(zhì))中。
[0048]移動通信模塊112將無線電信號發(fā)送到基站(例如,接入點、節(jié)點B等等)、外部終端以及服務器中的至少一個和/或從其接收無線電信號。這樣的無線電信號可以包括語音通話信號、視頻通話信號、或者根據(jù)文本和/或多媒體消息發(fā)送和/或接收的各種類型的數(shù)據(jù)。
[0049]無線互聯(lián)網(wǎng)模塊113支持移動終端的無線互聯(lián)網(wǎng)接入。該模塊可以內(nèi)部或外部地耦接到終端。該模塊所涉及的無