2011-06-30 52 views
3

規則引擎是如何評估的?你測試什麼,看它是否表現良好?每單個規則執行毫秒數?規則的複雜性?如果是「每個規則的時間」,什麼時候被認爲是好的/壞的?謝謝!業務規則引擎的預期性能

+0

哇......你甚至沒有列出你使用的是什麼技術。 – Steve

+0

.NET。但它真的很重要嗎? – MTG

+0

1)時間:最關鍵 2)複雜性處理 3)空間效率 4)它有多完整?完成我的意思是它總是返回理論預期的結果。 – doNotCheckMyBlog

回答

1

規則引擎的一個主要賣點是速度。通常編譯你的規則,而不是解釋它們,否則用簡單的腳本語言編寫規則會不會更容易?規則不應該採取更多的幾個女士。

+0

謝謝。那麼,我是否可以假設,對於具有隨機數據的真實事實對象而言,相當複雜的AND COMPILED單條規則執行時間的期望值平均大約爲2毫秒? – MTG

+1

這實際上取決於很多因素,比如硬件,以及你的域對象的樣子,以及你的意思是「相當複雜」。如果在你的規則中,你沒有網絡訪問權限和磁盤訪問權限,並且沒有非平凡的循環,那麼我會說是。如果您訪問規則服務器需要網絡呼叫,顯然這會產生巨大的影響。通常你會有很多衝動,每個都需要很短的時間。這裏真的沒有魔法,它只是一個代碼生成器。如果你手工編碼,規則需要多長時間?問問你自己會是一個很好的問題。 –

+0

謝謝。這幾乎是我所期待的。 – MTG

0

這一切都取決於你想評估什麼,什麼對你最重要。

如果對規則引擎的調用的純執行時間是最重要的,那麼您應該使用以與您預期相似的方式設計的規則集運行測試。業務規則項目的結構,一致性和複雜性可能因項目而異。因此,不可能就執行時間做出一般性陳述。考慮一個擁有5000個非常統一的規則的項目,而不是具有100個複雜且相互依賴的規則的項目。不同的引擎會以不同的速度處理這些場景。規則引擎處理選擇符合條件的執行規則的方式是決定性能的另一個因素。

業務規則管理系統(BRMS)的另一個重要部分是易於開發,更改和維護規則。無論是否有適用於規則治理,規則生命週期管理,自動化測試模擬或業務用戶簡化前端的系統。