Okay cool, thanks for the advice. I think I have a much better idea of how the algorithm behind drools works now. So if I understand it right, the Rete Algorithm operates on pattern matching and nodes. Basically, Drools will create a node for every object inserted that is checked against a rule. If multiple objects of the same type are inserted, they can just share the same node. Also Drools keeps a hash table of comparisons of specific object elements so that if you had something like rule 1 activates when account.type = checking and rule 2 activates when account.type = savings, the fact would only propogate through relevant nodes. In that sense, Drools tries to match every inserted object against every rule, but it caches a lot of results of evaluations.
Therefore, if you insert a lot of the same object into Drools, the runtime will not increase that much since the nodes will already have been created and there will be a lot of node sharing. Also the evaluations will be cached for quick access. To answer your question, I used JunitPerf to do some preliminary testing on drools and I wanted to see if I could optimize it in any way. -- View this message in context: http://n3.nabble.com/Drools-Flow-Skipping-some-LHS-evaluations-at-time-of-insert-tp704324p706912.html Sent from the Drools - User mailing list archive at Nabble.com. _______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
