是APK所要滿足的最晚檢測開始時間,所需資源的最大數(shù)等條件,包括但 不限于上述條件。
[0029]目前設置的范圍(1,100),最晚檢測的時間以小時為單位,再乘以100保留兩位小 數(shù),公式如下:
例:最晚檢測時間為8小時30分,具體計算如下:
本發(fā)明提及的虛擬機的資源屬性值具體如下: (1)CPU指數(shù),用表示 CHJ指數(shù)指的是CPU當前可被使用的資源與CPU原始可使用資源的比率,計算公式CPU核心數(shù)XCPU主頻X(ι-CPU當前使用率)。
[0030] (2)內(nèi)存指數(shù),用表示 內(nèi)存指數(shù)指的是內(nèi)存當前空閑資源與內(nèi)存原始可使用資源的比率,計算公式CPU內(nèi)存 大小X(1-內(nèi)存當前使用率)。
[0031] (3)線程指數(shù),用表示 線程指數(shù)指的是當前超線程中線程空閑數(shù)與原始線程數(shù),計算公式線程數(shù)X(1-線程 當前使用率)。
[0032] 依據(jù)上述分析的APK的屬性得到一個所需檢測資源的計算單位,再根據(jù)檢測資源 本身所對應的屬性,通過下面的算法到一個值。
[0033] 每個APK具有某些屬性,而每個虛擬機擁有有限的資源,APK的屬性決定了其在虛 擬機中的分配結果; 設影響APK分配的屬性如下:
每個虛擬機的剩余資源種類如下:
由于虛擬機的某種資源可能與APK的某些屬性相關聯(lián),從而決定APK的分配方式,我們 將這種關聯(lián)用數(shù)學形式表示如下:
其中,各參數(shù)的含義為: s=l, 2, ......,S t=l, 2, ......,T %?表示資源s與屬性t之間關系,需同時滿足? 和% +? +…+? =1 兩個條件;&表示某個APK分配到虛擬機后所占用的虛擬機S類資源。
[0034] 圖1為APK屬性與虛擬機資源的關聯(lián)直觀顯示圖,具體舉例分析如下: 某APK將會進行靜態(tài)檢測,且APK的各屬性描述如下: 文件大小為25. 7Mb; 其中dex文件大小為1. 3Mb; dex文件中最大目錄深度為7級,總文件數(shù)為358個; 所擁有界面數(shù)為26,界面中最多的集成了 9個控件; 源文件目錄中最大目錄深度為4級,單個目錄下最多的目錄數(shù)是7個,單個目錄下最多 的文件數(shù)是84個; 依據(jù)上述屬性描述,將屬性代入及=1^哥+1^212+__+如辦_+1^辦會得到下面的公 式:
APK屬性及計算結果:
APK屬性與虛擬機資源關聯(lián)關系:
將上面各結果代入公式得到如下結果:
[0035] 現(xiàn)將N個ΑΡΚ|lSSΜ分配到Μ個虛擬機|_匕|l ;上,即將N個 APK分成Μ個簇,每個候選簇記為;其滿足如下約束條件: 放入每個虛擬機中的APK所需資源之和不大于該虛擬機實際所擁有的資源,即為:
優(yōu)化目標一:最大可能地占用每臺虛擬機的資源
其中:m表示虛擬機個數(shù),s表示資源種類 優(yōu)化目標二:對于優(yōu)先級屬性,屬性值越高的APK優(yōu)先分配
其中:i表示未被選中的APK,j表被選中的ΑΡΚ 將以上兩個優(yōu)化目標進行拉格朗日加權,可得如下的綜合目標函數(shù):
[0036] 基于上述分析,利用遺傳算法找到最優(yōu)分配方案,具體包括如下步驟: 步驟一:個體編碼生成 使用二進制編碼,另外引入一個特殊的編碼符號"X"表示禁止基因,禁止基因所對應 的虛擬機與該APK性能不匹配或虛擬機處于忙碌狀態(tài),不能接受任務分配。在初始化時,禁 止基因被分配編碼"X",并且在后面的遺傳操作中都不會改變,意味著不考慮分配對應的 APK給該虛擬機。因此,染色體上的基因有"0"、"1"、"父"三種編碼,設第行第列的基因為, 則它的意義如下:
步驟二:初始群體的產(chǎn)生 如圖2所述,遺傳算法是對群體進行操作的,其給定了初始群體的數(shù)據(jù); 步驟二:進行適應度計算 遺傳算法中以所有虛擬機之和的適應度大小來評定整個分配方案的優(yōu)劣,從而決定遺
傳機會的大?。槐灸P椭羞m應度用 (i表示虛擬機的個數(shù))度量, 越大 被選中的概率就越大; 步驟四:具體選擇 使用輪盤賭方法選擇構成下一代的個體,任一個體被選擇的概率等于其適應值與所有 染色體適應值之和的比值;在此選擇過程中,精英保留策略被采用,以確保獲得的最優(yōu)個 體不被進一步的遺傳操作所破壞,從而更有可能收斂到全局最優(yōu)解;在交叉、變異等操作之 后,如果新一代中最優(yōu)個體的適應值小于上一代中最優(yōu)個體的適應值,則上一代的最優(yōu)個 體被復制,并取代新一代中的最差個體;例如,設父代染色體種群為:
而交叉、變異后獲得的新種群為:
其中,為和忠,足和及分別是父代種群和新種群中的最優(yōu)和最差個體,如果適應值i!4丨,那么下一代子種群更新如下: 步驟五:交叉選擇
為了確保子代染色總是滿足約束條件,使子代染色體總是問題的可行解,圖2為兩個 父代染色體矩陣中的一行(或列)以一定的交叉概率P。被交換具體示意圖; 交叉完成后,需在父染色體Pi、P2和新染色體CρC2之間進行選擇,適應值較高的進入 下一代:
步驟六:變異 變異運算是對個體的某一個或某一些基因上的基因值按某一較小的概率進行改變,它 也是產(chǎn)生新個體的一種操作方法。本模型中我們采用位變異的方法,即從N行,Μ列中隨 機產(chǎn)生兩個隨機數(shù)Ρ和q,則當滿足下面兩個條件的時候,將第Ρ行q列的基因·^!·從〇變 為1或者從1變?yōu)椹?且需滿足如下兩個條件:條件1為基因不是禁止基因,條件2為
上述兩個條件同時滿足便可進行變異。
[0037] 以上對本發(fā)明進行了詳細介紹,本文中應用了實施例對本申請的原理及實施方式 進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于 本領域的一般技術人員,依據(jù)本申請的思想,在【具體實施方式】及應用范圍上均會有改變之 處,綜上所述,本說明書內(nèi)容不應理解為對本申請的限制。
【主權項】
1. 一種ΑΡΚ的快速檢測及提高單位資源利用率的方法: 包括一臺運行虛擬機的計算機; 所述運行虛擬機的計算機從檢測隊列中批量獲取待檢測ΑΡΚ; 所述運行虛擬機的計算機獲取待檢測ΑΡΚ屬性和虛擬機資源屬性; 所述運行虛擬機的計算機檢測并確定待檢測ΑΡΚ屬性值及虛擬機資源屬性值; 所述運行虛擬機的計算機確定ΑΡΚ的屬性對應的虛擬機資源的權重,所述權重用于標 識ΑΡΚ的屬性對虛擬機資源的影響程度; 所述運行虛擬機的計算機建立并計算待檢測ΑΡΚ屬性值與虛擬機資源屬性值函數(shù); 所述運行虛擬機的計算機利用遺傳算法確定最優(yōu)ΑΡΚ分配方案; 所述運行虛擬機的計算機根據(jù)最優(yōu)ΑΡΚ分配方案將待檢測ΑΡΚ分配給虛擬機。2. 如權利要求1所述的一種ΑΡΚ的快速檢測及提高單位資源利用率的方法,其特征在 于:所述ΑΡΚ屬性包括:ΑΡΚ文件的大小、DEX文件的大小、ΑΡΚ文件中代碼復雜度、ΑΡΚ文件 中界面復雜度、ΑΡΚ文件中資源文件復雜度和ΑΡΚ檢測優(yōu)先級,其中, 所述ΑΡΚ文件的大小是指ΑΡΚ文件本身占用存儲空間的大小,單位為Mb; 所述DEX文件的大小是指ΑΡΚ文件中的擴展名為.dex文件的大小,單位Mb; 所述ΑΡΚ文件中代碼復雜度是指dex文件中代碼的目錄深度與文件數(shù)的關系,代碼復 雜度設置范圍為(1,100),APK文件目錄深度為(1,10],超過10的W10計,APK的文件數(shù) (1,1000],超過 1000 的W1000 計; 所述APK文件中界面復雜度是指APK在運行過程中的界面數(shù)與界面中所使用