See below.<br><br><div class="gmail_quote">2011/12/26 Zhuo Li <span dir="ltr"><<a href="mailto:milanello1998@gmail.com">milanello1998@gmail.com</a>></span><br><blockquote class="gmail_quote" style="border-left:1px solid rgb(204,204,204);margin:0pt 0pt 0pt 0.8ex;padding-left:1ex">
<div link="blue" vlink="purple" lang="ZH-CN">
<div>
<p class="MsoNormal"><span lang="EN-US">Hi, team,<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">I have some quick questions here regarding
performance best practices of rule writing. See below two pieces of rules:<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">Rule “1”<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"> Salience
100<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"> No-loop
true<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"> When
$txn : data(sourceid == 5&&txnjustify==”995”&&eval(creditOption($txn)==1)&&eval(isGCSwitch($txn))&&isCurrencyEquals($txn)==0&&compareToPostThreshold($txn)==2);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"> Then<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"> …<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"> End<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">Rule “2”<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"> Salience
100<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"> No-loop
true<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"> When
$txn : data(sourceid == 5&&txnjustify==”995”&&eval(creditOption($txn)==1)&&eval(isGCSwitch($txn))&&isCurrencyEquals($txn)==0&&compareToPostThreshold($txn)==1);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"> Then<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"> …<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"> End<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">Questions:<u></u><u></u></span></p>
<p style="margin-left:18pt"><u></u><span lang="EN-US"><span>1.<span style="font-family:"Times New Roman";font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal">
</span></span></span><u></u><span lang="EN-US">Will I gain better performance
if I put the rule differentiator condition “compareToPostThreshold($txn)==2”
at the beginning of both rule 1 and 2? </span></p></div></div></blockquote><div>One kind pf Rete optimization is based on evaluating common constraints once, therefore: no.<br> </div><blockquote class="gmail_quote" style="border-left:1px solid rgb(204,204,204);margin:0pt 0pt 0pt 0.8ex;padding-left:1ex">
<div link="blue" vlink="purple" lang="ZH-CN"><div><p style="margin-left:18pt"><span lang="EN-US"><u></u><u></u></span></p>
<p style="margin-left:18pt"><u></u><span lang="EN-US"><span>2.<span style="font-family:"Times New Roman";font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal">
</span></span></span><u></u><span lang="EN-US">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</span></p></div></div></blockquote><div>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.<br>
<br></div><blockquote class="gmail_quote" style="border-left:1px solid rgb(204,204,204);margin:0pt 0pt 0pt 0.8ex;padding-left:1ex"><div link="blue" vlink="purple" lang="ZH-CN"><div><p style="margin-left:18pt"><span lang="EN-US"> or I’d better collect/
prepare all the data before I send them into the session?</span></p></div></div></blockquote><div>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.<br>
</div><blockquote class="gmail_quote" style="border-left:1px solid rgb(204,204,204);margin:0pt 0pt 0pt 0.8ex;padding-left:1ex"><div link="blue" vlink="purple" lang="ZH-CN"><div><p style="margin-left:18pt"><span lang="EN-US"><u></u><u></u></span></p>
<p style="margin-left:18pt"><u></u><span lang="EN-US"><span>3.<span style="font-family:"Times New Roman";font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal">
</span></span></span><u></u><span lang="EN-US">What’s you guys’
naming convention for rule’s salience?</span></p></div></div></blockquote><div>Not clear what you mean by that.<br><br>-W<br> </div><blockquote class="gmail_quote" style="border-left:1px solid rgb(204,204,204);margin:0pt 0pt 0pt 0.8ex;padding-left:1ex">
<div link="blue" vlink="purple" lang="ZH-CN"><div><p style="margin-left:18pt"><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">PS: my Drools version is 5.2.0.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">Best regards<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">Abe<u></u><u></u></span></p>
</div>
</div>
<br>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br></blockquote></div><br>