本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及到一種屬性訪問(wèn)控制方法和裝置。
背景技術(shù):
屬性值的使用,為車載控制系統(tǒng)的跨進(jìn)程通信提供了極大的便利性。屬性值通常存儲(chǔ)于車載控制系統(tǒng)的rom(readonlymemory,只讀存儲(chǔ)器)中,車載控制系統(tǒng)開機(jī)后被調(diào)入ram(ramdomaccessmemory,隨機(jī)存取存儲(chǔ)器)中,中央處理器(centralprocessingunit,cpu)每次進(jìn)行屬性值訪問(wèn)時(shí),都需要對(duì)ram進(jìn)行輸入/輸出(i/o)訪問(wèn)操作,同時(shí)也存在調(diào)用函數(shù)的入棧、出棧操作流程。當(dāng)一個(gè)屬性值在系統(tǒng)運(yùn)行中,需要被頻繁訪問(wèn)時(shí),就會(huì)反復(fù)進(jìn)行ram訪問(wèn)的輸入/輸出和對(duì)調(diào)用函數(shù)的入棧、出棧操作,從而消耗大量的cpu資源和時(shí)間,進(jìn)而影響車載控制系統(tǒng)的性能。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的為提供一種屬性訪問(wèn)控制方法和裝置,旨在減少屬性訪問(wèn)時(shí)消耗的cpu資源和時(shí)間,提高車載控制系統(tǒng)的性能。
為達(dá)以上目的,本發(fā)明實(shí)施例提出一種屬性訪問(wèn)控制方法,所述方法包括以下步驟:
篩選出訪問(wèn)頻繁的目標(biāo)只讀屬性值;
將所述目標(biāo)只讀屬性值保存到全局變量中;
將對(duì)所述目標(biāo)只讀屬性值的訪問(wèn)指向所述全局變量。
可選地,所述篩選出訪問(wèn)頻繁的目標(biāo)只讀屬性值的步驟包括:
獲取預(yù)設(shè)時(shí)間內(nèi)只讀屬性值的訪問(wèn)記錄;
統(tǒng)計(jì)出所述訪問(wèn)記錄中各只讀屬性值的訪問(wèn)頻率;
選取訪問(wèn)頻率大于或等于第一閾值的只讀屬性值作為訪問(wèn)頻繁的目標(biāo)只讀屬性值。
可選地,所述篩選出訪問(wèn)頻繁的目標(biāo)只讀屬性值的步驟包括:
獲取預(yù)設(shè)時(shí)間內(nèi)只讀屬性值的訪問(wèn)記錄;
統(tǒng)計(jì)出所述訪問(wèn)記錄中各只讀屬性值的訪問(wèn)頻率;
判斷訪問(wèn)頻率大于或等于第一閾值的只讀屬性值的數(shù)量是否超過(guò)預(yù)設(shè)數(shù)量;
當(dāng)沒(méi)有超過(guò)預(yù)設(shè)數(shù)量時(shí),選取訪問(wèn)頻率大于或等于第一閾值的只讀屬性值作為訪問(wèn)頻繁的目標(biāo)只讀屬性值;
當(dāng)超過(guò)預(yù)設(shè)數(shù)量時(shí),選取訪問(wèn)頻率大于或等于第二閾值的只讀屬性值作為訪問(wèn)頻繁的目標(biāo)只讀屬性值;所述第二閾值大于所述第一閾值。
可選地,所述篩選出訪問(wèn)頻繁的目標(biāo)只讀屬性值的步驟包括:
獲取預(yù)設(shè)時(shí)間內(nèi)只讀屬性值的訪問(wèn)記錄;
統(tǒng)計(jì)出所述訪問(wèn)記錄中各只讀屬性值的訪問(wèn)頻率;
判斷訪問(wèn)頻率大于或等于第一閾值的只讀屬性值的數(shù)量是否超過(guò)預(yù)設(shè)數(shù)量;
當(dāng)沒(méi)有超過(guò)預(yù)設(shè)數(shù)量時(shí),選取訪問(wèn)頻率大于或等于第一閾值的只讀屬性值作為訪問(wèn)頻繁的目標(biāo)只讀屬性值;
當(dāng)超過(guò)預(yù)設(shè)數(shù)量時(shí),從訪問(wèn)頻率大于或等于第一閾值的只讀屬性值中,按照訪問(wèn)頻率從大到小的順序選取預(yù)設(shè)數(shù)量個(gè)只讀屬性值作為訪問(wèn)頻繁的目標(biāo)只讀屬性值。
可選地,所述獲取預(yù)設(shè)時(shí)間內(nèi)只讀屬性值的訪問(wèn)記錄的步驟包括:
在訪問(wèn)屬性的通用接口處添加用于打印只讀屬性值的名稱的調(diào)試日志;
從所述調(diào)試日志中獲取預(yù)設(shè)時(shí)間內(nèi)只讀屬性值的訪問(wèn)記錄。
可選地,所述預(yù)設(shè)時(shí)間的取值范圍為10-20分鐘。
可選地,所述第一閾值的取值范圍為15-25次/分鐘。
可選地,所述預(yù)設(shè)數(shù)量的取值范圍為8-15。
可選地,所述將對(duì)所述目標(biāo)只讀屬性值的訪問(wèn)指向所述全局變量的步驟包括:
將所述目標(biāo)只讀屬性值對(duì)應(yīng)的調(diào)用函數(shù)替換為所述目標(biāo)只讀屬性值在所述全局變量中的變量名稱,以使后續(xù)需要訪問(wèn)所述目標(biāo)只讀屬性值時(shí)直接訪問(wèn)所述全局變量。
可選地,所述方法應(yīng)用于基于安卓系統(tǒng)的車載控制系統(tǒng)。
本發(fā)明實(shí)施例同時(shí)提出一種屬性訪問(wèn)控制裝置,所述裝置包括:
篩選模塊,用于篩選出訪問(wèn)頻繁的目標(biāo)只讀屬性值;
保存模塊,用于將所述目標(biāo)只讀屬性值保存到全局變量中;
指向模塊,用于將對(duì)所述目標(biāo)只讀屬性值的訪問(wèn)指向所述全局變量。
可選地,所述篩選模塊包括:
獲取單元,用于獲取預(yù)設(shè)時(shí)間內(nèi)只讀屬性值的訪問(wèn)記錄;
統(tǒng)計(jì)單元,用于統(tǒng)計(jì)出所述訪問(wèn)記錄中各只讀屬性值的訪問(wèn)頻率;
第一選取單元,用于選取訪問(wèn)頻率大于或等于第一閾值的只讀屬性值作為訪問(wèn)頻繁的目標(biāo)只讀屬性值。
可選地,所述篩選模塊包括:
獲取單元,用于獲取預(yù)設(shè)時(shí)間內(nèi)只讀屬性值的訪問(wèn)記錄;
統(tǒng)計(jì)單元,用于統(tǒng)計(jì)出所述訪問(wèn)記錄中各只讀屬性值的訪問(wèn)頻率;
判斷單元,用于判斷訪問(wèn)頻率大于或等于第一閾值的只讀屬性值的數(shù)量是否超過(guò)預(yù)設(shè)數(shù)量;
第一選取單元,用于當(dāng)沒(méi)有超過(guò)預(yù)設(shè)數(shù)量時(shí),選取訪問(wèn)頻率大于或等于第一閾值的只讀屬性值作為訪問(wèn)頻繁的目標(biāo)只讀屬性值;
第二選取單元,用于當(dāng)超過(guò)預(yù)設(shè)數(shù)量時(shí),選取訪問(wèn)頻率大于或等于第二閾值的只讀屬性值作為訪問(wèn)頻繁的目標(biāo)只讀屬性值;
其中,所述第二閾值大于所述第一閾值。
可選地,所述篩選模塊包括:
獲取單元,用于獲取預(yù)設(shè)時(shí)間內(nèi)只讀屬性值的訪問(wèn)記錄;
統(tǒng)計(jì)單元,用于統(tǒng)計(jì)出所述訪問(wèn)記錄中各只讀屬性值的訪問(wèn)頻率;
判斷單元,用于判斷訪問(wèn)頻率大于或等于第一閾值的只讀屬性值的數(shù)量是否超過(guò)預(yù)設(shè)數(shù)量;
第一選取單元,用于當(dāng)沒(méi)有超過(guò)預(yù)設(shè)數(shù)量時(shí),選取訪問(wèn)頻率大于或等于第一閾值的只讀屬性值作為訪問(wèn)頻繁的目標(biāo)只讀屬性值;
第三選取子單元,用于當(dāng)超過(guò)預(yù)設(shè)數(shù)量時(shí),從訪問(wèn)頻率大于或等于第一閾值的只讀屬性值中,按照訪問(wèn)頻率從大到小的順序選取預(yù)設(shè)數(shù)量個(gè)只讀屬性值作為訪問(wèn)頻繁的目標(biāo)只讀屬性值。
可選地,所述獲取單元包括:
添加子單元,用于在訪問(wèn)屬性的通用接口處添加用于打印只讀屬性值的名稱的調(diào)試日志;
獲取子單元,用于從所述調(diào)試日志中獲取預(yù)設(shè)時(shí)間內(nèi)只讀屬性值的訪問(wèn)記錄。
可選地,所述指向模塊用于:將所述目標(biāo)只讀屬性值對(duì)應(yīng)的調(diào)用函數(shù)替換為所述目標(biāo)只讀屬性值在所述全局變量中的變量名稱,以使后續(xù)需要訪問(wèn)所述目標(biāo)只讀屬性值時(shí)直接訪問(wèn)所述全局變量。
本發(fā)明實(shí)施例還提出一種車載控制系統(tǒng),所述車載控制系統(tǒng)包括存儲(chǔ)器、處理器和至少一個(gè)被存儲(chǔ)在所述存儲(chǔ)器中并被配置為由所述處理器執(zhí)行的應(yīng)用程序,所述應(yīng)用程序被配置為用于執(zhí)行前述屬性訪問(wèn)控制方法。
本發(fā)明實(shí)施例所提供的一種屬性訪問(wèn)控制方法,通過(guò)將訪問(wèn)頻繁的目標(biāo)只讀屬性值保存到全局變量中,并將目標(biāo)只讀屬性值的訪問(wèn)指向全局變量,從而使得后續(xù)需要訪問(wèn)目標(biāo)只讀屬性值時(shí),只需直接訪問(wèn)ram中的全局變量即可,省略了調(diào)用函數(shù)的入棧、出棧流程,節(jié)省了對(duì)調(diào)用函數(shù)的入棧、出棧操作時(shí)間的消耗,大大提高了屬性訪問(wèn)速度,減少了cpu資源和時(shí)間的消耗,優(yōu)化了車載終端性能。
附圖說(shuō)明
圖1是本發(fā)明的屬性訪問(wèn)控制方法一實(shí)施例的流程圖;
圖2是圖1中屬性訪問(wèn)控制方法的步驟s11的具體流程圖;
圖3是圖1中屬性訪問(wèn)控制方法的步驟s11的另一具體流程圖;
圖4是圖1中屬性訪問(wèn)控制方法的步驟s11的另一具體流程圖;
圖5是本發(fā)明的屬性訪問(wèn)控制裝置一實(shí)施例的模塊示意圖;
圖6是圖5中屬性訪問(wèn)控制裝置的篩選模塊的模塊示意圖;
圖7是圖6中篩選模塊的獲取單元的模塊示意圖;
圖8是圖5中屬性訪問(wèn)控制裝置的篩選模塊的另一模塊示意圖;
圖9是圖5中屬性訪問(wèn)控制裝置的篩選模塊的另一模塊示意圖。
本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說(shuō)明。
具體實(shí)施方式
應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號(hào)表示相同或類似的元件或具有相同或類似功能的元件。下面通過(guò)參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對(duì)本發(fā)明的限制。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式“一”、“一個(gè)”、“所述”和“該”也可包括復(fù)數(shù)形式。應(yīng)該進(jìn)一步理解的是,本發(fā)明的說(shuō)明書中使用的措辭“包括”是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加一個(gè)或多個(gè)其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。應(yīng)該理解,當(dāng)我們稱元件被“連接”或“耦接”到另一元件時(shí),它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“耦接”可以包括無(wú)線連接或無(wú)線耦接。這里使用的措辭“和/或”包括一個(gè)或更多個(gè)相關(guān)聯(lián)的列出項(xiàng)的全部或任一單元和全部組合。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(yǔ)(包括技術(shù)術(shù)語(yǔ)和科學(xué)術(shù)語(yǔ)),具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng)該理解的是,諸如通用字典中定義的那些術(shù)語(yǔ),應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中的意義一致的意義,并且除非像這里一樣被特定定義,否則不會(huì)用理想化或過(guò)于正式的含義來(lái)解釋。
參照?qǐng)D1,提出本發(fā)明的屬性訪問(wèn)控制方法一實(shí)施例,所述方法包括以下步驟:
s10、篩選出訪問(wèn)頻繁的目標(biāo)只讀屬性值。
s20、將目標(biāo)只讀屬性值保存到全局變量中。
s30、將對(duì)目標(biāo)只讀屬性值的訪問(wèn)指向全局變量。
本發(fā)明實(shí)施例的屬性訪問(wèn)控制方法,主要應(yīng)用于基于安卓(android)系統(tǒng)的車載控制系統(tǒng),當(dāng)然也可以應(yīng)用于基于其它操作系統(tǒng)的車載控制系統(tǒng)。該方法還可用于移動(dòng)終端,如手機(jī)、平板等便攜式終端設(shè)備,當(dāng)然也可以是其它的終端設(shè)備。步驟s10中,車載控制系統(tǒng)從眾多屬性值中篩選出cpu訪問(wèn)頻繁的目標(biāo)只讀屬性值屬性值。只讀屬性值即ro.開頭的屬性值。在具體實(shí)施時(shí),車載控制系統(tǒng)可以通過(guò)以下方式篩選目標(biāo)只讀屬性值。
可選地,如圖2所示,車載控制系統(tǒng)篩選出訪問(wèn)頻繁的目標(biāo)只讀屬性值的具體流程如下:
s111、獲取預(yù)設(shè)時(shí)間內(nèi)只讀屬性值的訪問(wèn)記錄。
預(yù)設(shè)時(shí)間的長(zhǎng)短可以根據(jù)實(shí)際需要設(shè)定,優(yōu)選設(shè)定在10-20分鐘以內(nèi),如車載控制系統(tǒng)獲取10分鐘內(nèi)只讀屬性值的訪問(wèn)記錄。
具體的時(shí)間段也可以根據(jù)實(shí)際需要確定,如從車載控制系統(tǒng)開機(jī)后的10分鐘內(nèi),從某個(gè)應(yīng)用啟動(dòng)后的10分鐘內(nèi),cpu的負(fù)載(資源消耗)超過(guò)預(yù)設(shè)值后的10分鐘內(nèi),等等。
在具體實(shí)施時(shí),車載控制系統(tǒng)可以通過(guò)以下方式獲取只讀屬性值的訪問(wèn)記錄:首先在訪問(wèn)屬性的通用(common)接口處添加用于輸出只讀屬性值的名稱調(diào)試日志(debuglog),利用該調(diào)試日志輸出被訪問(wèn)的只讀屬性值的名稱;然后從調(diào)試日志中獲取預(yù)設(shè)時(shí)間內(nèi)只讀屬性值的訪問(wèn)記錄。
除此之外,也可以采用現(xiàn)有技術(shù)中的其它方式獲取只讀屬性值的訪問(wèn)記錄,本發(fā)明對(duì)此不再一一列舉贅述。
s112、統(tǒng)計(jì)出訪問(wèn)記錄中各只讀屬性值的訪問(wèn)頻率。
本步驟s112中,針對(duì)訪問(wèn)記錄中的每一個(gè)只讀屬性值,車載控制系統(tǒng)統(tǒng)計(jì)出該只讀屬性值被訪問(wèn)的次數(shù),利用訪問(wèn)次數(shù)除以預(yù)設(shè)時(shí)間,即得到該只讀屬性值的訪問(wèn)頻率。依次遍歷訪問(wèn)記錄中的所有只讀屬性值后,得到訪問(wèn)記錄中所有只讀屬性值的訪問(wèn)頻率。
s113、選取訪問(wèn)頻率大于或等于第一閾值的只讀屬性值作為訪問(wèn)頻繁的目標(biāo)只讀屬性值。
本步驟s113中,針對(duì)每一個(gè)只讀屬性值,比較該只讀屬性值的訪問(wèn)頻率與第一閾值的大小,判斷該只讀屬性值的訪問(wèn)頻率是否大于或等于第一閾值。當(dāng)該只讀屬性值的訪問(wèn)頻率大于或等于第一閾值時(shí),則判定該只讀屬性值訪問(wèn)頻繁,選取該只讀屬性值作為目標(biāo)只讀屬性值。依次遍歷訪問(wèn)記錄中的所有只讀屬性值后,得到所有的目標(biāo)只讀屬性值。
第一閾值的大小可以根據(jù)實(shí)際需要設(shè)定,優(yōu)選設(shè)定在15-25次/分鐘以內(nèi),如設(shè)定為20次/分鐘。
可選地,如圖3所示,車載控制系統(tǒng)篩選出訪問(wèn)頻繁的目標(biāo)只讀屬性值的具體流程如下:
s121、獲取預(yù)設(shè)時(shí)間內(nèi)只讀屬性值的訪問(wèn)記錄。
s122、統(tǒng)計(jì)出訪問(wèn)記錄中各只讀屬性值的訪問(wèn)頻率。
本方案中步驟s121和s122分別與前述第一方案中的步驟s111和s112相同,在此不再贅述。
s123、判斷訪問(wèn)頻率大于或等于第一閾值的只讀屬性值的數(shù)量是否超過(guò)預(yù)設(shè)數(shù)量。當(dāng)沒(méi)有超過(guò)(小于或等于)預(yù)設(shè)數(shù)量時(shí),進(jìn)入步驟s124;當(dāng)超過(guò)(大于)預(yù)設(shè)數(shù)量時(shí),進(jìn)入步驟s125。
本步驟s123中,針對(duì)每一個(gè)只讀屬性值,比較該只讀屬性值的訪問(wèn)頻率與第一閾值的大小,判斷該只讀屬性值的訪問(wèn)頻率是否大于或等于第一閾值。依次遍歷訪問(wèn)記錄中的所有只讀屬性值后,統(tǒng)計(jì)出訪問(wèn)頻率大于或等于第一閾值的只讀屬性值的數(shù)量。
鑒于改變?cè)L問(wèn)路徑的目標(biāo)只讀屬性值越多,則對(duì)應(yīng)的維護(hù)工作量也越大,為了減小維護(hù)工作量,平衡資源消耗量,本方案對(duì)目標(biāo)只讀屬性值的數(shù)量進(jìn)行了限制,將其限制在預(yù)設(shè)數(shù)量以內(nèi)。當(dāng)訪問(wèn)頻率大于或等于第一閾值的只讀屬性值的數(shù)量超過(guò)預(yù)設(shè)數(shù)量時(shí),則進(jìn)入步驟s125,從中進(jìn)一步篩選出訪問(wèn)頻率更高的只讀屬性值。
預(yù)設(shè)數(shù)量可以根據(jù)實(shí)際需要設(shè)定,優(yōu)選設(shè)置在8-15個(gè)以內(nèi),如設(shè)置預(yù)設(shè)數(shù)量為10個(gè)。
s124、選取訪問(wèn)頻率大于或等于第一閾值的只讀屬性值作為訪問(wèn)頻繁的目標(biāo)只讀屬性值。
當(dāng)訪問(wèn)頻率大于或等于第一閾值的只讀屬性值的數(shù)量沒(méi)有超過(guò)預(yù)設(shè)數(shù)量時(shí),車載控制系統(tǒng)則選取訪問(wèn)頻率大于或等于第一閾值的只讀屬性值作為訪問(wèn)頻繁的目標(biāo)只讀屬性值。
s125、選取訪問(wèn)頻率大于或等于第二閾值的只讀屬性值作為訪問(wèn)頻繁的目標(biāo)只讀屬性值。
當(dāng)訪問(wèn)頻率大于或等于第一閾值的只讀屬性值的數(shù)量超過(guò)了預(yù)設(shè)數(shù)量時(shí),車載控制系統(tǒng)則進(jìn)一步從訪問(wèn)頻率大于或等于第一閾值的只讀屬性值中,選取訪問(wèn)頻率大于或等于第二閾值的只讀屬性值。第二閾值的大小可以根據(jù)實(shí)際需要設(shè)定,只要大于第一閾值即可。
可選地,如圖4所示,車載控制系統(tǒng)篩選出訪問(wèn)頻繁的目標(biāo)只讀屬性值的具體流程如下:
s131、獲取預(yù)設(shè)時(shí)間內(nèi)只讀屬性值的訪問(wèn)記錄。
s132、統(tǒng)計(jì)出訪問(wèn)記錄中各只讀屬性值的訪問(wèn)頻率。
本方案中步驟s131和s132分別與前述第一方案中的步驟s111和s112相同,在此不再贅述。
s133、判斷訪問(wèn)頻率大于或等于第一閾值的只讀屬性值的數(shù)量是否超過(guò)預(yù)設(shè)數(shù)量。當(dāng)沒(méi)有超過(guò)預(yù)設(shè)數(shù)量時(shí),進(jìn)入步驟s134;當(dāng)超過(guò)預(yù)設(shè)數(shù)量時(shí),進(jìn)入步驟s135。
s134、選取訪問(wèn)頻率大于或等于第一閾值的只讀屬性值作為訪問(wèn)頻繁的目標(biāo)只讀屬性值。
本方案中步驟s133和s134分別與前述第二方案中的步驟s123和s124相同,在此不再贅述。
s135、從訪問(wèn)頻率大于或等于第一閾值的只讀屬性值中,按照訪問(wèn)頻率從大到小的順序選取預(yù)設(shè)數(shù)量個(gè)只讀屬性值作為訪問(wèn)頻繁的目標(biāo)只讀屬性值。
當(dāng)訪問(wèn)頻率大于或等于第一閾值的只讀屬性值的數(shù)量超過(guò)了預(yù)設(shè)數(shù)量時(shí),車載控制系統(tǒng)則進(jìn)一步從訪問(wèn)頻率大于或等于第一閾值的只讀屬性值中,選取訪問(wèn)頻率較大的前預(yù)設(shè)數(shù)量個(gè)只讀屬性值,作為訪問(wèn)頻繁的目標(biāo)只讀屬性值。
例如,將訪問(wèn)頻率大于或等于第一閾值的只讀屬性值按照訪問(wèn)頻率從大到小的順序進(jìn)行排序,然后依序選取只讀屬性值,直到選出預(yù)設(shè)數(shù)量個(gè)只讀屬性值為止。預(yù)設(shè)數(shù)量個(gè)可以是預(yù)設(shè)20個(gè)、50個(gè)、100個(gè)等。
步驟s20中,當(dāng)篩選出目標(biāo)只讀屬性值后,車載控制系統(tǒng)則復(fù)制該目標(biāo)只讀屬性值,并將復(fù)制的目標(biāo)只讀屬性值保存到全局變量中,且在全局變量中,每一個(gè)目標(biāo)只讀屬性值具有一個(gè)變量名稱。全局變量一般保存在ram中,讀取速度快。
步驟s30中,車載控制系統(tǒng)將目標(biāo)只讀屬性值對(duì)應(yīng)的調(diào)用函數(shù)替換為目標(biāo)只讀屬性值在全局變量中的變量名稱,從而實(shí)現(xiàn)了將對(duì)目標(biāo)只讀屬性值的訪問(wèn)指向全局變量。后續(xù)需要訪問(wèn)目標(biāo)只讀屬性值時(shí),則直接訪問(wèn)全局變量,通過(guò)該目標(biāo)只讀屬性值對(duì)應(yīng)的變量名稱在全局變量中找到該目標(biāo)只讀屬性值,讀取對(duì)應(yīng)的屬性值。
除此之外,指向模塊也可以采用現(xiàn)有技術(shù)中的其它方式將對(duì)目標(biāo)只讀屬性值的訪問(wèn)指向全局變量,本發(fā)明在此不再一一列舉贅述。
本發(fā)明實(shí)施例的屬性訪問(wèn)控制方法,通過(guò)將訪問(wèn)頻繁的目標(biāo)只讀屬性值保存到全局變量中,并將目標(biāo)只讀屬性值的訪問(wèn)指向全局變量,從而使得后續(xù)需要訪問(wèn)目標(biāo)只讀屬性值時(shí),只需直接訪問(wèn)ram中的全局變量即可,省略了調(diào)用函數(shù)的入棧、出棧流程,節(jié)省了對(duì)調(diào)用函數(shù)的入棧、出棧時(shí)間的消耗,大大提高了屬性訪問(wèn)速度,減少了cpu資源和時(shí)間的消耗,優(yōu)化了車載控制系統(tǒng)的性能。
參照?qǐng)D5,提出本發(fā)明的屬性訪問(wèn)控制裝置,所述裝置包括篩選模塊10、保存模塊20和指向模塊30,其中:篩選模塊10,用于篩選出訪問(wèn)頻繁的目標(biāo)只讀屬性值;保存模塊20,用于將目標(biāo)只讀屬性值保存到全局變量中;指向模塊30,用于將對(duì)目標(biāo)只讀屬性值的訪問(wèn)指向全局變量。
篩選模塊10從眾多屬性值中篩選出cpu訪問(wèn)頻繁的目標(biāo)只讀屬性值屬性值。只讀屬性值即ro.開頭的屬性值。
如圖6所示,在某些實(shí)施例中,篩選模塊10包括獲取單元11、統(tǒng)計(jì)單元12和第一選取單元13,其中:
獲取單元11:用于獲取預(yù)設(shè)時(shí)間內(nèi)只讀屬性值的訪問(wèn)記錄。
預(yù)設(shè)時(shí)間的長(zhǎng)短可以根據(jù)實(shí)際需要設(shè)定,優(yōu)選設(shè)定在10-20分鐘以內(nèi),如車載控制系統(tǒng)獲取10分鐘內(nèi)只讀屬性值的訪問(wèn)記錄。
具體的時(shí)間段也可以根據(jù)實(shí)際需要確定,如從車載控制系統(tǒng)開機(jī)后的10分鐘內(nèi),從某個(gè)應(yīng)用啟動(dòng)后的10分鐘內(nèi),cpu的負(fù)載超過(guò)預(yù)設(shè)值后的10分鐘內(nèi),等等。
可選地,如圖7所示,獲取單元11包括添加子單元111和獲取子單元112,其中:添加子單元111用于在訪問(wèn)屬性的通用接口處添加用于打印只讀屬性值的名稱調(diào)試日志,從而可以利用該調(diào)試日志打印出被訪問(wèn)的只讀屬性值的名稱;獲取子單元112用于從調(diào)試日志中獲取預(yù)設(shè)時(shí)間內(nèi)只讀屬性值的訪問(wèn)記錄。
除此之外,也可以采用現(xiàn)有技術(shù)中的其它方式獲取只讀屬性值的訪問(wèn)記錄,本發(fā)明對(duì)此不再一一列舉贅述。
統(tǒng)計(jì)單元12:用于統(tǒng)計(jì)出訪問(wèn)記錄中各只讀屬性值的訪問(wèn)頻率。
針對(duì)訪問(wèn)記錄中的每一個(gè)只讀屬性值,統(tǒng)計(jì)單元12統(tǒng)計(jì)出該只讀屬性值被訪問(wèn)的次數(shù),利用訪問(wèn)次數(shù)除以預(yù)設(shè)時(shí)間,即得到該只讀屬性值的訪問(wèn)頻率。依次遍歷訪問(wèn)記錄中的所有只讀屬性值后,得到訪問(wèn)記錄中所有只讀屬性值的訪問(wèn)頻率。
第一選取單元13:用于選取訪問(wèn)頻率大于或等于第一閾值的只讀屬性值作為訪問(wèn)頻繁的目標(biāo)只讀屬性值。
第一選取單元13針對(duì)每一個(gè)只讀屬性值,比較該只讀屬性值的訪問(wèn)頻率與第一閾值的大小,判斷該只讀屬性值的訪問(wèn)頻率是否大于或等于第一閾值。當(dāng)該只讀屬性值的訪問(wèn)頻率大于或等于第一閾值時(shí),則判定該只讀屬性值訪問(wèn)頻繁,選取該只讀屬性值作為目標(biāo)只讀屬性值。依次遍歷訪問(wèn)記錄中的所有只讀屬性值后,得到所有的目標(biāo)只讀屬性值。
第一閾值的大小可以根據(jù)實(shí)際需要設(shè)定,優(yōu)選設(shè)定在15-25次/分鐘以內(nèi),如設(shè)定為20次/分鐘。
如圖8所示,在某些實(shí)施例中,篩選模塊10包括獲取單元11、統(tǒng)計(jì)單元12、判斷單元14、第一選取單元13和第二選取單元15,其中:
獲取單元11:用于獲取預(yù)設(shè)時(shí)間內(nèi)只讀屬性值的訪問(wèn)記錄。
統(tǒng)計(jì)單元12:用于統(tǒng)計(jì)出訪問(wèn)記錄中各只讀屬性值的訪問(wèn)頻率。
判斷單元14:用于判斷訪問(wèn)頻率大于或等于第一閾值的只讀屬性值的數(shù)量是否超過(guò)預(yù)設(shè)數(shù)量,并將判斷結(jié)果發(fā)送給第一選取單元13和第二選取單元15。
針對(duì)每一個(gè)只讀屬性值,判斷單元14比較該只讀屬性值的訪問(wèn)頻率與第一閾值的大小,判斷該只讀屬性值的訪問(wèn)頻率是否大于或等于第一閾值。依次遍歷訪問(wèn)記錄中的所有只讀屬性值后,統(tǒng)計(jì)出訪問(wèn)頻率大于或等于第一閾值的只讀屬性值的數(shù)量。
鑒于改變?cè)L問(wèn)路徑的目標(biāo)只讀屬性值越多,則對(duì)應(yīng)的維護(hù)工作量也越大,為了減小維護(hù)工作量,平衡資源消耗量,本方案對(duì)目標(biāo)只讀屬性值的數(shù)量進(jìn)行了限制,將其限制在預(yù)設(shè)數(shù)量以內(nèi)。預(yù)設(shè)數(shù)量可以根據(jù)實(shí)際需要設(shè)定,優(yōu)選設(shè)置在8-15個(gè)以內(nèi),如設(shè)置預(yù)設(shè)數(shù)量為10個(gè)。
當(dāng)訪問(wèn)頻率大于或等于第一閾值的只讀屬性值的數(shù)量超過(guò)預(yù)設(shè)數(shù)量時(shí),則通過(guò)第二選取單元15從中進(jìn)一步篩選出訪問(wèn)頻率更高的只讀屬性值。
第一選取單元13:用于當(dāng)沒(méi)有超過(guò)預(yù)設(shè)數(shù)量時(shí),選取訪問(wèn)頻率大于或等于第一閾值的只讀屬性值作為訪問(wèn)頻繁的目標(biāo)只讀屬性值。
當(dāng)訪問(wèn)頻率大于或等于第一閾值的只讀屬性值的數(shù)量沒(méi)有超過(guò)預(yù)設(shè)數(shù)量時(shí),第一選取單元13則選取訪問(wèn)頻率大于或等于第一閾值的只讀屬性值作為訪問(wèn)頻繁的目標(biāo)只讀屬性值。
第二選取單元15:用于當(dāng)超過(guò)預(yù)設(shè)數(shù)量時(shí),選取訪問(wèn)頻率大于或等于第二閾值的只讀屬性值作為訪問(wèn)頻繁的目標(biāo)只讀屬性值。
當(dāng)訪問(wèn)頻率大于或等于第一閾值的只讀屬性值的數(shù)量超過(guò)了預(yù)設(shè)數(shù)量時(shí),第二選取單元15則進(jìn)一步從訪問(wèn)頻率大于或等于第一閾值的只讀屬性值中,選取訪問(wèn)頻率大于或等于第二閾值的只讀屬性值。第二閾值的大小可以根據(jù)實(shí)際需要設(shè)定,只要大于第一閾值即可。
如圖9所示,在某些實(shí)施例中,篩選模塊10包括獲取單元11、統(tǒng)計(jì)單元12、判斷單元14、第一選取單元13和第三選取單元16,其中:
獲取單元11:用于獲取預(yù)設(shè)時(shí)間內(nèi)只讀屬性值的訪問(wèn)記錄。
統(tǒng)計(jì)單元12:用于統(tǒng)計(jì)出訪問(wèn)記錄中各只讀屬性值的訪問(wèn)頻率。
判斷單元14:用于判斷訪問(wèn)頻率大于或等于第一閾值的只讀屬性值的數(shù)量是否超過(guò)預(yù)設(shè)數(shù)量,并將判斷結(jié)果發(fā)送給第一選取單元13和第三選取單元16。
第一選取單元13:用于當(dāng)沒(méi)有超過(guò)預(yù)設(shè)數(shù)量時(shí),選取訪問(wèn)頻率大于或等于第一閾值的只讀屬性值作為訪問(wèn)頻繁的目標(biāo)只讀屬性值。
第三選取單元16:用于當(dāng)超過(guò)預(yù)設(shè)數(shù)量時(shí),從訪問(wèn)頻率大于或等于第一閾值的只讀屬性值中,按照訪問(wèn)頻率從大到小的順序選取預(yù)設(shè)數(shù)量個(gè)只讀屬性值作為訪問(wèn)頻繁的目標(biāo)只讀屬性值。
當(dāng)訪問(wèn)頻率大于或等于第一閾值的只讀屬性值的數(shù)量超過(guò)了預(yù)設(shè)數(shù)量時(shí),第三選取單元16則進(jìn)一步從訪問(wèn)頻率大于或等于第一閾值的只讀屬性值中,選取訪問(wèn)頻率較大的前預(yù)設(shè)數(shù)量個(gè)只讀屬性值,作為訪問(wèn)頻繁的目標(biāo)只讀屬性值。
例如,第三選取單元16將訪問(wèn)頻率大于或等于第一閾值的只讀屬性值按照訪問(wèn)頻率從大到小的順序進(jìn)行排序,然后依序選取只讀屬性值,直到選出預(yù)設(shè)數(shù)量個(gè)只讀屬性值為止。預(yù)設(shè)數(shù)量個(gè)可以是預(yù)設(shè)20個(gè)、50個(gè)、100個(gè)等。
當(dāng)篩選出目標(biāo)只讀屬性值后,保存模塊20則復(fù)制該目標(biāo)只讀屬性值,并將復(fù)制的目標(biāo)只讀屬性值保存到全局變量中,且在全局變量中,每一個(gè)目標(biāo)只讀屬性值具有一個(gè)變量名稱。全局變量一般保存在ram中,讀取速度快。
指向模塊30將目標(biāo)只讀屬性值對(duì)應(yīng)的調(diào)用函數(shù)替換為目標(biāo)只讀屬性值在全局變量中的變量名稱,從而實(shí)現(xiàn)了將對(duì)目標(biāo)只讀屬性值的訪問(wèn)指向全局變量。后續(xù)需要訪問(wèn)目標(biāo)只讀屬性值時(shí),則直接訪問(wèn)全局變量,通過(guò)該目標(biāo)只讀屬性值對(duì)應(yīng)的變量名稱在全局變量中找到該目標(biāo)只讀屬性值,讀取對(duì)應(yīng)的屬性值。
除此之外,指向模塊30也可以采用現(xiàn)有技術(shù)中的其它方式將對(duì)目標(biāo)只讀屬性值的訪問(wèn)指向全局變量,本發(fā)明在此不再一一列舉贅述。
本發(fā)明實(shí)施例的屬性訪問(wèn)控制裝置,主要應(yīng)用于基于安卓系統(tǒng)的車載控制系統(tǒng),當(dāng)然也可以應(yīng)用于基于其它操作系統(tǒng)的車載控制系統(tǒng)。所述車載控制系統(tǒng)如手機(jī)、平板等便攜式終端設(shè)備,當(dāng)然也可以是其它的終端設(shè)備。
本發(fā)明實(shí)施例的屬性訪問(wèn)控制裝置,通過(guò)將訪問(wèn)頻繁的目標(biāo)只讀屬性值保存到全局變量中,并將目標(biāo)只讀屬性值的訪問(wèn)指向全局變量,從而使得后續(xù)需要訪問(wèn)目標(biāo)只讀屬性值時(shí),只需直接訪問(wèn)ram中的全局變量即可,省略了調(diào)用函數(shù)的入棧、出棧流程,節(jié)省了對(duì)調(diào)用函數(shù)的入棧、出棧時(shí)間的消耗,,大大提高了屬性訪問(wèn)速度,減少了cpu資源和時(shí)間的消耗,優(yōu)化了車載控制系統(tǒng)的性能。
需要說(shuō)明的是:上述實(shí)施例提供的屬性訪問(wèn)控制裝置與屬性訪問(wèn)控制方法實(shí)施例屬于同一構(gòu)思,其具體實(shí)現(xiàn)過(guò)程詳見(jiàn)方法實(shí)施例,且方法實(shí)施例中的技術(shù)特征在裝置實(shí)施例中均對(duì)應(yīng)適用,這里不再贅述。
本發(fā)明同時(shí)提出一種車載控制系統(tǒng),所述車載控制系統(tǒng)包括存儲(chǔ)器、處理器和至少一個(gè)被存儲(chǔ)在存儲(chǔ)器中并被配置為由處理器執(zhí)行的應(yīng)用程序,所述應(yīng)用程序被配置為用于執(zhí)行屬性訪問(wèn)控制方法。所述屬性訪問(wèn)控制方法包括以下步驟:篩選出訪問(wèn)頻繁的目標(biāo)只讀屬性值;將目標(biāo)只讀屬性值保存到全局變量中;將對(duì)目標(biāo)只讀屬性值的訪問(wèn)指向全局變量。本實(shí)施例中所描述的屬性訪問(wèn)控制方法為本發(fā)明中上述實(shí)施例所涉及的屬性訪問(wèn)控制方法,在此不再贅述。
本領(lǐng)域技術(shù)人員可以理解,本發(fā)明包括涉及用于執(zhí)行本申請(qǐng)中所述操作中的一項(xiàng)或多項(xiàng)的設(shè)備。這些設(shè)備可以為所需的目的而專門設(shè)計(jì)和制造,或者也可以包括通用計(jì)算機(jī)中的已知設(shè)備。這些設(shè)備具有存儲(chǔ)在其內(nèi)的計(jì)算機(jī)程序,這些計(jì)算機(jī)程序選擇性地激活或重構(gòu)。這樣的計(jì)算機(jī)程序可以被存儲(chǔ)在設(shè)備(例如,計(jì)算機(jī))可讀介質(zhì)中或者存儲(chǔ)在適于存儲(chǔ)電子指令并分別耦聯(lián)到總線的任何類型的介質(zhì)中,所述計(jì)算機(jī)可讀介質(zhì)包括但不限于任何類型的盤(包括軟盤、硬盤、光盤、cd-rom、和磁光盤)、rom(read-onlymemory,只讀存儲(chǔ)器)、ram(randomaccessmemory,隨機(jī)存儲(chǔ)器)、eprom(erasableprogrammableread-onlymemory,可擦寫可編程只讀存儲(chǔ)器)、eeprom(electricallyerasableprogrammableread-onlymemory,電可擦可編程只讀存儲(chǔ)器)、閃存、磁性卡片或光線卡片。也就是,可讀介質(zhì)包括由設(shè)備(例如,計(jì)算機(jī))以能夠讀的形式存儲(chǔ)或傳輸信息的任何介質(zhì)。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,可以用計(jì)算機(jī)程序指令來(lái)實(shí)現(xiàn)這些結(jié)構(gòu)圖和/或框圖和/或流圖中的每個(gè)框以及這些結(jié)構(gòu)圖和/或框圖和/或流圖中的框的組合。本技術(shù)領(lǐng)域技術(shù)人員可以理解,可以將這些計(jì)算機(jī)程序指令提供給通用計(jì)算機(jī)、專業(yè)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理方法的處理器來(lái)實(shí)現(xiàn),從而通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理方法的處理器來(lái)執(zhí)行本發(fā)明公開的結(jié)構(gòu)圖和/或框圖和/或流圖的框或多個(gè)框中指定的方案。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,本發(fā)明中已經(jīng)討論過(guò)的各種操作、方法、流程中的步驟、措施、方案可以被交替、更改、組合或刪除。進(jìn)一步地,具有本發(fā)明中已經(jīng)討論過(guò)的各種操作、方法、流程中的其他步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。進(jìn)一步地,現(xiàn)有技術(shù)中的具有與本發(fā)明中公開的各種操作、方法、流程中的步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說(shuō)明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。