Drools 规则写作最佳实践

Luc*_*ano 5 rule-engine drools rete

我一直在阅读一篇关于 Drools 性能的文章(JBoss Drools \xe2\x80\x93 Performance and Memory Internals),它解释了如何创建 Rete 树和节点,Drools 如何索引它们,以及为什么增加 Drools 中的对象数量几乎不会影响执行它所花费的总时间。\n以智能方式编写的规则可以大大减少 Rete Tree 中的节点数量,从而进一步提高性能。

\n\n

我想知道是否有 Drools 规则编写最佳实践,这样我就可以以一种可以尽快执行的方式编写它们。

\n\n

谢谢。

\n

ali*_*sal 4

我可以列出几个...

  • 将最严格的条件放在最上面
  • 在您的规则中使用相同的条件顺序
  • 除非必要,否则不要使用 eval。
  • 将评估放在条件的底部
  • 不要在后果中使用 if 语句
  • 使用布尔值的快捷方式会导致 Drools 5.4 上的 JIT 错误,因此请不要使用House ( windowOpen == true )它们House ( windowOpen )
  • 不要使用salience,在大多数情况下它会导致维护地狱。

当然它并不完整,只是我的2美分......