一種cpu功耗測試方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明的CPU功耗測試方法和系統(tǒng),預(yù)先依據(jù)測試需求對操作系統(tǒng)啟動配置文件中配置的各服務(wù)程序進(jìn)行了篩選,去除了針對測試過程來說不必要的服務(wù)程序,實現(xiàn)了對操作系統(tǒng)進(jìn)行精簡;后續(xù)當(dāng)基于精簡操作系統(tǒng),對目標(biāo)設(shè)備進(jìn)行CPU功耗測試時,本發(fā)明依據(jù)預(yù)先設(shè)定的相應(yīng)目標(biāo)數(shù)值對目標(biāo)設(shè)備的各環(huán)境參數(shù)進(jìn)行控制,并利用模擬產(chǎn)生的CPU負(fù)載,向目標(biāo)設(shè)備的CPU施加運(yùn)算壓力,最終在此基礎(chǔ)上獲取目標(biāo)設(shè)備電池的輸出電流,實現(xiàn)了對目標(biāo)設(shè)備的CPU功耗進(jìn)行度量??梢姡景l(fā)明通過精簡操作系統(tǒng)及模擬產(chǎn)生CPU負(fù)載,降低了系統(tǒng)自身以及應(yīng)用程序?qū)y試結(jié)果所帶來的不利影響,為系統(tǒng)的功耗調(diào)優(yōu)提供了準(zhǔn)確的數(shù)據(jù)支持。
【專利說明】一種CPU功耗測試方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于基于Android系統(tǒng)的CPU(Central Processing Unit,中央處理器)功耗測試領(lǐng)域,尤其涉及一種CPU功耗測試方法和系統(tǒng)。
【背景技術(shù)】
[0002]目前,在對基于Android系統(tǒng)的設(shè)備進(jìn)行CPU功耗測試時,通常首先將被測設(shè)備上的操作系統(tǒng)完全啟動(即啟動操作系統(tǒng)啟動配置文件中配置的所有服務(wù)程序)起來,在此基礎(chǔ)上實現(xiàn)測試。
[0003]例如,具體在系統(tǒng)中安裝一些功耗監(jiān)控和測試用的應(yīng)用程序,并運(yùn)行各應(yīng)用程序?qū)ο到y(tǒng)的各項功能進(jìn)行測試,進(jìn)而得出系統(tǒng)相應(yīng)的功耗數(shù)據(jù)。以上測試方法中,CPU功耗測試是在操作系統(tǒng)完全啟動后進(jìn)行,然而,操作系統(tǒng)本身十分復(fù)雜,會不定時地執(zhí)行很多系統(tǒng)服務(wù)操作,系統(tǒng)自身會對測試結(jié)果造成影響;同時監(jiān)控測試應(yīng)用程序本身會占用內(nèi)存和CPU資源,也會影響測試結(jié)果的準(zhǔn)確性。
[0004]綜上所述,采用以上方式得到的測試數(shù)據(jù)的參考價值較低,只能定性表明設(shè)備的功耗情況,無法直接應(yīng)用于系統(tǒng)的功耗調(diào)優(yōu)。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明的目的在于提供一種CPU功耗測試方法和系統(tǒng),以提升CPU功耗的測試精準(zhǔn)度,為系統(tǒng)的功耗調(diào)優(yōu)提供直接、準(zhǔn)確的數(shù)據(jù)支持。
[0006]為此,本發(fā)明公開如下技術(shù)方案:
[0007]一種CPU功耗測試方法,包括:
[0008]接收測試人員的測試請求,所述測試請求為目標(biāo)設(shè)備的精簡操作系統(tǒng)啟動之后,測試人員在目標(biāo)設(shè)備上所觸發(fā)的請求,所述精簡操作系統(tǒng)為預(yù)先依據(jù)測試需求,對操作系統(tǒng)啟動配置文件中配置的各服務(wù)程序進(jìn)行篩選后所得的系統(tǒng);
[0009]將目標(biāo)設(shè)備各環(huán)境參數(shù)的取值控制為相應(yīng)的目標(biāo)數(shù)值;
[0010]基于模擬產(chǎn)生的預(yù)設(shè)負(fù)荷量的CPU負(fù)載,向目標(biāo)設(shè)備的CPU施加運(yùn)算壓力;
[0011]獲取目標(biāo)設(shè)備電池的輸出電流,以實現(xiàn)對目標(biāo)設(shè)備的CPU功耗進(jìn)行度量。
[0012]上述方法,優(yōu)選的,所述將目標(biāo)設(shè)備的各環(huán)境參數(shù)控制為預(yù)先設(shè)定的相應(yīng)數(shù)值,包括:
[0013]將目標(biāo)設(shè)備的電池電量控制為目標(biāo)電量值;
[0014]將目標(biāo)設(shè)備的CPU使用率、CPU頻率上限及CPU啟用內(nèi)核數(shù)分別控制為相應(yīng)的目標(biāo)數(shù)值。
[0015]上述方法,優(yōu)選的,還包括如下的預(yù)處理過程:
[0016]獲取Android系統(tǒng)源碼;
[0017]依據(jù)測試需求修改Android系統(tǒng)的啟動配置文件,實現(xiàn)對Android系統(tǒng)中對于測試過程不必要的服務(wù)程序進(jìn)行過濾,得到精簡操作系統(tǒng);
[0018]對所述精簡操作系統(tǒng)進(jìn)行編譯,得到可用的固件文件;
[0019]將所述固件文件刷入至目標(biāo)設(shè)備,并啟動目標(biāo)設(shè)備。
[0020]上述方法,優(yōu)選的,還包括:
[0021]依據(jù)預(yù)先配置的測試計劃,判斷是否已完成全部的測試流程,所述測試計劃包括各環(huán)境參數(shù)的N組取值,所述N為不小于I的自然數(shù);
[0022]若判斷結(jié)果為否,則依據(jù)預(yù)先配置的測試計劃,獲取目標(biāo)設(shè)備各環(huán)境參數(shù)的下一組取值,將所述下一組取值作為各環(huán)境參數(shù)的新的目標(biāo)數(shù)值;并觸發(fā)以下步驟:將目標(biāo)設(shè)備各環(huán)境參數(shù)的取值控制為相應(yīng)的目標(biāo)數(shù)值;
[0023]若判斷結(jié)果為是,則結(jié)束。
[0024]上述方法,優(yōu)選的,還包括:
[0025]依據(jù)測試結(jié)果,制定電池輸出電流與各環(huán)境參數(shù)間的映射關(guān)系表,并繪制輸出電流與環(huán)境參數(shù)間的函數(shù)曲線圖。
[0026]一種CPU功耗測試系統(tǒng),包括:
[0027]請求接收模塊,用于接收測試人員的測試請求,所述測試請求為目標(biāo)設(shè)備的精簡操作系統(tǒng)啟動之后,測試人員在目標(biāo)設(shè)備上所觸發(fā)的請求,所述精簡操作系統(tǒng)為預(yù)先依據(jù)測試需求,對操作系統(tǒng)啟動配置文件中配置的各服務(wù)程序進(jìn)行篩選后所得的系統(tǒng);
[0028]環(huán)境控制模塊,用于將目標(biāo)設(shè)備各環(huán)境參數(shù)的取值控制為相應(yīng)目標(biāo)數(shù)值;
[0029]負(fù)荷施加模塊,用于基于模擬產(chǎn)生的預(yù)設(shè)負(fù)荷量的CPU負(fù)載,向目標(biāo)設(shè)備的CPU施加運(yùn)算壓力;
[0030]電流獲取模塊,用于獲取目標(biāo)設(shè)備電池的輸出電流,以實現(xiàn)對目標(biāo)設(shè)備的CPU功耗進(jìn)行度量。
[0031]上述系統(tǒng),優(yōu)選的,所述環(huán)境控制模塊包括:
[0032]電量控制單元,用于將目標(biāo)設(shè)備的電池電量控制為目標(biāo)電量值;
[0033]CPU控制單元,用于將目標(biāo)設(shè)備的CPU使用率、CPU頻率上限及CPU啟用內(nèi)核數(shù)分別控制為相應(yīng)的目標(biāo)數(shù)值。
[0034]上述系統(tǒng),優(yōu)選的,還包括預(yù)處理模塊,所述預(yù)處理模塊包括:
[0035]第一獲取單元,用于獲取Android系統(tǒng)源碼;
[0036]篩選單元,用于依據(jù)測試需求修改Android系統(tǒng)的啟動配置文件,實現(xiàn)對Android系統(tǒng)中對于測試過程不必要的服務(wù)程序進(jìn)行過濾,得到精簡操作系統(tǒng);
[0037]編譯單元,用于對所述精簡操作系統(tǒng)進(jìn)行編譯,得到可用的固件文件;
[0038]啟動單元,用于將所述固件文件刷入至目標(biāo)設(shè)備,并啟動目標(biāo)設(shè)備。
[0039]上述系統(tǒng),優(yōu)選的,還包括循環(huán)控制模塊,所述循環(huán)控制模塊包括:
[0040]判斷單元,應(yīng)用依據(jù)預(yù)先配置的測試計劃,判斷是否已完成全部的測試流程,所述測試計劃包括各環(huán)境參數(shù)的N組取值,所述N為不小于I的自然數(shù);
[0041]觸發(fā)單元,用于在判斷結(jié)果為否時,依據(jù)預(yù)先配置的測試計劃,獲取目標(biāo)設(shè)備各環(huán)境參數(shù)的下一組取值,將所述下一組取值作為各環(huán)境參數(shù)新的目標(biāo)數(shù)值;并觸發(fā)以下步驟:將目標(biāo)設(shè)備各環(huán)境參數(shù)的取值控制為相應(yīng)的目標(biāo)數(shù)值,以實現(xiàn)針對各環(huán)境參數(shù)的不同取值組合,對目標(biāo)設(shè)備的功耗情況進(jìn)行循環(huán)測試;
[0042]結(jié)束單元,應(yīng)用在判斷結(jié)果為是時,結(jié)束測試。
[0043]上述系統(tǒng),優(yōu)選的,還包括:
[0044]數(shù)據(jù)處理模塊,用于依據(jù)測試結(jié)果,制定電池輸出電流與各環(huán)境參數(shù)間的映射關(guān)系表,并繪制輸出電流與環(huán)境參數(shù)間的函數(shù)曲線圖。
[0045]由以上方案可知,本發(fā)明預(yù)先依據(jù)測試需求對操作系統(tǒng)啟動配置文件中配置的各服務(wù)程序進(jìn)行了篩選,去除了針對測試過程來說不必要的服務(wù)程序,實現(xiàn)了對操作系統(tǒng)進(jìn)行精簡;后續(xù)當(dāng)基于精簡操作系統(tǒng),對目標(biāo)設(shè)備進(jìn)行CPU功耗測試時,本發(fā)明依據(jù)預(yù)先設(shè)定的相應(yīng)目標(biāo)數(shù)值對目標(biāo)設(shè)備的各環(huán)境參數(shù)進(jìn)行控制,并利用模擬產(chǎn)生的CPU負(fù)載,向目標(biāo)設(shè)備的CPU施加運(yùn)算壓力,最終在此基礎(chǔ)上獲取目標(biāo)設(shè)備電池的輸出電流,實現(xiàn)了對目標(biāo)設(shè)備的CPU功耗進(jìn)行度量??梢?,本發(fā)明通過精簡操作系統(tǒng)及模擬產(chǎn)生CPU負(fù)載,降低了系統(tǒng)自身以及應(yīng)用程序?qū)y試結(jié)果所帶來的不利影響,為系統(tǒng)的功耗調(diào)優(yōu)提供了直接、準(zhǔn)確的數(shù)據(jù)支持。
【專利附圖】
【附圖說明】
[0046]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0047]圖1是本發(fā)明實施例一公開的CPU功耗測試方法的一種流程圖;
[0048]圖2是本發(fā)明實施例二公開的CPU功耗測試方法的另一種流程圖;
[0049]圖3是本發(fā)明實施例三公開的CPU功耗測試方法的又一種流程圖;
[0050]圖4(a) ,4(b)是本發(fā)明實施例三公開的測試結(jié)果映射關(guān)系表的表格示意圖;
[0051]圖4(c)是本發(fā)明實施例三公開的輸出電流與環(huán)境參數(shù)間的函數(shù)曲線圖;
[0052]圖5是本發(fā)明實施例四公開的CPU功耗測試系統(tǒng)的一種結(jié)構(gòu)示意圖;
[0053]圖6是本發(fā)明實施例四公開的CPU功耗測試系統(tǒng)的另一種結(jié)構(gòu)示意圖;
[0054]圖7是本發(fā)明實施例四公開的CPU功耗測試系統(tǒng)的又一種結(jié)構(gòu)示意圖;
[0055]圖8是本發(fā)明實施例四公開的CPU功耗測試系統(tǒng)的再一種結(jié)構(gòu)示意圖。
【具體實施方式】
[0056]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0057]實施例一
[0058]本實施例一公開一種CPU功耗測試方法,參考圖1,所述方法可以包括以下步驟:
[0059]SlOl:接收測試人員的測試請求,所述測試請求為目標(biāo)設(shè)備的精簡操作系統(tǒng)啟動之后,測試人員在目標(biāo)設(shè)備上所觸發(fā)的請求,所述精簡操作系統(tǒng)為預(yù)先依據(jù)測試需求,對操作系統(tǒng)啟動配置文件中配置的各服務(wù)程序進(jìn)行篩選后所得的系統(tǒng)。
[0060]本實施例具體以Android系統(tǒng)為例對本發(fā)明進(jìn)行詳細(xì)說明。
[0061]在依據(jù)本發(fā)明的各步驟處理邏輯進(jìn)行CPU功耗測試之前,需首先進(jìn)行如下的預(yù)處理過程:
[0062]準(zhǔn)備Android系統(tǒng)源碼;修改Android系統(tǒng)的啟動配置文件init.xxx.rc,依據(jù)測試需求對啟動配置文件中配置的各服務(wù)程序進(jìn)行篩選,去除其中對于測試過程來說不必要的服務(wù)程序,例如去除zygote、mediaserver等,得到精簡的操作系統(tǒng);編譯精簡后的操作系統(tǒng)得到可用的固件文件,例如system, img,并將其刷入到目標(biāo)設(shè)備中,在此基礎(chǔ)上啟動目標(biāo)設(shè)備。
[0063]在測試開始前,還需確定目標(biāo)設(shè)備的供電方式:如果目標(biāo)設(shè)備的CPU驅(qū)動支持USB (Universal Serial Bus,通用串行總線)充電開關(guān)(是Linux Kernel中的一個文件節(jié)點(diǎn),一般是 /sys/class/power_supply/battery/charging_enabled),則目標(biāo)設(shè)備在測試過程中可以使用USB連接充電設(shè)備,否則不采用該連接方式。
[0064]實際應(yīng)用場景中,可采用軟件程序的形式實現(xiàn)本發(fā)明的測試流程,本實施例具體依據(jù)以上各步驟的處理邏輯編寫自動化測試程序,將所編寫的自動化測試程序裝入所述目標(biāo)設(shè)備中,并在設(shè)置好相關(guān)參數(shù)后啟動測試程序(即觸發(fā)測試請求),其中,在測試時不啟動任何應(yīng)用程序,并關(guān)停所有不必要的系統(tǒng)服務(wù)。
[0065]測試程序的主要功能包括控制USB是否充電、模擬產(chǎn)生特定的CPU負(fù)載、控制CPU頻率上限、控制CPU啟用的內(nèi)核數(shù)、監(jiān)控電池電量的變化、根據(jù)配置的測試計劃自動完成測試過程并收集電池的電流數(shù)據(jù),即測試時會基于電池電量、CPU使用率、CPU頻率、CPU啟用內(nèi)核數(shù)這四個維度的組合數(shù)據(jù)進(jìn)行CPU功耗測試。
[0066]S102:將目標(biāo)設(shè)備各環(huán)境參數(shù)的取值控制為相應(yīng)的目標(biāo)數(shù)值。
[0067]當(dāng)測試人員啟動測試程序后,測試程序依據(jù)預(yù)先配置的測試計劃讀取電池電量、CPU使用率、CPU頻率及CPU啟用內(nèi)核數(shù)等環(huán)境參數(shù)的組合數(shù)據(jù),并將其作為各環(huán)境參數(shù)的目標(biāo)數(shù)值對目標(biāo)設(shè)備的各環(huán)境參數(shù)進(jìn)行如下控制:監(jiān)控電池電量的變化,通過控制USB是否充電實現(xiàn)將電池電量控制為組合數(shù)據(jù)中所設(shè)定的電池剩余電量百分比^fCPU使用率、CPU頻率上限及CPU啟用內(nèi)核數(shù)分別控制為組合數(shù)據(jù)中所設(shè)定的CPU使用率百分比、CPU最高頻率、CPU啟用內(nèi)核數(shù)。
[0068]S103:基于模擬產(chǎn)生的預(yù)設(shè)負(fù)荷量的CPU負(fù)載,向目標(biāo)設(shè)備的CPU施加運(yùn)算壓力。
[0069]同時,測試程序模擬產(chǎn)生特定的CPU負(fù)載,實現(xiàn)向CPU施加負(fù)荷。
[0070]本實施例中,模擬產(chǎn)生的CPU負(fù)載具體為“基準(zhǔn)使用率負(fù)荷”,所謂“基準(zhǔn)使用率負(fù)荷”是指預(yù)先在CPU被設(shè)置為最低頻率、只啟用一個CPU內(nèi)核、電池電量滿電的情況下,用測試程序為目標(biāo)設(shè)備施加運(yùn)算壓力,使得CPU使用率增加到100%時,測試程序所施加的運(yùn)算負(fù)荷。后續(xù),將該負(fù)荷作為正式測試時的基準(zhǔn)負(fù)荷,在之后的測試過程中測試程序都向CPU施加以相同的負(fù)荷(即施加基準(zhǔn)負(fù)荷)。
[0071]S104:獲取目標(biāo)設(shè)備電池的輸出電流,以實現(xiàn)對目標(biāo)設(shè)備的CPU功耗進(jìn)行度量。
[0072]在以上各步驟的基礎(chǔ)上,測試程序收集目標(biāo)設(shè)備電池的輸出電流。根據(jù)電量公式Q = IT(其中,Q、1、T分別表示電量、電流和時間),可知,一段時間內(nèi)電流越大耗電越多,因此,本實施例直接采用電池的輸出電流作為CPU功耗的衡量依據(jù),電流越大,CPU功耗越高,電流越小,則CPU功耗越低。
[0073]由以上方案可知,本發(fā)明預(yù)先依據(jù)測試需求對操作系統(tǒng)啟動配置文件中配置的各服務(wù)程序進(jìn)行了篩選,去除了針對測試過程來說不必要的服務(wù)程序,實現(xiàn)了對操作系統(tǒng)進(jìn)行精簡;后續(xù)當(dāng)基于精簡操作系統(tǒng),對目標(biāo)設(shè)備進(jìn)行CPU功耗測試時,本發(fā)明依據(jù)預(yù)先設(shè)定的相應(yīng)目標(biāo)數(shù)值對目標(biāo)設(shè)備的各環(huán)境參數(shù)進(jìn)行控制,并利用模擬產(chǎn)生的CPU負(fù)載,向目標(biāo)設(shè)備的CPU施加運(yùn)算壓力,最終在此基礎(chǔ)上獲取目標(biāo)設(shè)備電池的輸出電流,實現(xiàn)了對目標(biāo)設(shè)備的CPU功耗進(jìn)行度量??梢?,本發(fā)明通過精簡操作系統(tǒng)及模擬產(chǎn)生CPU負(fù)載,降低了系統(tǒng)自身以及應(yīng)用程序?qū)y試結(jié)果所帶來的不利影響,為系統(tǒng)的功耗調(diào)優(yōu)提供了直接、準(zhǔn)確的數(shù)據(jù)支持。
[0074]實施例二
[0075]本實施例二中,參考圖2,所述方法還可以包括以下步驟:
[0076]S105:依據(jù)預(yù)先配置的測試計劃,判斷是否已完成全部的測試流程,所述測試計劃包括各環(huán)境參數(shù)的N組取值,所述N為不小于I的自然數(shù);
[0077]S106:若判斷結(jié)果為否,則依據(jù)預(yù)先配置的測試計劃,獲取目標(biāo)設(shè)備各環(huán)境參數(shù)的下一組取值,將所述下一組取值作為各環(huán)境參數(shù)新的目標(biāo)數(shù)值;并觸發(fā)以下步驟:將目標(biāo)設(shè)備各環(huán)境參數(shù)的取值控制為相應(yīng)的目標(biāo)數(shù)值;
[0078]S107:若判斷結(jié)果為是,則結(jié)束。
[0079]本發(fā)明的目的旨在利用CPU功耗的測試數(shù)據(jù),使Android系統(tǒng)開發(fā)廠商可以根據(jù)性能和功耗的平衡性需求,對系統(tǒng)進(jìn)行更準(zhǔn)確的功耗調(diào)優(yōu),提升產(chǎn)品的續(xù)航能力。因此,需要對電池剩余電量在不同百分比、CPU使用率在不同百分比、CPU最高頻率在不同數(shù)值、CPU啟用內(nèi)核數(shù)在不同數(shù)值的所有搭配(即各種組合數(shù)據(jù))進(jìn)行測試,測定每種搭配下的電池供電電流,以此電流值來衡量CPU在各種搭配下的耗電情況。
[0080]基于此,本實施例預(yù)先在測試程序的測試計劃中為以上各參數(shù)配置一系列不同的取值組合,測試過程中,測試程序分別在以上各參數(shù)采用不同取值組合的情況下,對CPU功耗進(jìn)行循環(huán)測試,直至針對每種取值組合,均完成電池輸出電流的收集為止。
[0081]實施例三
[0082]本實施例三中,參考圖3,所述方法還可以包括以下步驟:
[0083]S108:依據(jù)測試結(jié)果,制定電池輸出電流與各環(huán)境參數(shù)間的映射關(guān)系表,并繪制輸出電流與環(huán)境參數(shù)間的函數(shù)曲線圖。
[0084]本實施例具體依據(jù)測試數(shù)據(jù),整理電池電量、CPU使用率、CPU頻率、CPU啟用內(nèi)核數(shù)與電池輸出電流間的關(guān)系,生成電池電流與各環(huán)境參數(shù)的測試結(jié)果映射關(guān)系表,并繪制輸出電流與環(huán)境參數(shù)間的函數(shù)曲線圖。所生成的測試結(jié)果映射關(guān)系表的表格形式可參考圖4(a)及圖4(b)所示,所繪制的曲線可參考圖4(c)。
[0085]在此基礎(chǔ)上,根據(jù)測試結(jié)果,可以推斷系統(tǒng)正常運(yùn)行的情況下,當(dāng)電池電量在某一特定值、CPU使用率在某一特定值時,CPU的頻率和啟用的內(nèi)核數(shù)為多少時電流是最低的,根據(jù)性能和功耗的平衡性需求,就可以調(diào)節(jié)此刻的CPU頻率和啟用內(nèi)核數(shù)。系統(tǒng)可以一直監(jiān)控電池電量和CPU使用率,從而不斷的調(diào)節(jié)CPU參數(shù)以達(dá)到節(jié)省功耗的目的。
[0086]實施例四
[0087]本實施例四公開一種CPU功耗測試系統(tǒng),所述系統(tǒng)與以上各實施例公開的CPU功耗測試方法相對應(yīng)。
[0088]首先,相應(yīng)于實施例一,參考圖5,所述系統(tǒng)包括請求接收模塊100、環(huán)境控制模塊200、負(fù)荷施加模塊300和電流獲取模塊400。
[0089]請求接收模塊100,用于接收測試人員的測試請求,所述測試請求為目標(biāo)設(shè)備的精簡操作系統(tǒng)啟動之后,測試人員在目標(biāo)設(shè)備上所觸發(fā)的請求,所述精簡操作系統(tǒng)為預(yù)先依據(jù)測試需求,對操作系統(tǒng)啟動配置文件中配置的各服務(wù)程序進(jìn)行篩選后所得的系統(tǒng)。
[0090]環(huán)境控制模塊200,用于將目標(biāo)設(shè)備各環(huán)境參數(shù)的取值控制為相應(yīng)目標(biāo)數(shù)值。
[0091]所述環(huán)境控制模塊200包括電量控制單元和CPU控制單元。
[0092]電量控制單元,用于將目標(biāo)設(shè)備的電池電量控制為目標(biāo)電量值;
[0093]CPU控制單元,用于將目標(biāo)設(shè)備的CPU使用率、CPU頻率上限及CPU啟用內(nèi)核數(shù)分別控制為相應(yīng)的目標(biāo)數(shù)值。
[0094]負(fù)荷施加模塊300,用于基于模擬產(chǎn)生的預(yù)設(shè)大小的CPU負(fù)載,向目標(biāo)設(shè)備的CPU施加運(yùn)算壓力。
[0095]電流獲取模塊400,用于獲取目標(biāo)設(shè)備電池的輸出電流,以實現(xiàn)對目標(biāo)設(shè)備的CPU功耗進(jìn)行度量。
[0096]以上各模塊的處理邏輯需建立在預(yù)處理的基礎(chǔ)上,因此參考圖6,上述系統(tǒng)還包括預(yù)處理模塊500,該模塊包括第一獲取單元、篩選單元和啟動單元。
[0097]第一獲取單元,用于獲取Android系統(tǒng)源碼;
[0098]篩選單元,用于依據(jù)測試需求修改Android系統(tǒng)的啟動配置文件,實現(xiàn)對Android系統(tǒng)中對于測試過程不必要的服務(wù)程序進(jìn)行篩選,得到精簡操作系統(tǒng);
[0099]編譯單元,用于對所述精簡操作系統(tǒng)進(jìn)行編譯,得到可用的固件文件;
[0100]啟動單元,用于將所述固件文件刷入至目標(biāo)設(shè)備,并啟動目標(biāo)設(shè)備。
[0101]相應(yīng)于實施例二,參考圖7,所述系統(tǒng)還包括循環(huán)控制模塊600,該模塊包括判斷單元、觸發(fā)單元和結(jié)束單元。
[0102]判斷單元,應(yīng)用依據(jù)預(yù)先配置的測試計劃,判斷是否已完成全部的測試流程,所述測試計劃包括各環(huán)境參數(shù)的N組取值,所述N為不小于I的自然數(shù);
[0103]觸發(fā)單元,用于在判斷結(jié)果為否時,依據(jù)預(yù)先配置的測試計劃,獲取目標(biāo)設(shè)備各環(huán)境參數(shù)的下一組取值,將所述下一組取值作為各環(huán)境參數(shù)新的目標(biāo)數(shù)值;并觸發(fā)以下步驟:將目標(biāo)設(shè)備各環(huán)境參數(shù)的取值控制為相應(yīng)的目標(biāo)數(shù)值;
[0104]結(jié)束單元,應(yīng)用在判斷結(jié)果為是時,結(jié)束測試。
[0105]相應(yīng)于實施例三,參考圖8,所述系統(tǒng)還包括數(shù)據(jù)處理模塊700,該模塊用于依據(jù)測試結(jié)果,制定電池輸出電流與各環(huán)境參數(shù)間的映射關(guān)系表,并繪制輸出電流與環(huán)境參數(shù)間的函數(shù)曲線圖。
[0106]對于本發(fā)明實施例四公開的CPU功耗測試系統(tǒng)而言,由于其與以上各實施例公開的CPU功耗測試方法相對應(yīng),所以描述的比較簡單,相關(guān)相似之處請參見以上各實施例中CPU功耗測試方法部分的說明即可,此處不再詳述。
[0107]綜上所述,本發(fā)明利用Android系統(tǒng)的特有功能,在進(jìn)行CPU功耗測試時不啟動任何應(yīng)用程序,并關(guān)停所有不必要的系統(tǒng)服務(wù),避免了系統(tǒng)自身以及應(yīng)用程序?qū)y試結(jié)果的影響;通過編寫的測試程序?qū)崿F(xiàn)了 CPU功耗的自動化測試,并會基于電池電量、CPU使用率、CPU頻率、CPU啟用內(nèi)核數(shù)四個維度的不同數(shù)據(jù)搭配情況進(jìn)行測試,測定每種數(shù)據(jù)搭配下的電池供電電流,以此電流值來衡量CPU在各種搭配下的耗電情況。利用以上測試數(shù)據(jù),Android系統(tǒng)開發(fā)廠商可以根據(jù)性能和功耗的平衡性需求,對系統(tǒng)進(jìn)行更準(zhǔn)確的功耗調(diào)優(yōu),提升產(chǎn)品的續(xù)航能力。
[0108]需要說明的是,本說明書中的各個實施例均采用遞進(jìn)的方式描述,每個實施例重點(diǎn)說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
[0109]通過以上的實施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請可借助軟件加必需的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本申請的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個實施例或者實施例的某些部分所述的方法。
[0110]最后,還需要說明的是,在本文中,諸如第一、第二、第三和第四等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0111]以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種CPU功耗測試方法,其特征在于,包括: 接收測試人員的測試請求,所述測試請求為目標(biāo)設(shè)備的精簡操作系統(tǒng)啟動之后,測試人員在目標(biāo)設(shè)備上所觸發(fā)的請求,所述精簡操作系統(tǒng)為預(yù)先依據(jù)測試需求,對操作系統(tǒng)啟動配置文件中配置的各服務(wù)程序進(jìn)行篩選后所得的系統(tǒng); 將目標(biāo)設(shè)備各環(huán)境參數(shù)的取值控制為相應(yīng)的目標(biāo)數(shù)值; 基于模擬產(chǎn)生的預(yù)設(shè)負(fù)荷量的CPU負(fù)載,向目標(biāo)設(shè)備的CPU施加運(yùn)算壓力; 獲取目標(biāo)設(shè)備電池的輸出電流,以實現(xiàn)對目標(biāo)設(shè)備的CPU功耗進(jìn)行度量。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將目標(biāo)設(shè)備的各環(huán)境參數(shù)控制為預(yù)先設(shè)定的相應(yīng)數(shù)值,包括: 將目標(biāo)設(shè)備的電池電量控制為目標(biāo)電量值; 將目標(biāo)設(shè)備的CPU使用率、CPU頻率上限及CPU啟用內(nèi)核數(shù)分別控制為相應(yīng)的目標(biāo)數(shù)值。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括如下的預(yù)處理過程: 獲取Android系統(tǒng)源碼; 依據(jù)測試需求修改Android系統(tǒng)的啟動配置文件,實現(xiàn)對Android系統(tǒng)中對于測試過程不必要的服務(wù)程序進(jìn)行過濾,得到精簡操作系統(tǒng); 對所述精簡操作系統(tǒng)進(jìn)行編譯,得到可用的固件文件; 將所述固件文件刷入至目標(biāo)設(shè)備,并啟動目標(biāo)設(shè)備。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: 依據(jù)預(yù)先配置的測試計劃,判斷是否已完成全部的測試流程,所述測試計劃包括各環(huán)境參數(shù)的N組取值,所述N為不小于I的自然數(shù); 若判斷結(jié)果為否,則依據(jù)預(yù)先配置的測試計劃,獲取目標(biāo)設(shè)備各環(huán)境參數(shù)的下一組取值,將所述下一組取值作為各環(huán)境參數(shù)的新的目標(biāo)數(shù)值;并觸發(fā)以下步驟:將目標(biāo)設(shè)備各環(huán)境參數(shù)的取值控制為相應(yīng)的目標(biāo)數(shù)值; 若判斷結(jié)果為是,則結(jié)束。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,還包括: 依據(jù)測試結(jié)果,制定電池輸出電流與各環(huán)境參數(shù)間的映射關(guān)系表,并繪制輸出電流與環(huán)境參數(shù)間的函數(shù)曲線圖。
6.一種CPU功耗測試系統(tǒng),其特征在于,包括: 請求接收模塊,用于接收測試人員的測試請求,所述測試請求為目標(biāo)設(shè)備的精簡操作系統(tǒng)啟動之后,測試人員在目標(biāo)設(shè)備上所觸發(fā)的請求,所述精簡操作系統(tǒng)為預(yù)先依據(jù)測試需求,對操作系統(tǒng)啟動配置文件中配置的各服務(wù)程序進(jìn)行篩選后所得的系統(tǒng); 環(huán)境控制模塊,用于將目標(biāo)設(shè)備各環(huán)境參數(shù)的取值控制為相應(yīng)目標(biāo)數(shù)值; 負(fù)荷施加模塊,用于基于模擬產(chǎn)生的預(yù)設(shè)負(fù)荷量的CPU負(fù)載,向目標(biāo)設(shè)備的CPU施加運(yùn)算壓力; 電流獲取模塊,用于獲取目標(biāo)設(shè)備電池的輸出電流,以實現(xiàn)對目標(biāo)設(shè)備的CPU功耗進(jìn)行度量。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述環(huán)境控制模塊包括: 電量控制單元,用于將目標(biāo)設(shè)備的電池電量控制為目標(biāo)電量值; CPU控制單元,用于將目標(biāo)設(shè)備的CPU使用率、CPU頻率上限及CPU啟用內(nèi)核數(shù)分別控制為相應(yīng)的目標(biāo)數(shù)值。
8.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,還包括預(yù)處理模塊,所述預(yù)處理模塊包括: 第一獲取單元,用于獲取Android系統(tǒng)源碼; 篩選單元,用于依據(jù)測試需求修改Andro i d系統(tǒng)的啟動配置文件,實現(xiàn)對Andro i d系統(tǒng)中對于測試過程不必要的服務(wù)程序進(jìn)行過濾,得到精簡操作系統(tǒng); 編譯單元,用于對所述精簡操作系統(tǒng)進(jìn)行編譯,得到可用的固件文件; 啟動單元,用于將所述固件文件刷入至目標(biāo)設(shè)備,并啟動目標(biāo)設(shè)備。
9.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,還包括循環(huán)控制模塊,所述循環(huán)控制模塊包括: 判斷單元,應(yīng)用依據(jù)預(yù)先配置的測試計劃,判斷是否已完成全部的測試流程,所述測試計劃包括各環(huán)境參數(shù)的N組取值,所述N為不小于I的自然數(shù); 觸發(fā)單元,用于在判斷結(jié)果為否時,依據(jù)預(yù)先配置的測試計劃,獲取目標(biāo)設(shè)備各環(huán)境參數(shù)的下一組取值,將所述下一組取值作為各環(huán)境參數(shù)新的目標(biāo)數(shù)值;并觸發(fā)以下步驟:將目標(biāo)設(shè)備各環(huán)境參數(shù)的取值控制為相應(yīng)的目標(biāo)數(shù)值;以實現(xiàn)針對各環(huán)境參數(shù)的不同取值組合,對目標(biāo)設(shè)備的功耗情況進(jìn)行循環(huán)測試; 結(jié)束單元,用于在判斷結(jié)果為是時,結(jié)束測試。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,還包括: 數(shù)據(jù)處理模塊,用于依據(jù)測試結(jié)果,制定電池輸出電流與各環(huán)境參數(shù)間的映射關(guān)系表,并繪制輸出電流與環(huán)境參數(shù)間的函數(shù)曲線圖。
【文檔編號】G01R21/00GK104502690SQ201410841014
【公開日】2015年4月8日 申請日期:2014年12月30日 優(yōu)先權(quán)日:2014年12月30日
【發(fā)明者】李文棟, 趙政耀 申請人:中科創(chuàng)達(dá)軟件股份有限公司