【问题标题】:Business Rules Engine expected performance业务规则引擎预期性能
【发布时间】:2011-06-30 02:40:32
【问题描述】:

如何评估规则引擎?您测试什么以查看它是否执行正常?每个规则执行的毫秒数?规则的复杂性?如果是“每个规则的时间”,什么时间被认为是好/坏?谢谢!

【问题讨论】:

  • 哇...您甚至没有列出您正在使用的技术。
  • .NET。但这真的重要吗?
  • 1) 时间:最关键 2) 复杂性处理 3) 空间效率 4) 它有多完整?完整我的意思是它总是按照理论上的预期返回结果。
  • @krio。什么是引擎的“复杂性处理”?
  • 它是关于用最复杂的查询和时间效率测试你的引擎

标签: business-rules rule-engine


【解决方案1】:

规则引擎的一个主要卖点是速度。通常编译你的规则,而不是解释它们,否则用简单的脚本语言编写规则不是更容易吗?规则不应超过几毫秒。

【讨论】:

  • 谢谢。那么,我是否可以假设对于一些具有随机数据的现实生活中的事实对象,相当复杂且已编译的单个规则的执行时间平均约为 2 毫秒?
  • 这实际上取决于许多因素,例如您的硬件、域对象的外观以及“相当复杂”的确切含义。如果按照您的规则,您没有网络访问权限,也没有磁盘访问权限,也没有重要的循环,那么我会说是的。如果您访问规则服务器需要网络调用,那么显然这将产生巨大影响。通常你会有很多 rulse,每一个都需要很短的时间。这里真的没有魔法,它只是一个代码生成器。如果您手动编码,该规则需要多长时间?问自己是个好问题。
  • 谢谢。这几乎就是我想要的。
【解决方案2】:

这完全取决于您要评估什么以及对您最重要的是什么。

如果调用规则引擎的纯执行时间是最重要的,那么您应该使用设计方式与您预期类似的规则集运行测试。业务规则项目的结构、统一性和复杂性可能因项目而异。因此,不可能对执行时间做出一般性陈述。考虑一个有 5000 个非常统一的规则的项目,而不是一个有 100 个复杂且相互依赖的规则的项目。不同的引擎将以不同的速度处理这些场景。规则引擎处理选择执行的合格规则的方式是决定性能的另一个因素。

业务规则管理系统 (BRMS) 的另一个重要部分是易于开发、更改和维护规则。是否有用于规则治理、规则生命周期管理、自动化测试和模拟的系统,或用于业务用户的简化前端。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-26
    • 2010-10-21
    • 2014-10-23
    • 2011-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多