【问题标题】:JBPM 6 Performance concernJBPM 6 性能问题
【发布时间】:2015-09-25 18:33:45
【问题描述】:

我在 JBPM 中插入大量事实以进行规则匹配,一旦规则匹配,我就会执行所需的适当操作。事实的数量会很多,内存中有 20k 的事实大小 JBPM 需要以下时间来做以下事情:

Start Process - 3-4 seconds
Insert Fact - 4+ seconds
FireAllRules - 3-4 seconds.

有人可以帮我了解导致这些延迟的原因吗?

【问题讨论】:

    标签: drools jbpm


    【解决方案1】:

    启动该过程可能包括规则编译,这取决于 DRL 文件中的规则或代码行数。

    4+ 秒是由于对所有插入事实的所有规则条件的评估。当然,这不仅取决于事实的数量,还取决于左侧代码(条件)的复杂性。不检查规则就不能说 4+ 秒是否足够。

    您可以根据右侧代码(后果)轻松跟踪触发规则的含义。您已经对此进行了编码,并且可以使用事件侦听器非常轻松地对其进行监控。如果这太慢,请检查该代码的作用以及方式。

    【讨论】:

    • 提醒一下,在 Drools 6 中,fireAllRules() 还包括在 RETE(或者我应该说是 PHREAK?)算法中对 beta 网络的评估。
    • @EstebanAliverti 很高兴知道,谢谢。然而,这意味着 LHS 评估和 RHS 执行的单独时间不再简单(只要 RHS 无论如何都不会与 WM 内容混淆)。必须注册规则执行的第一个事件才能将 beta 网络评估与 RHS 执行分开,对吗?
    • 这实际上是一个很好的问题,我没有答案。我会再调查一下。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-08
    • 2015-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多