Can you break down this performance into 2 steps?

1. COMPILE: this is the step where textual information is parsed and compiled into binary data. This is done by the PackageBuilder.addPackageFromDrl() method.

2. RETE BUILDING: this is the step where the binary data is assembled into the rete network. This is done by RuleBase.addPackage() method.

    These two processes are mostly independent and it would be good to know what is the relative time spent in each.

    After that, we will need to get a few rule samples from you with a test case so that we can investigate.


2009/4/17 Christian Nedregĺrd <>
Thank you for the quick reply and the tip Ingomar.

Since our rules are template based I was able to merge them into 30 drls (850 before). This gave a 30% perfomance improvement, but we are still not able to compile more than 2 rules per second. I also tried to execute in with jdk 1.6.0_03 instead of 1.4.2_11. This only gave a small performance increase.

We are also seing the same slow performance in our production environment wich is JDK 1.4.2_11 on Solaris, so this is not a OS spesific problem.

I addition I tried to run the compilation in a dedicated process with 1G available memory with no performance increase, so it is not related to memory restrictions either.

From our experimentation I see that the compile time, unsurpisingly, is directly connectet to the complexity of the rule. If i strip away he LHS and RHS of the rules and only keep the imports and global definitions I am able to get a compilation throughput at 24 rules per second.

Are your rules much simpler than ours? Can you think of any other reason why you are seeing a much better compiler throughput?


On Fri, Apr 17, 2009 at 10:34 AM, Ingomar Otter <> wrote:
with our app, we see a compile performance which is at least an order of magnitude higher.
I would assume that in your case the extreme fine granularity of your DRLs may be slowing things down.
Have you tried to consolidate these in bigger but fewer DRls?

If you need that granualarity, you still have the option of joining these together before running it with the help of perl and the likes.

rules-users mailing list

rules-users mailing list

 Edson Tirelli
 JBoss Drools Core Development
 JBoss, a division of Red Hat @