本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種動(dòng)態(tài)調(diào)整參數(shù)規(guī)則的方法及裝置。
背景技術(shù):
參數(shù)規(guī)則:主要指類似核算規(guī)則、清分代碼、交易代碼、子交易代碼、業(yè)務(wù)事件和業(yè)務(wù)事項(xiàng)等在互聯(lián)網(wǎng)金融平臺(tái)中普遍大量使用的配置參數(shù)。例如,系統(tǒng)a向系統(tǒng)b發(fā)送一個(gè)核算記賬報(bào)文,系統(tǒng)b在接收到該核算記賬報(bào)文時(shí),需要調(diào)用事先配置的核算規(guī)則并與該核算記賬報(bào)文中定義的核算規(guī)則進(jìn)行匹配,如果匹配成功則再對該核算記賬報(bào)文進(jìn)行處理,如果匹配失敗,則丟棄該報(bào)文不對該核算記賬報(bào)文進(jìn)行任何處理。
通常情況下,系統(tǒng)會(huì)將各個(gè)參數(shù)規(guī)則均存儲(chǔ)在持久化存儲(chǔ)空間中,當(dāng)系統(tǒng)需要調(diào)用某一參數(shù)規(guī)則時(shí),可以從持久化存儲(chǔ)空間中調(diào)用該參數(shù)規(guī)則。
然而,發(fā)明人發(fā)現(xiàn),從持久化存儲(chǔ)空間中調(diào)用參數(shù)規(guī)則的調(diào)用速率較低,會(huì)嚴(yán)重影響調(diào)用效率。為了提高調(diào)用效率,系統(tǒng)可以事先將所有參數(shù)規(guī)則均加載至緩存空間中,這樣,當(dāng)系統(tǒng)需要調(diào)用某一參數(shù)規(guī)則時(shí),從緩存空間中直接調(diào)用該參數(shù)規(guī)則,由于系統(tǒng)從緩存空間中調(diào)用參數(shù)規(guī)則的速度高于系統(tǒng)從持久化存儲(chǔ)空間中調(diào)用參數(shù)規(guī)則的速度,從而可以提高系統(tǒng)調(diào)用參數(shù)規(guī)則的效率。
但是,系統(tǒng)將所有參數(shù)規(guī)則均加載至緩存空間中會(huì)占用緩存空間中非常多的存儲(chǔ)容量。
技術(shù)實(shí)現(xiàn)要素:
為克服相關(guān)技術(shù)中存在的問題,本發(fā)明提供一種動(dòng)態(tài)調(diào)整參數(shù)規(guī)則的方法及裝置。
根據(jù)本發(fā)明實(shí)施例的第一方面,提供一種動(dòng)態(tài)調(diào)整參數(shù)規(guī)則的方法,所述方法包括:
獲取在當(dāng)前時(shí)刻之前的預(yù)設(shè)時(shí)長內(nèi)的每一單位時(shí)間段內(nèi)目標(biāo)參數(shù)規(guī)則被調(diào)用的次數(shù);
對所述獲取的被調(diào)用的次數(shù)按照預(yù)設(shè)統(tǒng)計(jì)方式進(jìn)行統(tǒng)計(jì)得到目標(biāo)統(tǒng)計(jì)結(jié)果;
判斷所述目標(biāo)統(tǒng)計(jì)結(jié)果是否大于或等于與所述預(yù)設(shè)統(tǒng)計(jì)方式相對應(yīng)的預(yù)設(shè)統(tǒng)計(jì)結(jié)果;
當(dāng)所述目標(biāo)統(tǒng)計(jì)結(jié)果大于或等于所述預(yù)設(shè)統(tǒng)計(jì)結(jié)果時(shí),如果所述目標(biāo)參數(shù)規(guī)則未加載至緩存空間中,則將所述目標(biāo)參數(shù)規(guī)則加載至所述緩存空間中;
當(dāng)所述目標(biāo)統(tǒng)計(jì)結(jié)果小于所述預(yù)設(shè)統(tǒng)計(jì)結(jié)果時(shí),如果所述目標(biāo)參數(shù)規(guī)則已加載至所述緩存空間中,則從所述緩存空間中刪除所述目標(biāo)參數(shù)規(guī)則。
其中,所述對所述獲取的被調(diào)用的次數(shù)按照預(yù)設(shè)統(tǒng)計(jì)方式進(jìn)行統(tǒng)計(jì)得到目標(biāo)統(tǒng)計(jì)結(jié)果,包括:
對所述獲取的被調(diào)用的次數(shù)進(jìn)行求和運(yùn)算得到被調(diào)用的總次數(shù);
將所述被調(diào)用的總次數(shù)確定為所述目標(biāo)統(tǒng)計(jì)結(jié)果。
其中,所述對所述獲取的被調(diào)用的次數(shù)按照預(yù)設(shè)統(tǒng)計(jì)方式進(jìn)行統(tǒng)計(jì)得到目標(biāo)統(tǒng)計(jì)結(jié)果,包括:
對所述獲取的被調(diào)用的次數(shù)進(jìn)行求和運(yùn)算得到被調(diào)用的總次數(shù);
獲取在所述預(yù)設(shè)時(shí)長內(nèi)的單位時(shí)間段的總個(gè)數(shù);
將所述被調(diào)用的總次數(shù)與所述總個(gè)數(shù)進(jìn)行除法運(yùn)算得到一數(shù)值并作為所述目標(biāo)統(tǒng)計(jì)結(jié)果。
進(jìn)一步地,所述方法還包括:
當(dāng)所述目標(biāo)統(tǒng)計(jì)結(jié)果大于或等于所述預(yù)設(shè)統(tǒng)計(jì)結(jié)果時(shí),如果所述目標(biāo)參數(shù)規(guī)則未加載至緩存空間中,判斷所述緩存空間中未被占用的存儲(chǔ)容量是否大于或等于所述目標(biāo)參數(shù)規(guī)則所占的存儲(chǔ)容量;
當(dāng)所述緩存空間中未被占用的存儲(chǔ)容量大于或等于所述目標(biāo)參數(shù)規(guī)則所占的存儲(chǔ)容量時(shí),執(zhí)行所述將所述目標(biāo)參數(shù)規(guī)則加載至所述緩存空間中的步驟;
當(dāng)所述緩存空間中未被占用的存儲(chǔ)容量小于所述目標(biāo)參數(shù)規(guī)則所占的存儲(chǔ)容量時(shí),擴(kuò)大所述緩存空間的總存儲(chǔ)容量,并執(zhí)行所述將所述目標(biāo)參數(shù)規(guī)則加載至所述緩存空間中的步驟。
進(jìn)一步地,所述方法還包括:
判斷所述緩存空間中已被占用的存儲(chǔ)容量是否大于或等于預(yù)設(shè)存儲(chǔ)容量;所述預(yù)設(shè)存儲(chǔ)容量小于所述緩存空間的總存儲(chǔ)容量;
當(dāng)所述緩存空間中已被占用的存儲(chǔ)容量小于預(yù)設(shè)存儲(chǔ)容量時(shí),擴(kuò)大所述緩存空間的總存儲(chǔ)容量。
其中,所述擴(kuò)大所述緩存空間的總存儲(chǔ)容量,包括:
獲取所述緩存空間的當(dāng)前總存儲(chǔ)容量;
按照如下公式將所述緩存空間的當(dāng)前總存儲(chǔ)容量擴(kuò)大至目標(biāo)總存儲(chǔ)容量;
其中,在上述公式中,b0為所述目標(biāo)總存儲(chǔ)容量,b1為所述緩存空間的當(dāng)前總存儲(chǔ)容量,a1為第一預(yù)設(shè)數(shù)值,a2第二預(yù)設(shè)數(shù)值,以及a3為第三預(yù)設(shè)數(shù)值;a1大于a2。
根據(jù)本發(fā)明實(shí)施例的第二方面,提供一種動(dòng)態(tài)調(diào)整參數(shù)規(guī)則的裝置,所述裝置包括:
獲取模塊,用于獲取在當(dāng)前時(shí)刻之前的預(yù)設(shè)時(shí)長內(nèi)的每一單位時(shí)間段內(nèi)目標(biāo)參數(shù)規(guī)則被調(diào)用的次數(shù);
統(tǒng)計(jì)模塊,用于對所述獲取的被調(diào)用的次數(shù)按照預(yù)設(shè)統(tǒng)計(jì)方式進(jìn)行統(tǒng)計(jì)得到目標(biāo)統(tǒng)計(jì)結(jié)果;
第一判斷模塊,用于判斷所述目標(biāo)統(tǒng)計(jì)結(jié)果是否大于或等于與所述預(yù)設(shè)統(tǒng)計(jì)方式相對應(yīng)的預(yù)設(shè)統(tǒng)計(jì)結(jié)果;
加載模塊,用于當(dāng)所述目標(biāo)統(tǒng)計(jì)結(jié)果大于或等于所述預(yù)設(shè)統(tǒng)計(jì)結(jié)果時(shí),如果所述目標(biāo)參數(shù)規(guī)則未加載至緩存空間中,則將所述目標(biāo)參數(shù)規(guī)則加載至所述緩存空間中;
刪除模塊,用于當(dāng)所述目標(biāo)統(tǒng)計(jì)結(jié)果小于所述預(yù)設(shè)統(tǒng)計(jì)結(jié)果時(shí),如果所述目標(biāo)參數(shù)規(guī)則已加載至所述緩存空間中,則從所述緩存空間中刪除所述目標(biāo)參數(shù)規(guī)則。
其中,所述統(tǒng)計(jì)模塊包括:
求和運(yùn)算單元,用于對所述獲取的被調(diào)用的次數(shù)進(jìn)行求和運(yùn)算得到被調(diào)用的總次數(shù);
確定單元,用于將所述被調(diào)用的總次數(shù)確定為所述目標(biāo)統(tǒng)計(jì)結(jié)果。
其中,所述統(tǒng)計(jì)模塊包括:
求和運(yùn)算單元,用于對所述獲取的被調(diào)用的次數(shù)進(jìn)行求和運(yùn)算得到被調(diào)用的總次數(shù);
獲取單元,用于獲取在所述預(yù)設(shè)時(shí)長內(nèi)的單位時(shí)間段的總個(gè)數(shù);
除法運(yùn)算單元,用于將所述被調(diào)用的總次數(shù)與所述總個(gè)數(shù)進(jìn)行除法運(yùn)算得到一數(shù)值并作為所述目標(biāo)統(tǒng)計(jì)結(jié)果。
進(jìn)一步地,所述裝置還包括:
第二判斷模塊,用于當(dāng)所述目標(biāo)統(tǒng)計(jì)結(jié)果大于或等于所述預(yù)設(shè)統(tǒng)計(jì)結(jié)果時(shí),如果所述目標(biāo)參數(shù)規(guī)則未加載至緩存空間中,判斷所述緩存空間中未被占用的存儲(chǔ)容量是否大于或等于所述目標(biāo)參數(shù)規(guī)則所占的存儲(chǔ)容量;
所述加載模塊還用于當(dāng)所述緩存空間中未被占用的存儲(chǔ)容量大于或等于所述目標(biāo)參數(shù)規(guī)則所占的存儲(chǔ)容量時(shí),將所述目標(biāo)參數(shù)規(guī)則加載至所述緩存空間中;
擴(kuò)大模塊,用于當(dāng)所述緩存空間中未被占用的存儲(chǔ)容量小于所述目標(biāo)參數(shù)規(guī)則所占的存儲(chǔ)容量時(shí),擴(kuò)大所述緩存空間的總存儲(chǔ)容量;所述加載模塊還用于將所述目標(biāo)參數(shù)規(guī)則加載至所述緩存空間中。
進(jìn)一步地,所述裝置還包括:
第三判斷模塊,用于判斷所述緩存空間中已被占用的存儲(chǔ)容量是否大于或等于預(yù)設(shè)存儲(chǔ)容量;所述預(yù)設(shè)存儲(chǔ)容量小于所述緩存空間的總存儲(chǔ)容量;
擴(kuò)大模塊,用于當(dāng)所述緩存空間中已被占用的存儲(chǔ)容量小于預(yù)設(shè)存儲(chǔ)容量時(shí),擴(kuò)大所述緩存空間的總存儲(chǔ)容量。
其中,所述擴(kuò)大模塊包括:
獲取單元,用于獲取所述緩存空間的當(dāng)前總存儲(chǔ)容量;
擴(kuò)大單元,用于按照如下公式將所述緩存空間的當(dāng)前總存儲(chǔ)容量擴(kuò)大至目標(biāo)總存儲(chǔ)容量;
其中,在上述公式中,b0為所述目標(biāo)總存儲(chǔ)容量,b1為所述緩存空間的當(dāng)前總存儲(chǔ)容量,a1為第一預(yù)設(shè)數(shù)值,a2第二預(yù)設(shè)數(shù)值,以及a3為第三預(yù)設(shè)數(shù)值;a1大于a2。
本發(fā)明的實(shí)施例提供的技術(shù)方案可以包括以下有益效果:
在本發(fā)明實(shí)施例中,參數(shù)規(guī)則有很多,但是,在任意一段時(shí)間內(nèi)通常都不會(huì)加載全部的參數(shù)規(guī)則,而僅僅會(huì)調(diào)用所有參數(shù)規(guī)則中的一小部分參數(shù)規(guī)則,其他大部分的參數(shù)規(guī)則都不會(huì)被調(diào)用,因此,在某些參數(shù)規(guī)則不會(huì)被調(diào)用的情況下仍舊將這些參數(shù)規(guī)則加載至緩存空間中會(huì)占用緩存空間中非常多的存儲(chǔ)容量。
所以,為了在不影響調(diào)用參數(shù)規(guī)則的效率的情況下節(jié)省緩存空間的存儲(chǔ)容量,在本發(fā)明所示的實(shí)施例中,獲取在當(dāng)前時(shí)刻之前的預(yù)設(shè)時(shí)長內(nèi)的每一單位時(shí)間段時(shí)目標(biāo)參數(shù)規(guī)則被調(diào)用的次數(shù);對獲取的被調(diào)用的次數(shù)按照預(yù)設(shè)統(tǒng)計(jì)方式進(jìn)行統(tǒng)計(jì)得到目標(biāo)統(tǒng)計(jì)結(jié)果;判斷目標(biāo)統(tǒng)計(jì)結(jié)果是否大于或等于與預(yù)設(shè)統(tǒng)計(jì)方式相對應(yīng)的預(yù)設(shè)統(tǒng)計(jì)結(jié)果;當(dāng)目標(biāo)統(tǒng)計(jì)結(jié)果大于或等于預(yù)設(shè)統(tǒng)計(jì)結(jié)果時(shí),如果目標(biāo)參數(shù)規(guī)則未加載至緩存空間中,則將目標(biāo)參數(shù)規(guī)則加載至緩存空間中;當(dāng)目標(biāo)統(tǒng)計(jì)結(jié)果小于預(yù)設(shè)統(tǒng)計(jì)結(jié)果時(shí),如果目標(biāo)參數(shù)規(guī)則已加載至緩存空間中,則從緩存空間中刪除目標(biāo)參數(shù)規(guī)則。
通過本發(fā)明實(shí)施例的方法,不再將在當(dāng)前時(shí)刻之后的一段時(shí)間內(nèi)被調(diào)用的可能性較小的參數(shù)規(guī)則加載至緩存空間中,而僅僅將在當(dāng)前時(shí)刻之后的一段時(shí)間內(nèi)被調(diào)用的可能性較大的參數(shù)規(guī)則加載至緩存空間中。其次,如果此時(shí)緩存空間中還加載了在當(dāng)前時(shí)刻之后的 一段時(shí)間內(nèi)被調(diào)用的可能性較小的參數(shù)規(guī)則,則從緩存空間中刪除在當(dāng)前時(shí)刻之后的一段時(shí)間內(nèi)被調(diào)用的可能性較小的參數(shù)規(guī)則,從而節(jié)省了緩存空間的存儲(chǔ)容量。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本發(fā)明。
附圖說明
此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本發(fā)明的實(shí)施例,并與說明書一起用于解釋本發(fā)明的原理。
圖1是根據(jù)一示例性實(shí)施例示出的一種動(dòng)態(tài)調(diào)整參數(shù)規(guī)則的方法的流程圖
圖2是根據(jù)一示例性實(shí)施例示出的一種動(dòng)態(tài)調(diào)整參數(shù)規(guī)則的方法的流程圖
圖3是根據(jù)一示例性實(shí)施例示出的一種動(dòng)態(tài)調(diào)整參數(shù)規(guī)則的方法的流程圖
圖4是根據(jù)一示例性實(shí)施例示出的一種動(dòng)態(tài)調(diào)整參數(shù)規(guī)則的裝置的框圖。
具體實(shí)施方式
這里將詳細(xì)地對示例性實(shí)施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)值表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本發(fā)明相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
圖1是根據(jù)一示例性實(shí)施例示出的一種動(dòng)態(tài)調(diào)整參數(shù)規(guī)則的方法的流程圖,如圖1所示,該方法包括以下步驟。
在步驟s101中,獲取在當(dāng)前時(shí)刻之前的預(yù)設(shè)時(shí)長內(nèi)的每一單位時(shí)間段內(nèi)目標(biāo)參數(shù)規(guī)則被調(diào)用的次數(shù);
其中,預(yù)設(shè)時(shí)長可以為1秒、5秒或10秒等,本發(fā)明對此不加以限定。
當(dāng)前時(shí)刻之前的預(yù)設(shè)時(shí)長內(nèi)包括多個(gè)單位時(shí)間段,例如,假設(shè)當(dāng)前時(shí)刻為第10秒,預(yù)設(shè)時(shí)長為5秒鐘,則在當(dāng)前時(shí)刻之前的預(yù)設(shè)時(shí)長為第5秒~第10秒,這段時(shí)長包括5個(gè)單位時(shí)間段,分別為從第5秒到第6秒的時(shí)間段、從第6秒到第7秒的時(shí)間段、從第7秒到第8秒的時(shí)間段、從第8秒到第9秒的時(shí)間段和從第9秒到第10秒的時(shí)間段。
在本發(fā)明實(shí)施例中,在任意一個(gè)單位時(shí)間段內(nèi),每當(dāng)調(diào)用一個(gè)參數(shù)規(guī)則,就會(huì)更新在該單位時(shí)間段內(nèi)調(diào)用該參數(shù)規(guī)則的調(diào)用次數(shù)并存儲(chǔ)在本地。對于其他每一單位時(shí)間段,同 樣如此。這樣,在本發(fā)明實(shí)施例中,就可以從本地獲取在任意一個(gè)單位時(shí)間段內(nèi)被調(diào)用的次數(shù)。
例如,在任意一個(gè)單位時(shí)間段內(nèi),當(dāng)?shù)谝淮握{(diào)用一個(gè)參數(shù)規(guī)則時(shí),設(shè)置次數(shù)初值,并將該參數(shù)規(guī)則的標(biāo)識(shí)與該次數(shù)初值組成一條記錄存儲(chǔ)在與該單位時(shí)間段對應(yīng)的、參數(shù)規(guī)則的標(biāo)識(shí)與被調(diào)用次數(shù)之間的對應(yīng)關(guān)系中;當(dāng)之后再次調(diào)用該參數(shù)規(guī)則時(shí),則只需更新該記錄中的被調(diào)用次數(shù)即可;例如,假設(shè),當(dāng)前該記錄中的被調(diào)用次數(shù)為4,則當(dāng)再次調(diào)用該參數(shù)規(guī)則時(shí),只需將該記錄中的被調(diào)用次數(shù)由4更新為5即可。對于其他每一單位時(shí)間段,同樣如此。
這樣,當(dāng)需要獲取某一參數(shù)規(guī)則在某一單位時(shí)間段內(nèi)的被調(diào)用次數(shù)時(shí),可以獲取本地存儲(chǔ)的與該單位時(shí)間段對應(yīng)的、參數(shù)規(guī)則的標(biāo)識(shí)與被調(diào)用次數(shù)之間的對應(yīng)關(guān)系,然后在該對應(yīng)關(guān)系中查找與該參數(shù)規(guī)則的標(biāo)識(shí)相對應(yīng)的被調(diào)用次數(shù),并作為該參數(shù)規(guī)則在該單位時(shí)間段內(nèi)的被調(diào)用次數(shù)。
在步驟s102中,對獲取的被調(diào)用的次數(shù)按照預(yù)設(shè)統(tǒng)計(jì)方式進(jìn)行統(tǒng)計(jì)得到目標(biāo)統(tǒng)計(jì)結(jié)果;
在本發(fā)明實(shí)施例中,對獲取的所有被調(diào)用的次數(shù)進(jìn)行求和運(yùn)算得到被調(diào)用的總次數(shù);將該被調(diào)用的總次數(shù)確定為目標(biāo)統(tǒng)計(jì)結(jié)果。
或者,在本發(fā)明另一實(shí)施例中,也可以對獲取的所有被調(diào)用的次數(shù)進(jìn)行求和運(yùn)算得到被調(diào)用的總次數(shù);獲取在當(dāng)前時(shí)刻之前的預(yù)設(shè)時(shí)長內(nèi)的單位時(shí)間段的總個(gè)數(shù);將該被調(diào)用的總次數(shù)與該總個(gè)數(shù)進(jìn)行除法運(yùn)算得到一數(shù)值并作為目標(biāo)統(tǒng)計(jì)結(jié)果。
在步驟s103中,判斷目標(biāo)統(tǒng)計(jì)結(jié)果是否大于或等于與預(yù)設(shè)統(tǒng)計(jì)方式相對應(yīng)的預(yù)設(shè)統(tǒng)計(jì)結(jié)果;
預(yù)設(shè)統(tǒng)計(jì)結(jié)果為技術(shù)人員事先在本地設(shè)置的。在本發(fā)明實(shí)施例中,不同的預(yù)設(shè)統(tǒng)計(jì)方式對應(yīng)不同的預(yù)設(shè)統(tǒng)計(jì)結(jié)果。
在本步驟中,可以將目標(biāo)統(tǒng)計(jì)結(jié)果與預(yù)設(shè)統(tǒng)計(jì)結(jié)果進(jìn)行比較。
當(dāng)目標(biāo)統(tǒng)計(jì)結(jié)果大于或等于預(yù)設(shè)統(tǒng)計(jì)結(jié)果時(shí),如果目標(biāo)參數(shù)規(guī)則未加載至緩存空間中,在步驟s104中,將目標(biāo)參數(shù)規(guī)則加載至緩存空間中;
在本發(fā)明實(shí)施例中,當(dāng)目標(biāo)統(tǒng)計(jì)結(jié)果大于或等于預(yù)設(shè)統(tǒng)計(jì)結(jié)果時(shí),則說明在當(dāng)前時(shí)刻之前的預(yù)設(shè)時(shí)長內(nèi)目標(biāo)參數(shù)規(guī)則被調(diào)用的次數(shù)較多。
其中,技術(shù)人員已經(jīng)事先根據(jù)歷史過程統(tǒng)計(jì)出一個(gè)規(guī)律:當(dāng)一個(gè)參數(shù)規(guī)則在一個(gè)或多個(gè)單位時(shí)間段內(nèi)被調(diào)用的次數(shù)較多時(shí),則在該一個(gè)或多個(gè)單位時(shí)間段之后的一段時(shí)間內(nèi)該參數(shù)規(guī)則通常會(huì)被調(diào)用。
因此,在本發(fā)明實(shí)施例中,如果在當(dāng)前時(shí)刻之前的預(yù)設(shè)時(shí)長內(nèi)目標(biāo)參數(shù)規(guī)則被調(diào)用的次數(shù)較多,可以推斷出在當(dāng)前時(shí)刻之后的一段時(shí)間內(nèi)被調(diào)用的可能性較大,因此需要使得目標(biāo)參數(shù)規(guī)則位于緩存空間中,以便之后當(dāng)需要調(diào)用目標(biāo)參數(shù)規(guī)則時(shí)可以從緩存空間中直接調(diào)用目標(biāo)參數(shù)規(guī)則以提高調(diào)用目標(biāo)參數(shù)規(guī)則的效率。
其中,此時(shí)需要判斷目標(biāo)參數(shù)規(guī)則是否已經(jīng)加載至緩存空間中;如果目標(biāo)參數(shù)規(guī)則已經(jīng)加載至緩存空間中,則無需再次重新將目標(biāo)參數(shù)規(guī)則加載至緩存空間中,也無需做任何操作,進(jìn)而結(jié)束流程。如果目標(biāo)參數(shù)規(guī)則未加載至緩存空間中,則需要將目標(biāo)參數(shù)規(guī)則加載至緩存空間中。
當(dāng)目標(biāo)統(tǒng)計(jì)結(jié)果小于預(yù)設(shè)統(tǒng)計(jì)結(jié)果時(shí),如果目標(biāo)參數(shù)規(guī)則已加載至緩存空間中,在步驟s105中,從緩存空間中刪除目標(biāo)參數(shù)規(guī)則。
在本發(fā)明實(shí)施例中,當(dāng)目標(biāo)統(tǒng)計(jì)結(jié)果小于預(yù)設(shè)統(tǒng)計(jì)結(jié)果時(shí),則說明在當(dāng)前時(shí)刻之前的預(yù)設(shè)時(shí)長內(nèi)目標(biāo)參數(shù)規(guī)則被調(diào)用的次數(shù)較少。
其中,技術(shù)人員已經(jīng)事先根據(jù)歷史過程統(tǒng)計(jì)出一個(gè)規(guī)律:當(dāng)一個(gè)參數(shù)規(guī)則在一個(gè)或多個(gè)單位時(shí)間段內(nèi)被調(diào)用的次數(shù)較少時(shí),則在該一個(gè)或多個(gè)單位時(shí)間段之后的一段時(shí)間內(nèi)該參數(shù)規(guī)則通常不會(huì)被調(diào)用。
因此,在本發(fā)明實(shí)施例中,如果在當(dāng)前時(shí)刻之前的預(yù)設(shè)時(shí)長內(nèi)目標(biāo)參數(shù)規(guī)則被調(diào)用的次數(shù)較小,可以推斷出在當(dāng)前時(shí)刻之后的一段時(shí)間內(nèi)被調(diào)用的可能性較小,由于緩存空間中的存儲(chǔ)容量有限,如果緩存空間中的存儲(chǔ)容量被占滿了則就無法繼續(xù)在緩存空間中加載參數(shù)規(guī)則。
本發(fā)明實(shí)施例需要優(yōu)先將在當(dāng)前時(shí)刻之后的一段時(shí)間內(nèi)被調(diào)用的可能性較高的參數(shù)規(guī)則加載至緩存中,所以,為了盡可能地保障將在當(dāng)前時(shí)刻之后的一段時(shí)間內(nèi)被調(diào)用的可能性較大的參數(shù)規(guī)則加載至緩存空間中,當(dāng)目標(biāo)統(tǒng)計(jì)結(jié)果小于預(yù)設(shè)統(tǒng)計(jì)結(jié)果時(shí),需要判斷目標(biāo)參數(shù)規(guī)則是否已經(jīng)加載至緩存空間中;如果目標(biāo)參數(shù)規(guī)則未加載至緩存空間中,則無需做任何操作,進(jìn)而結(jié)束流程;如果目標(biāo)參數(shù)規(guī)則已經(jīng)加載至緩存空間中,需要從緩存空間中刪除目標(biāo)參數(shù)規(guī)則。
在本發(fā)明實(shí)施例中,參數(shù)規(guī)則有很多,但是,在任意一段時(shí)間內(nèi)通常都不會(huì)加載全部的參數(shù)規(guī)則,而僅僅會(huì)調(diào)用所有參數(shù)規(guī)則中的一小部分參數(shù)規(guī)則,其他大部分的參數(shù)規(guī)則都不會(huì)被調(diào)用,因此,在某些參數(shù)規(guī)則不會(huì)被調(diào)用的情況下仍舊將這些參數(shù)規(guī)則加載至緩存空間中會(huì)占用緩存空間中非常多的存儲(chǔ)容量。
所以,為了在不影響調(diào)用參數(shù)規(guī)則的效率的情況下節(jié)省緩存空間的存儲(chǔ)容量,在本發(fā)明圖1所示的實(shí)施例中,獲取在當(dāng)前時(shí)刻之前的預(yù)設(shè)時(shí)長內(nèi)的每一單位時(shí)間段時(shí)目標(biāo)參數(shù) 規(guī)則被調(diào)用的次數(shù);對獲取的被調(diào)用的次數(shù)按照預(yù)設(shè)統(tǒng)計(jì)方式進(jìn)行統(tǒng)計(jì)得到目標(biāo)統(tǒng)計(jì)結(jié)果;判斷目標(biāo)統(tǒng)計(jì)結(jié)果是否大于或等于與預(yù)設(shè)統(tǒng)計(jì)方式相對應(yīng)的預(yù)設(shè)統(tǒng)計(jì)結(jié)果;當(dāng)目標(biāo)統(tǒng)計(jì)結(jié)果大于或等于預(yù)設(shè)統(tǒng)計(jì)結(jié)果時(shí),如果目標(biāo)參數(shù)規(guī)則未加載至緩存空間中,則將目標(biāo)參數(shù)規(guī)則加載至緩存空間中;當(dāng)目標(biāo)統(tǒng)計(jì)結(jié)果小于預(yù)設(shè)統(tǒng)計(jì)結(jié)果時(shí),如果目標(biāo)參數(shù)規(guī)則已加載至緩存空間中,則從緩存空間中刪除目標(biāo)參數(shù)規(guī)則。
通過本發(fā)明實(shí)施例的方法,不再將在當(dāng)前時(shí)刻之后的一段時(shí)間內(nèi)被調(diào)用的可能性較小的參數(shù)規(guī)則加載至緩存空間中,而僅僅將在當(dāng)前時(shí)刻之后的一段時(shí)間內(nèi)被調(diào)用的可能性較大的參數(shù)規(guī)則加載至緩存空間中。其次,如果此時(shí)緩存空間中還加載了在當(dāng)前時(shí)刻之后的一段時(shí)間內(nèi)被調(diào)用的可能性較小的參數(shù)規(guī)則,則從緩存空間中刪除在當(dāng)前時(shí)刻之后的一段時(shí)間內(nèi)被調(diào)用的可能性較小的參數(shù)規(guī)則,從而節(jié)省了緩存空間的存儲(chǔ)容量。
其中,在本發(fā)明另一實(shí)施例中,參見圖2,該方法還包括:
當(dāng)目標(biāo)統(tǒng)計(jì)結(jié)果大于或等于與預(yù)設(shè)統(tǒng)計(jì)方式相對應(yīng)的預(yù)設(shè)統(tǒng)計(jì)結(jié)果時(shí),如果目標(biāo)參數(shù)規(guī)則未加載至緩存空間中,在步驟s201中,判斷緩存空間中未被占用的存儲(chǔ)容量是否大于或等于目標(biāo)參數(shù)規(guī)則所占的存儲(chǔ)容量;
在本發(fā)明實(shí)施例中,由于緩存空間的存儲(chǔ)容量是有限的,如果想要成功地將一個(gè)參數(shù)規(guī)則加載至緩存中,則必須滿足一個(gè)客觀條件:緩存空間中未被占用的存儲(chǔ)容量大于或等于該參數(shù)規(guī)則所占的存儲(chǔ)容量。
其中,在當(dāng)前時(shí)刻,緩存空間中可能已經(jīng)加載了一個(gè)或多個(gè)參數(shù)規(guī)則,該一個(gè)或多個(gè)參數(shù)規(guī)則已經(jīng)占用了緩存空間中的一部分存儲(chǔ)容量,因此,在本發(fā)明實(shí)施例中,當(dāng)目標(biāo)統(tǒng)計(jì)結(jié)果大于或等于與預(yù)設(shè)統(tǒng)計(jì)方式相對應(yīng)的預(yù)設(shè)統(tǒng)計(jì)結(jié)果時(shí),如果目標(biāo)參數(shù)規(guī)則未加載至緩存空間中,則需要判斷緩存空間中未被占用的存儲(chǔ)容量是否大于或等于目標(biāo)參數(shù)規(guī)則所占的存儲(chǔ)容量。
當(dāng)緩存空間中未被占用的存儲(chǔ)容量大于或等于目標(biāo)參數(shù)規(guī)則所占的存儲(chǔ)容量時(shí),執(zhí)行步驟s104:將目標(biāo)參數(shù)規(guī)則加載至緩存空間中;
當(dāng)緩存空間中未被占用的存儲(chǔ)容量小于目標(biāo)參數(shù)規(guī)則所占的存儲(chǔ)容量時(shí),在步驟s202中,擴(kuò)大緩存空間的總存儲(chǔ)容量;然后執(zhí)行步驟s104。
其中,當(dāng)緩存空間中未被占用的存儲(chǔ)容量小于目標(biāo)參數(shù)規(guī)則所占的存儲(chǔ)容量時(shí),當(dāng)前的緩存空間是無法成功加載目標(biāo)參數(shù)規(guī)則的。然而,在本發(fā)明實(shí)施例中,為了能夠成功地將目標(biāo)參數(shù)規(guī)則加載至緩存空間,此時(shí)需要擴(kuò)緩存空間的總存儲(chǔ)容量,當(dāng)擴(kuò)大了緩存空間的總存儲(chǔ)容量后,緩存空間中的未被占用的存儲(chǔ)容量就會(huì)增大,當(dāng)緩存空間中未被占用的 存儲(chǔ)容量大于或等于目標(biāo)參數(shù)規(guī)則所占的存儲(chǔ)容量時(shí),就可以成功地將目標(biāo)參數(shù)規(guī)則加載至緩存空間中。
具體地,本步驟可以為:
獲取緩存空間的當(dāng)前總存儲(chǔ)容量;按照如下公式將緩存空間的當(dāng)前總存儲(chǔ)容量擴(kuò)大至目標(biāo)總存儲(chǔ)容量。
其中,在上述公式中,b0為目標(biāo)總存儲(chǔ)容量,b1為緩存空間的當(dāng)前總存儲(chǔ)容量,a1為第一預(yù)設(shè)數(shù)值,a2第二預(yù)設(shè)數(shù)值,以及a3為第三預(yù)設(shè)數(shù)值;a1大于a2。
例如,在一個(gè)例子中,第一預(yù)設(shè)數(shù)值a1可以為3,第二預(yù)設(shè)數(shù)值a2可以為2,第三預(yù)設(shè)數(shù)值a3可以為1。
在前述實(shí)施例已經(jīng)說明了:由于緩存空間的存儲(chǔ)容量是有限的,如果想要成功地將一個(gè)參數(shù)規(guī)則加載至緩存中,則必須滿足一個(gè)客觀條件:緩存空間中未被占用的存儲(chǔ)容量大于或等于該參數(shù)規(guī)則所占的存儲(chǔ)容量。
所以,當(dāng)緩存空間快要被占滿時(shí),為了之后能夠成功地將需要加載至緩存空間中的參數(shù)規(guī)則加載至緩存空間中,參見圖3,該方法還包括:
在步驟s301中,判斷緩存空間中已被占用的存儲(chǔ)容量是否大于或等于預(yù)設(shè)存儲(chǔ)容量;
預(yù)設(shè)存儲(chǔ)容量小于緩存空間的總存儲(chǔ)容量;例如,預(yù)設(shè)存儲(chǔ)容量可以為緩存空間的總存儲(chǔ)容量乘以預(yù)設(shè)系數(shù),預(yù)設(shè)系數(shù)大于0且小于1。通常情況下,預(yù)設(shè)存儲(chǔ)容量為緩存空間的總存儲(chǔ)容量的四分之三或五分之四等。
在本發(fā)明實(shí)施例中,可以周期性執(zhí)行步驟s301,技術(shù)人員可以事先在本地設(shè)置周期長度。
當(dāng)緩存空間中已被占用的存儲(chǔ)容量大于或等于預(yù)設(shè)存儲(chǔ)容量時(shí),在步驟s302中,擴(kuò)大緩存空間的總存儲(chǔ)容量。
具體地,本步驟可以為:
獲取緩存空間的當(dāng)前總存儲(chǔ)容量;按照如下公式將緩存空間的當(dāng)前總存儲(chǔ)容量擴(kuò)大至目標(biāo)總存儲(chǔ)容量。
其中,在上述公式中,b0為目標(biāo)總存儲(chǔ)容量,b1為緩存空間的當(dāng)前總存儲(chǔ)容量,a1為第一預(yù)設(shè)數(shù)值,a2第二預(yù)設(shè)數(shù)值,以及a3為第三預(yù)設(shè)數(shù)值;a1大于a2。
例如,在一個(gè)例子中,第一預(yù)設(shè)數(shù)值a1可以為3,第二預(yù)設(shè)數(shù)值a2可以為2,第三預(yù)設(shè)數(shù)值a3可以為1。
其中,當(dāng)緩存空間中已被占用的存儲(chǔ)容量小于預(yù)設(shè)存儲(chǔ)容量時(shí),結(jié)束流程。
圖4是根據(jù)一示例性實(shí)施例示出的一種動(dòng)態(tài)調(diào)整參數(shù)規(guī)則的裝置的框圖。參照圖4,該裝置包括:
獲取模塊11,用于獲取在當(dāng)前時(shí)刻之前的預(yù)設(shè)時(shí)長內(nèi)的每一單位時(shí)間段內(nèi)目標(biāo)參數(shù)規(guī)則被調(diào)用的次數(shù);
統(tǒng)計(jì)模塊12,用于對所述獲取的被調(diào)用的次數(shù)按照預(yù)設(shè)統(tǒng)計(jì)方式進(jìn)行統(tǒng)計(jì)得到目標(biāo)統(tǒng)計(jì)結(jié)果;
第一判斷模塊13,用于判斷所述目標(biāo)統(tǒng)計(jì)結(jié)果是否大于或等于與所述預(yù)設(shè)統(tǒng)計(jì)方式相對應(yīng)的預(yù)設(shè)統(tǒng)計(jì)結(jié)果;
加載模塊14,用于當(dāng)所述目標(biāo)統(tǒng)計(jì)結(jié)果大于或等于所述預(yù)設(shè)統(tǒng)計(jì)結(jié)果時(shí),如果所述目標(biāo)參數(shù)規(guī)則未加載至緩存空間中,則將所述目標(biāo)參數(shù)規(guī)則加載至所述緩存空間中;
刪除模塊15,用于當(dāng)所述目標(biāo)統(tǒng)計(jì)結(jié)果小于所述預(yù)設(shè)統(tǒng)計(jì)結(jié)果時(shí),如果所述目標(biāo)參數(shù)規(guī)則已加載至所述緩存空間中,則從所述緩存空間中刪除所述目標(biāo)參數(shù)規(guī)則。
其中,所述統(tǒng)計(jì)模塊12包括:
求和運(yùn)算單元,用于對所述獲取的被調(diào)用的次數(shù)進(jìn)行求和運(yùn)算得到被調(diào)用的總次數(shù);
確定單元,用于將所述被調(diào)用的總次數(shù)確定為所述目標(biāo)統(tǒng)計(jì)結(jié)果。
其中,所述統(tǒng)計(jì)模塊12包括:
求和運(yùn)算單元,用于對所述獲取的被調(diào)用的次數(shù)進(jìn)行求和運(yùn)算得到被調(diào)用的總次數(shù);
獲取單元,用于獲取在所述預(yù)設(shè)時(shí)長內(nèi)的單位時(shí)間段的總個(gè)數(shù);
除法運(yùn)算單元,用于將所述被調(diào)用的總次數(shù)與所述總個(gè)數(shù)進(jìn)行除法運(yùn)算得到一數(shù)值并作為所述目標(biāo)統(tǒng)計(jì)結(jié)果。
進(jìn)一步地,所述裝置還包括:
第二判斷模塊,用于當(dāng)所述目標(biāo)統(tǒng)計(jì)結(jié)果大于或等于所述預(yù)設(shè)統(tǒng)計(jì)結(jié)果時(shí),如果所述目標(biāo)參數(shù)規(guī)則未加載至緩存空間中,判斷所述緩存空間中未被占用的存儲(chǔ)容量是否大于或 等于所述目標(biāo)參數(shù)規(guī)則所占的存儲(chǔ)容量;
所述加載模塊還用于當(dāng)所述緩存空間中未被占用的存儲(chǔ)容量大于或等于所述目標(biāo)參數(shù)規(guī)則所占的存儲(chǔ)容量時(shí),將所述目標(biāo)參數(shù)規(guī)則加載至所述緩存空間中;
擴(kuò)大模塊,用于當(dāng)所述緩存空間中未被占用的存儲(chǔ)容量小于所述目標(biāo)參數(shù)規(guī)則所占的存儲(chǔ)容量時(shí),擴(kuò)大所述緩存空間的總存儲(chǔ)容量;所述加載模塊還用于將所述目標(biāo)參數(shù)規(guī)則加載至所述緩存空間中。
進(jìn)一步地,所述裝置還包括:
第三判斷模塊,用于判斷所述緩存空間中已被占用的存儲(chǔ)容量是否大于或等于預(yù)設(shè)存儲(chǔ)容量;所述預(yù)設(shè)存儲(chǔ)容量小于所述緩存空間的總存儲(chǔ)容量;
擴(kuò)大模塊,用于當(dāng)所述緩存空間中已被占用的存儲(chǔ)容量小于預(yù)設(shè)存儲(chǔ)容量時(shí),擴(kuò)大所述緩存空間的總存儲(chǔ)容量。
其中,所述擴(kuò)大模塊包括:
獲取單元,用于獲取所述緩存空間的當(dāng)前總存儲(chǔ)容量;
擴(kuò)大單元,用于按照如下公式將所述緩存空間的當(dāng)前總存儲(chǔ)容量擴(kuò)大至目標(biāo)總存儲(chǔ)容量;
其中,在上述公式中,b0為所述目標(biāo)總存儲(chǔ)容量,b1為所述緩存空間的當(dāng)前總存儲(chǔ)容量,a1為第一預(yù)設(shè)數(shù)值,a2第二預(yù)設(shè)數(shù)值,以及a3為第三預(yù)設(shè)數(shù)值;a1大于a2。
在本發(fā)明實(shí)施例中,參數(shù)規(guī)則有很多,但是,在任意一段時(shí)間內(nèi)通常都不會(huì)加載全部的參數(shù)規(guī)則,而僅僅會(huì)調(diào)用所有參數(shù)規(guī)則中的一小部分參數(shù)規(guī)則,其他大部分的參數(shù)規(guī)則都不會(huì)被調(diào)用,因此,在某些參數(shù)規(guī)則不會(huì)被調(diào)用的情況下仍舊將這些參數(shù)規(guī)則加載至緩存空間中會(huì)占用緩存空間中非常多的存儲(chǔ)容量。
所以,為了在不影響調(diào)用參數(shù)規(guī)則的效率的情況下節(jié)省緩存空間的存儲(chǔ)容量,在本發(fā)明圖4所示的實(shí)施例中,獲取在當(dāng)前時(shí)刻之前的預(yù)設(shè)時(shí)長內(nèi)的每一單位時(shí)間段時(shí)目標(biāo)參數(shù)規(guī)則被調(diào)用的次數(shù);對獲取的被調(diào)用的次數(shù)按照預(yù)設(shè)統(tǒng)計(jì)方式進(jìn)行統(tǒng)計(jì)得到目標(biāo)統(tǒng)計(jì)結(jié)果;判斷目標(biāo)統(tǒng)計(jì)結(jié)果是否大于或等于與預(yù)設(shè)統(tǒng)計(jì)方式相對應(yīng)的預(yù)設(shè)統(tǒng)計(jì)結(jié)果;當(dāng)目標(biāo)統(tǒng)計(jì)結(jié)果大于或等于預(yù)設(shè)統(tǒng)計(jì)結(jié)果時(shí),如果目標(biāo)參數(shù)規(guī)則未加載至緩存空間中,則將目標(biāo)參數(shù)規(guī)則加載至緩存空間中;當(dāng)目標(biāo)統(tǒng)計(jì)結(jié)果小于預(yù)設(shè)統(tǒng)計(jì)結(jié)果時(shí),如果目標(biāo)參數(shù)規(guī)則已加載至緩存空間中,則從緩存空間中刪除目標(biāo)參數(shù)規(guī)則。
通過本發(fā)明實(shí)施例的方法,不再將在當(dāng)前時(shí)刻之后的一段時(shí)間內(nèi)被調(diào)用的可能性較小的參數(shù)規(guī)則加載至緩存空間中,而僅僅將在當(dāng)前時(shí)刻之后的一段時(shí)間內(nèi)被調(diào)用的可能性較大的參數(shù)規(guī)則加載至緩存空間中。其次,如果此時(shí)緩存空間中還加載了在當(dāng)前時(shí)刻之后的一段時(shí)間內(nèi)被調(diào)用的可能性較小的參數(shù)規(guī)則,則從緩存空間中刪除在當(dāng)前時(shí)刻之后的一段時(shí)間內(nèi)被調(diào)用的可能性較小的參數(shù)規(guī)則,從而節(jié)省了緩存空間的存儲(chǔ)容量。
關(guān)于上述實(shí)施例中的裝置,其中各個(gè)模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實(shí)施例中進(jìn)行了詳細(xì)描述,此處將不做詳細(xì)闡述說明。
本領(lǐng)域技術(shù)人員在考慮說明書及實(shí)踐這里公開的發(fā)明后,將容易想到本發(fā)明的其它實(shí)施方案。本申請旨在涵蓋本發(fā)明的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本發(fā)明的一般性原理并包括本發(fā)明未公開的本技術(shù)領(lǐng)域中的公知常識(shí)或慣用技術(shù)手段。說明書和實(shí)施例僅被視為示例性的,本發(fā)明的真正范圍和精神由所附的權(quán)利要求指出。
應(yīng)當(dāng)理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進(jìn)行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來限制。