See below.
2011/12/26 Zhuo Li milanello1...@gmail.com
Hi, team,
** **
I have some quick questions here regarding performance best practices of
rule writing. See below two pieces of rules:
** **
Rule “1”
Salience 100
No-loop true
When $txn : data(sourceid ==
5txnjustify==”995”eval(creditOption($txn)==1)eval(isGCSwitch($txn))isCurrencyEquals($txn)==0compareToPostThreshold($txn)==2);
Then
…
End
** **
Rule “2”
Salience 100
No-loop true
When $txn : data(sourceid ==
5txnjustify==”995”eval(creditOption($txn)==1)eval(isGCSwitch($txn))isCurrencyEquals($txn)==0compareToPostThreshold($txn)==1);
Then
…
End
** **
Questions:
**1. **Will I gain better performance if I put the rule
differentiator condition “compareToPostThreshold($txn)==2” at the beginning
of both rule 1 and 2?
One kind pf Rete optimization is based on evaluating common constraints
once, therefore: no.
**2. **I saw salaboy’s video claiming that to avoid using eval() in
the rule. Do we have any alternative way to do that from a performance
consideration
Constraints based on fields using == are best. Other things may result in
eval-like evaluations anyway. Most of the time, it isn't eval that causes
performance setbacks.
or I’d better collect/ prepare all the data before I send them into the
session?
Not clear what you mean by this, but if you can provide attributes that
lend themselves to straightforward constraints it might be worthwhile
considering some up-front processing of facts.
**3. **What’s you guys’ naming convention for rule’s salience?
Not clear what you mean by that.
-W
** **
PS: my Drools version is 5.2.0.
** **
Best regards
Abe
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users