日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

drools dmn_Drools DMN最新开源引擎性能改进

發(fā)布時(shí)間:2023/12/3 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 drools dmn_Drools DMN最新开源引擎性能改进 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

drools dmn

我們一直在尋求改善Drools DMN開源引擎的性能。 我們最近審查了DMN用例,其中輸入數(shù)據(jù)節(jié)點(diǎn)的實(shí)際輸入總體有所不同。 這突出顯示了引擎的次佳性能,我們?cè)谧钚掳姹局袑?duì)此進(jìn)行了改進(jìn)。 我想分享我們的發(fā)現(xiàn)!

基準(zhǔn)制定

當(dāng)我們開始為此用例運(yùn)行一個(gè)支持基準(zhǔn)測(cè)試時(shí),尤其是在調(diào)查具有稀疏填充的輸入數(shù)據(jù)節(jié)點(diǎn)的大型DMN模型的場(chǎng)景時(shí),我們注意到了一些奇怪的結(jié)果:當(dāng)記錄消息時(shí),火焰圖數(shù)據(jù)突出顯示了性能的嚴(yán)重下降,這非常消耗與應(yīng)用邏輯本身相比,花費(fèi)了大量時(shí)間。

該火焰圖特別強(qiáng)調(diào)了堆棧跟蹤合成(由測(cè)井框架人為誘導(dǎo))消耗了大量時(shí)間。 在這種情況下,糾正措施是調(diào)整日志記錄配置以避免此問題。 具體來說,我們禁用了日志記錄框架的一項(xiàng)功能,該功能在調(diào)試活動(dòng)期間非常方便,從而可以快速定位原始的調(diào)用類和方法:不幸的是,此功能的代價(jià)是合成堆棧跟蹤,該跟蹤最初污染了基準(zhǔn)測(cè)試結(jié)果。 從這里學(xué)到的教訓(xùn):請(qǐng)始終先檢查非功能性需求是否真的掩蓋了真正的問題!

在繼續(xù)更詳細(xì)地研究用例之前,這是必要且可行的步驟。

改善表現(xiàn)

繼續(xù)并專注于DMN優(yōu)化,我們專門開發(fā)了一個(gè)通用性很強(qiáng)的基準(zhǔn),同時(shí)也重點(diǎn)介紹了已提供給我們的用例。 該基準(zhǔn)包含一個(gè)DMN模型,其中包含許多要評(píng)估的決策節(jié)點(diǎn)(500個(gè))。 另一個(gè)參數(shù)控制輸入數(shù)據(jù)節(jié)點(diǎn)的稀疏性以進(jìn)行評(píng)估; 范圍從值1(填充所有輸入)到值2(僅填充兩個(gè)輸入中的一個(gè)),等等。

事實(shí)證明,該特定基準(zhǔn)是突出一些潛在改進(jìn)的非常有用的工具。

將比較基準(zhǔn)設(shè)置為Drools版本7.23.0。最終,使用DROOLS-4204實(shí)現(xiàn)的第一個(gè)優(yōu)化專注于在評(píng)估FEEL表達(dá)式的同時(shí)改善上下文處理,并證明可提供約3倍的改進(jìn),而使用DROOLS-4266進(jìn)行的進(jìn)一步優(yōu)化則專注于特定決策表輸入子句的用例表明,在DROOLS-4204的基礎(chǔ)上,附加的?2倍改進(jìn)。

我們還在下圖中收集了這些度量。

該圖突出顯示了當(dāng)稀疏因子等于1時(shí)(填充所有輸入時(shí))的復(fù)合改進(jìn); 這是一個(gè)非常重要的結(jié)果,因?yàn)閷?shí)際上它確實(shí)代表了原始用例中的主要 “快樂路徑”場(chǎng)景。

換句話說,與在相同的用例上運(yùn)行相比,我們實(shí)現(xiàn)了約6倍的改進(jìn)

7.23.0。最終版 我在這里學(xué)到的教訓(xùn)是,在可能的情況下,始終努力進(jìn)行此類復(fù)合改進(jìn),因?yàn)樗鼈兇_實(shí)可以彼此疊加,以獲得更大的效果!

為了完整起見,我們使用以下度量重復(fù)分析,其稀疏因子等于2(實(shí)際上每2個(gè)輸入填充1個(gè))和50個(gè)(實(shí)際上每50個(gè)輸入填充1個(gè)),并進(jìn)行以下測(cè)量:

結(jié)果表明,對(duì)于等于2的稀疏因子,優(yōu)化也很重要,但隨著該因子的增加,相關(guān)的改進(jìn)并不明顯-這是可以預(yù)期的,因?yàn)闆Q策節(jié)點(diǎn)評(píng)估對(duì)整體執(zhí)行邏輯的影響現(xiàn)在變得不那么重要了。

為了完整起見,還對(duì)包含多個(gè)規(guī)則行的單個(gè)決策表使用了另一個(gè)已經(jīng)存在的基準(zhǔn)進(jìn)行分析:

結(jié)果表明,這些代碼更改從整體上來看仍然可以提供相關(guān)的改進(jìn); 雖然顯然不相同幅度為原來使用-情況。 這是另一項(xiàng)重要檢查,以確保這些改進(jìn)不適合特定用例。

結(jié)論

以Drools版本7.23.0.Final為基準(zhǔn),以及包含DMN模型和許多待評(píng)估決策節(jié)點(diǎn)的參考基準(zhǔn),我們實(shí)施了多項(xiàng)優(yōu)化,這些優(yōu)化一旦組合在一起,就可以使該特定項(xiàng)目的總速度提高約6倍用例!

我希望這是一篇有趣的文章,以強(qiáng)調(diào)要獲得更好性能的一些方面; 讓我們知道您的想法和反饋。

您現(xiàn)在已經(jīng)可以從Drools的最新版本中受益于這些Kie DMN開源引擎的改進(jìn)!

翻譯自: https://www.javacodegeeks.com/2019/08/drools-dmn-performance-improvements.html

drools dmn

總結(jié)

以上是生活随笔為你收集整理的drools dmn_Drools DMN最新开源引擎性能改进的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。