本發(fā)明涉及控制器性能測(cè)試,尤其涉及一種內(nèi)存性能測(cè)試方法、裝置、設(shè)備和介質(zhì)。
背景技術(shù):
1、隨著汽車電子化水平的提高,汽車上開(kāi)始有越來(lái)越多的控制器使用a核及運(yùn)行在其上的linux/qnx這樣的類unix操作系統(tǒng),例如ecu(electronic?control?unit,電子控制單元)。
2、在汽車研發(fā)過(guò)程中對(duì)運(yùn)行unix操作系統(tǒng)的控制器進(jìn)行單板測(cè)試時(shí),其內(nèi)存占用遠(yuǎn)遠(yuǎn)低于車輛整車運(yùn)行時(shí)的內(nèi)存占用,進(jìn)而無(wú)法及時(shí)發(fā)現(xiàn)控制器上系統(tǒng)的可靠性問(wèn)題。因此,如何對(duì)控制器上操作系統(tǒng)的內(nèi)存性能進(jìn)行測(cè)試是當(dāng)前亟需解決的問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)實(shí)施例通過(guò)提供一種內(nèi)存性能測(cè)試方法、裝置、設(shè)備和介質(zhì),解決了現(xiàn)有技術(shù)中在控制器單板測(cè)試過(guò)程中的內(nèi)存占用遠(yuǎn)遠(yuǎn)低于車輛整車運(yùn)行時(shí)的內(nèi)存占用,進(jìn)而無(wú)法對(duì)控制器的內(nèi)存性能進(jìn)行有效檢測(cè)的技術(shù)問(wèn)題,實(shí)現(xiàn)了按照整車運(yùn)行時(shí)的內(nèi)存占用狀態(tài)對(duì)控制器進(jìn)行單板測(cè)試,以確定控制器的內(nèi)存性能的技術(shù)效果。
2、第一方面,本技術(shù)提供了一種內(nèi)存性能測(cè)試方法,方法包括:
3、在待測(cè)試的目標(biāo)控制器上安裝測(cè)試應(yīng)用程序,測(cè)試應(yīng)用程序與目標(biāo)控制器匹配;
4、控制測(cè)試應(yīng)用程序查詢目標(biāo)控制器上已經(jīng)安裝的多個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序,并預(yù)估各個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序在運(yùn)行時(shí)分別所需的內(nèi)存子占用率;
5、控制測(cè)試應(yīng)用程序根據(jù)各個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序分別對(duì)應(yīng)的內(nèi)存子占用率,從各個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序中選出滿足內(nèi)存測(cè)試需求的至少一個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序;
6、基于測(cè)試應(yīng)用程序響應(yīng)于接收到的測(cè)試啟動(dòng)指令,控制目標(biāo)控制器運(yùn)行至少一個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序;
7、基于測(cè)試應(yīng)用程序獲取從目標(biāo)控制器在運(yùn)行至少一個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序的內(nèi)存占用過(guò)程中采集的狀態(tài)運(yùn)行參數(shù);
8、根據(jù)狀態(tài)運(yùn)行參數(shù),確定目標(biāo)控制器的內(nèi)存性能。
9、進(jìn)一步地,控制測(cè)試應(yīng)用程序根據(jù)各個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序分別對(duì)應(yīng)的內(nèi)存子占用率,從各個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序中選出滿足內(nèi)存測(cè)試需求的至少一個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序,包括:
10、當(dāng)內(nèi)存測(cè)試需求包括控制內(nèi)存占用率按照線性增長(zhǎng)的方式實(shí)現(xiàn)內(nèi)存變化時(shí),將各個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序按照各自對(duì)應(yīng)的內(nèi)存子占用率從小到大的順序進(jìn)行排序,得到線性增長(zhǎng)序列;
11、將線性增長(zhǎng)序列中前n個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序的內(nèi)存子占用率之和,確定為內(nèi)存總占用率,n為正整數(shù);內(nèi)存總占用率小于內(nèi)存極限占用率且大于內(nèi)存預(yù)設(shè)占用率;
12、將前n個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序作為滿足內(nèi)存測(cè)試需求的n個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序。
13、進(jìn)一步地,控制測(cè)試應(yīng)用程序根據(jù)各個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序分別對(duì)應(yīng)的內(nèi)存子占用率,從各個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序中選出滿足內(nèi)存測(cè)試需求的至少一個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序,包括:
14、當(dāng)內(nèi)存測(cè)試需求包括控制內(nèi)存占用率按照階梯式增長(zhǎng)的方式實(shí)現(xiàn)內(nèi)存變化時(shí),將各個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序按照各自對(duì)應(yīng)的內(nèi)存子占用率從小到大的順序進(jìn)行排序,得到階梯增長(zhǎng)序列;
15、從階梯增長(zhǎng)序列中篩選出每?jī)蓚€(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序的內(nèi)存子占用率的差值變化滿足階梯式增長(zhǎng)的m個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序,且m個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序的內(nèi)存子占用率之和小于內(nèi)存極限占用率且大于內(nèi)存預(yù)設(shè)占用率,m為正整數(shù);
16、將m個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序作為滿足內(nèi)存測(cè)試需求的m個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序。
17、進(jìn)一步地,控制測(cè)試應(yīng)用程序根據(jù)各個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序分別對(duì)應(yīng)的內(nèi)存子占用率,從各個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序中選出滿足內(nèi)存測(cè)試需求的至少一個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序,包括:
18、當(dāng)內(nèi)存測(cè)試需求包括控制內(nèi)存占用率按照正弦波增長(zhǎng)的方式實(shí)現(xiàn)內(nèi)存變化時(shí),從各個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序中篩選出內(nèi)存子占用率滿足正弦波增長(zhǎng)的p個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序,且p個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序的內(nèi)存子占用率之和小于內(nèi)存極限占用率且大于內(nèi)存預(yù)設(shè)占用率,p為正整數(shù);
19、將p個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序作為滿足內(nèi)存測(cè)試需求的至少一個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序。
20、進(jìn)一步地,在控制目標(biāo)控制器運(yùn)行至少一個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序之后,方法還包括:
21、當(dāng)目標(biāo)控制器滿足測(cè)試循環(huán)條件時(shí),復(fù)位目標(biāo)控制器并返回執(zhí)行控制目標(biāo)控制器運(yùn)行至少一個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序的步驟,直到目標(biāo)控制器滿足預(yù)設(shè)的測(cè)試終止條件時(shí)為止;循環(huán)條件包括執(zhí)行控制目標(biāo)控制器運(yùn)行至少一個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序步驟的次數(shù)小于預(yù)設(shè)次數(shù);終止條件包括執(zhí)行控制目標(biāo)控制器運(yùn)行至少一個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序步驟的次數(shù)大于或等于預(yù)設(shè)次數(shù)。
22、進(jìn)一步地,在控制目標(biāo)控制器運(yùn)行至少一個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序之后,方法還包括:
23、控制目標(biāo)控制器釋放至少一個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序所占用的內(nèi)存空間。
24、進(jìn)一步地,運(yùn)行狀態(tài)參數(shù)包括以下多種狀態(tài)參數(shù)中的至少一種:
25、目標(biāo)控制器的中央處理器的實(shí)際負(fù)載、實(shí)際負(fù)載的變化特征、目標(biāo)控制器的內(nèi)存的占用特征、目標(biāo)控制器的系統(tǒng)的響應(yīng)時(shí)長(zhǎng)、目標(biāo)控制器的日志、目標(biāo)控制器的系統(tǒng)的崩潰狀態(tài)、目標(biāo)控制器的系統(tǒng)的崩潰次數(shù)、目標(biāo)控制器的內(nèi)存的泄漏狀態(tài)、目標(biāo)控制器的系統(tǒng)的狀態(tài)快照、目標(biāo)控制器的溫度、目標(biāo)控制器的應(yīng)用程序的運(yùn)行狀態(tài)、目標(biāo)控制器的無(wú)故障運(yùn)行時(shí)長(zhǎng)以及目標(biāo)控制器的資源利用率。
26、第二方面,本技術(shù)提供了一種內(nèi)存性能測(cè)試裝置,裝置包括:
27、安裝模塊,用于在待測(cè)試的目標(biāo)控制器上安裝測(cè)試應(yīng)用程序,測(cè)試應(yīng)用程序與目標(biāo)控制器匹配;
28、查詢預(yù)估模塊,用于控制測(cè)試應(yīng)用程序查詢目標(biāo)控制器上已經(jīng)安裝的多個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序,并預(yù)估各個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序在運(yùn)行時(shí)分別所需的內(nèi)存子占用率;
29、篩選模塊,用于控制測(cè)試應(yīng)用程序根據(jù)各個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序分別對(duì)應(yīng)的內(nèi)存子占用率,從各個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序中選出滿足內(nèi)存測(cè)試需求的至少一個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序;
30、內(nèi)存占用模擬模塊,用于基于測(cè)試應(yīng)用程序響應(yīng)于接收到的測(cè)試啟動(dòng)指令,控制目標(biāo)控制器運(yùn)行至少一個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序;
31、運(yùn)行參數(shù)采集模塊,用于基于測(cè)試應(yīng)用程序獲取從目標(biāo)控制器在運(yùn)行至少一個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序的內(nèi)存占用過(guò)程中采集的狀態(tài)運(yùn)行參數(shù);
32、內(nèi)存性能評(píng)估模塊,用于根據(jù)狀態(tài)運(yùn)行參數(shù),確定目標(biāo)控制器的內(nèi)存性能。
33、進(jìn)一步地,篩選模塊,用于:
34、當(dāng)內(nèi)存測(cè)試需求包括控制內(nèi)存占用率按照線性增長(zhǎng)的方式實(shí)現(xiàn)內(nèi)存變化時(shí),將各個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序按照各自對(duì)應(yīng)的內(nèi)存子占用率從小到大的順序進(jìn)行排序,得到線性增長(zhǎng)序列;
35、將線性增長(zhǎng)序列中前n個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序的內(nèi)存子占用率之和,確定為內(nèi)存總占用率,n為正整數(shù);內(nèi)存總占用率小于內(nèi)存極限占用率且大于內(nèi)存預(yù)設(shè)占用率;
36、將前n個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序作為滿足內(nèi)存測(cè)試需求的n個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序。
37、進(jìn)一步地,篩選模塊,用于:
38、當(dāng)內(nèi)存測(cè)試需求包括控制內(nèi)存占用率按照階梯式增長(zhǎng)的方式實(shí)現(xiàn)內(nèi)存變化時(shí),將各個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序按照各自對(duì)應(yīng)的內(nèi)存子占用率從小到大的順序進(jìn)行排序,得到階梯增長(zhǎng)序列;
39、從階梯增長(zhǎng)序列中篩選出每?jī)蓚€(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序的內(nèi)存子占用率的差值變化滿足階梯式增長(zhǎng)的m個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序,且m個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序的內(nèi)存子占用率之和小于內(nèi)存極限占用率且大于內(nèi)存預(yù)設(shè)占用率,m為正整數(shù);
40、將m個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序作為滿足內(nèi)存測(cè)試需求的m個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序。
41、進(jìn)一步地,篩選模塊,用于:
42、當(dāng)內(nèi)存測(cè)試需求包括控制內(nèi)存占用率按照正弦波增長(zhǎng)的方式實(shí)現(xiàn)內(nèi)存變化時(shí),從各個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序中篩選出內(nèi)存子占用率滿足正弦波增長(zhǎng)的p個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序,且p個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序的內(nèi)存子占用率之和小于內(nèi)存極限占用率且大于內(nèi)存預(yù)設(shè)占用率,p為正整數(shù);
43、將p個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序作為滿足內(nèi)存測(cè)試需求的至少一個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序。
44、進(jìn)一步地,內(nèi)存占用模擬模塊,用于:
45、當(dāng)目標(biāo)控制器滿足測(cè)試循環(huán)條件時(shí),復(fù)位目標(biāo)控制器并返回執(zhí)行控制目標(biāo)控制器運(yùn)行至少一個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序的步驟,直到目標(biāo)控制器滿足預(yù)設(shè)的測(cè)試終止條件時(shí)為止;循環(huán)條件包括執(zhí)行控制目標(biāo)控制器運(yùn)行至少一個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序步驟的次數(shù)小于預(yù)設(shè)次數(shù);終止條件包括執(zhí)行控制目標(biāo)控制器運(yùn)行至少一個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序步驟的次數(shù)大于或等于預(yù)設(shè)次數(shù)。
46、進(jìn)一步地,裝置還包括內(nèi)存釋放模塊,用于:
47、在控制目標(biāo)控制器運(yùn)行至少一個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序,控制目標(biāo)控制器釋放至少一個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序所占用的內(nèi)存空間。
48、進(jìn)一步地,運(yùn)行狀態(tài)參數(shù)包括以下多種狀態(tài)參數(shù)中的至少一種:
49、目標(biāo)控制器的中央處理器的實(shí)際負(fù)載、實(shí)際負(fù)載的變化特征、目標(biāo)控制器的內(nèi)存的占用特征、目標(biāo)控制器的系統(tǒng)的響應(yīng)時(shí)長(zhǎng)、目標(biāo)控制器的日志、目標(biāo)控制器的系統(tǒng)的崩潰狀態(tài)、目標(biāo)控制器的系統(tǒng)的崩潰次數(shù)、目標(biāo)控制器的內(nèi)存的泄漏狀態(tài)、目標(biāo)控制器的系統(tǒng)的狀態(tài)快照、目標(biāo)控制器的溫度、目標(biāo)控制器的應(yīng)用程序的運(yùn)行狀態(tài)、目標(biāo)控制器的無(wú)故障運(yùn)行時(shí)長(zhǎng)以及目標(biāo)控制器的資源利用率。
50、第三方面,本技術(shù)提供了一種電子設(shè)備,包括:
51、處理器;
52、用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;
53、其中,處理器被配置為執(zhí)行以實(shí)現(xiàn)如第一方面提供的一種內(nèi)存性能測(cè)試方法。
54、第四方面,本技術(shù)提供了一種非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)存儲(chǔ)介質(zhì)中的指令由電子設(shè)備的處理器執(zhí)行時(shí),使得電子設(shè)備能夠執(zhí)行實(shí)現(xiàn)如第一方面提供的一種內(nèi)存性能測(cè)試方法。
55、本技術(shù)實(shí)施例中提供的一個(gè)或多個(gè)技術(shù)方案,至少具有如下技術(shù)效果或優(yōu)點(diǎn):
56、本實(shí)施例在待測(cè)試的目標(biāo)控制器上安裝測(cè)試應(yīng)用程序;控制測(cè)試應(yīng)用程序查詢目標(biāo)控制器上已經(jīng)安裝的多個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序,并預(yù)估各個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序在運(yùn)行時(shí)分別所需的內(nèi)存子占用率;控制測(cè)試應(yīng)用程序根據(jù)各個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序分別對(duì)應(yīng)的內(nèi)存子占用率,從各個(gè)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序中選出滿足內(nèi)存測(cè)試需求的至少一個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序;接收測(cè)試啟動(dòng)指令并控制測(cè)試應(yīng)用程序響應(yīng)于測(cè)試啟動(dòng)指令,控制目標(biāo)控制器運(yùn)行至少一個(gè)目標(biāo)預(yù)設(shè)任務(wù)執(zhí)行應(yīng)用程序,以模擬內(nèi)存占用過(guò)程;獲取測(cè)試應(yīng)用程序從目標(biāo)控制器的內(nèi)存占用過(guò)程中采集的狀態(tài)運(yùn)行參數(shù);根據(jù)狀態(tài)運(yùn)行參數(shù)確定目標(biāo)控制器的內(nèi)存性能??梢?jiàn),本實(shí)施例通過(guò)模擬目標(biāo)控制器在實(shí)際使用過(guò)程中的內(nèi)存占用場(chǎng)景,可以提高內(nèi)存性能測(cè)試的效率和準(zhǔn)確性,通過(guò)模擬實(shí)際運(yùn)行場(chǎng)景下的內(nèi)存使用情況,能夠在單板測(cè)試階段就發(fā)現(xiàn)目標(biāo)控制器潛在的軟件和操作系統(tǒng)問(wèn)題,這大大減少了在整車測(cè)試階段或市場(chǎng)側(cè)用戶使用場(chǎng)景下才發(fā)現(xiàn)問(wèn)題的幾率,從而提高了測(cè)試效率和準(zhǔn)確性。在單板測(cè)試階段提前發(fā)現(xiàn)問(wèn)題,就可以降低后續(xù)在整車測(cè)試階段或市場(chǎng)階段的問(wèn)題排查和解決的代價(jià)。