[rules-users] Slow compilation (4h) for a single rule

Wolfgang Laun wolfgang.laun at gmail.com
Tue Jul 24 07:57:20 EDT 2012


There are 26 patterns Number(). Now I don't know how many facts of
that type you have, but this sequence will produce all combinations of
all available facts. (This is the worst example of this anti-pattern
I've seen.)

The or-ed evals will try to create parallel nodes in the network, and
the not should guarantee that none of those exists.

I'm not sure what the rule should actually ascertain. Could you
provide a simple example, using 3 numbers, describing verbally or by a
regular boolean expression when the rule should fire?

E.g. "it should fire if there is one Number != 1, another Number < 1
and a third Number != 1"

-W



On 24/07/2012, Esteban Aliverti <esteban.aliverti at gmail.com> wrote:
> As far as I remember, there were some fixes around compilation time for
> edge cases in 5.4. Could you please give a try to 5.4 or even 5.5-SNAPSHOT?
>
> Best Regards,
>
> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
>
> Esteban Aliverti
> - Blog @ http://ilesteban.wordpress.com
>
>
> On Tue, Jul 24, 2012 at 1:11 PM, Wolfgang Laun
> <wolfgang.laun at gmail.com>wrote:
>
>> On 24/07/2012, fx242 <drools at fx242.com> wrote:
>> > Hi,
>> >
>> >  This single
>> > rule was taking all the 4h to compile!
>> > I'm using DROOLS 5.2 Final.
>> > The rule example below samples the problem (don't mind the nonsense
>> > Number()
>> > conditions):
>> >
>>
>> Well, I do mind the "nonsense Number()". There's no point in
>> discussing this if you don't post an exact image of your rule.
>>
>> -W
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>


More information about the rules-users mailing list