<div dir="ltr">Hello everyone,<br><br><br>Please allow me to briefly describe how our system works:<br><br>We use drools as an efficient matching layers - I have X rules, in the RHS of each rule I have a mark for each rule to signal that it has passed in the current context (There are by definition more then 1 contexts). After the first fireAllRules() has finished, and I have the data structure that allows me to query what rules have passed for each context I assert a &quot;Marker&quot; object, that allows Drools to continue filtering only for these contexts that I decide as valid to match attempts.<br>
<br>The end result, is that I have 2 fireAllRules called with some java code in between them.<br><br><br>In drools3 for 3 contexts I got the following resutls :<br><br>== Drools Section (Generic Call) : With default context settings, no HotSpot.<br>
RESULT::::::::&nbsp;&nbsp;&nbsp; avg: 33.9023(ms) for 1555 calls<br><br>Now in drools4 I&#39;m getting the following:<br><br>== Drools Section (Generic Call) : With default context settings, no HotSpot - Drools 4<br>RESULT::::::::&nbsp;&nbsp;&nbsp; avg: 37.4356(ms) for 1467 calls<br>
<br clear="all"><br><br>As I increase the context&#39;s number I&#39;m getting larger difference in results time.<br>Please note that HotSpot is disabled just for the test, to not JIT interference.<br><br>I&#39;ve disabled all evals in the drl files, to all is left is pure Drools syntax and yet It seems that the system works slower.<br>
<br>Please suggest what else I should be doing to optimize the drl files to work efficiently with Drools 4 engine.<br><br><br>Thank you,<br>Maxim.<br><br>-- <br>Cheers, <br>Maxim Veksler<br><br>&quot;Free as in Freedom&quot; - Do u GNU ?<br>

</div>