I am not sure I understand what you are doing when you say:

> Every X seconds I collect the available facts and call fireAllRules() + dispose(), **always within the same session**.
(emphasis is mine)

   Compilation indeed uses more memory, but you can compile once and reuse the kbase. Also, if you are calling dispose, I guess you are running stateful sessions. Maybe you can give us a more detailed description of your session/data/application lifecycle?

   Edson


2010/3/30 Miguel Machado <mls.machado@gmail.com>
hi all,

I'm quite new to the drools rule engine and i've been using it for a project where i need to filter events and execute actions accordingly.

I'm currently running a DRL file and creating a stateful session from it, and then running 2/3 facts every time. Every X seconds I collect the available facts and call fireAllRules() + dispose(), always within the same session. The DRL file has circa 2160 rules declared (an external program is producing them), and i'm using the "no-loop", "lock-on-active", "activation-group" and "agenda-group" options on almost every one.

My main problem is that the software is consuming too much memory when it loads the rules to the knowledge base variable, it reaches +300Mb which is just not affordable in this project. Is there any way i can work around this? I've tried setting some configuration properties but to no avail. What techniques may i try in order to reduce memory load on drools startup? What would be the best approach for dealing with so many rules?

Anything would help, thanks in advance,

_ miguel


_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users



--
 Edson Tirelli
 JBoss Drools Core Development
 JBoss by Red Hat @ www.jboss.com