1.一種自適應(yīng)動(dòng)態(tài)編譯調(diào)度方法,其特征在于,包括:
獲取當(dāng)前編譯隊(duì)列的長(zhǎng)度,其中,所述當(dāng)前編譯隊(duì)列為熱點(diǎn)方法隊(duì)列;
若當(dāng)前編譯隊(duì)列的長(zhǎng)度大于隊(duì)列長(zhǎng)度閾值,則按照基于方法大小的動(dòng)態(tài)編譯調(diào)度策略對(duì)所述當(dāng)前編譯隊(duì)列中的熱點(diǎn)方法進(jìn)行編譯調(diào)度;
若當(dāng)前編譯隊(duì)列的長(zhǎng)度不大于隊(duì)列長(zhǎng)度閾值,則按照基于方法運(yùn)行速度的動(dòng)態(tài)編譯調(diào)度策略對(duì)所述當(dāng)前編譯隊(duì)列中的熱點(diǎn)方法進(jìn)行編譯調(diào)度;
將編譯調(diào)度時(shí)所選定的熱點(diǎn)方法從所述當(dāng)前編譯隊(duì)列中移除,并進(jìn)行編譯。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述按照基于方法大小的動(dòng)態(tài)編譯調(diào)度策略對(duì)所述當(dāng)前編譯隊(duì)列中的熱點(diǎn)方法進(jìn)行編譯調(diào)度包括:
從所述當(dāng)前編譯隊(duì)列中選取最小的熱點(diǎn)方法。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述按照基于方法運(yùn)行速度的動(dòng)態(tài)編譯調(diào)度策略對(duì)所述當(dāng)前編譯隊(duì)列中的熱點(diǎn)方法進(jìn)行編譯調(diào)度包括:從所述當(dāng)前編譯隊(duì)列中選取運(yùn)行速度最大的熱點(diǎn)方法。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,在所述從所述當(dāng)前編譯隊(duì)列中選取運(yùn)行速度最大的熱點(diǎn)方法進(jìn)行編譯之前,還包括:
獲取所述當(dāng)前編譯隊(duì)列中所有熱點(diǎn)方法的運(yùn)行速度。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述獲取所述當(dāng)前編譯隊(duì)列中所有熱點(diǎn)方法的運(yùn)行速度包括:
按照如下公式計(jì)算獲得當(dāng)前編譯隊(duì)列中所有熱點(diǎn)方法的運(yùn)行速度:
其中,speed(m)為熱點(diǎn)方法m的運(yùn)行速度,Δt為當(dāng)前時(shí)刻前的某一時(shí)間段長(zhǎng)度,Δexecute(m)為當(dāng)前時(shí)刻前的Δt時(shí)間段內(nèi)熱點(diǎn)方法m的執(zhí)行次數(shù),Δexecute(m)=Δinvocation_count(m)+Δloop_count(m),Δinvocation_count(m)為當(dāng)前時(shí) 刻前的Δt時(shí)間段內(nèi)熱點(diǎn)方法m被調(diào)用的次數(shù),Δloop_count(m)為當(dāng)前時(shí)刻前的Δt時(shí)間段內(nèi)熱點(diǎn)方法m內(nèi)部循環(huán)迭代的次數(shù)。
6.一種自適應(yīng)動(dòng)態(tài)編譯調(diào)度裝置,其特征在于,包括:
第一獲取單元,用于獲取當(dāng)前編譯隊(duì)列的長(zhǎng)度,其中,所述當(dāng)前編譯隊(duì)列為熱點(diǎn)方法隊(duì)列;
第一編譯調(diào)度單元,用于在當(dāng)前編譯隊(duì)列的長(zhǎng)度大于隊(duì)列長(zhǎng)度閾值時(shí),按照基于方法大小的動(dòng)態(tài)編譯調(diào)度策略對(duì)所述當(dāng)前編譯隊(duì)列中的熱點(diǎn)方法進(jìn)行編譯調(diào)度;
第二編譯調(diào)度單元,用于在當(dāng)前編譯隊(duì)列的長(zhǎng)度不大于隊(duì)列長(zhǎng)度閾值時(shí),按照基于方法運(yùn)行速度的動(dòng)態(tài)編譯調(diào)度策略對(duì)所述當(dāng)前編譯隊(duì)列中的熱點(diǎn)方法進(jìn)行編譯調(diào)度;
移除單元,用于將編譯調(diào)度時(shí)所選定的熱點(diǎn)方法從所述當(dāng)前編譯隊(duì)列中移除;
編譯單元,用于對(duì)所述移除單元所移除的熱點(diǎn)方法進(jìn)行編譯。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述第一編譯調(diào)度單元,用于從所述當(dāng)前編譯隊(duì)列中選取最小的熱點(diǎn)方法。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述第二編譯調(diào)度單元,用于從所述當(dāng)前編譯隊(duì)列中選取運(yùn)行速度最大的熱點(diǎn)方法。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括:
第二獲取單元,用于獲取所述當(dāng)前編譯隊(duì)列中所有熱點(diǎn)方法的運(yùn)行速度。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述第二獲取單元,用于按照如下公式計(jì)算獲得當(dāng)前編譯隊(duì)列中所有熱點(diǎn)方法的運(yùn)行速度:
其中,speed(m)為熱點(diǎn)方法m的運(yùn)行速度,Δt為當(dāng)前時(shí)刻前的某一時(shí)間段長(zhǎng)度,Δexecute(m)為當(dāng)前時(shí)刻前的Δt時(shí)間段內(nèi)熱點(diǎn)方法m的執(zhí)行次數(shù),Δexecute(m)=Δinvocation_count(m)+Δloop_count(m),Δinvocation_count(m)為當(dāng)前時(shí)刻前的Δt時(shí)間段內(nèi)熱點(diǎn)方法m被調(diào)用的次數(shù),Δloop_count(m)為當(dāng)前時(shí)刻前的Δt時(shí)間段內(nèi)熱點(diǎn)方法m內(nèi)部循環(huán)迭代的次數(shù)。