[rules-users] Drools compiler memory & stateless sessions?

Edson Tirelli tirelli at post.com
Wed Nov 26 15:10:24 EST 2008


   Ok, lets start with a simple thing:

4128 instances <http://carrot.gaiam.com:7000/instances/0x2aaad6103ff0> of class
org.drools.rule.Pattern <http://carrot.gaiam.com:7000/class/0x2aaad6103ff0>

   I can't see how 16 rules can create that many patterns. Are you sure you
are not recompiling/recreating your rulebase multiple times? If not, then we
may have a serious problem...

   []s
   Edson

2008/11/26 Kris Nuttycombe <kris.nuttycombe at gmail.com>

> Hi, all,
>
> I'm encountering significant problems with running out of memory when
> executing a small ruleset (only 16 rules, < 100 facts). I've run jmap on the
> process (which has previously spawned multiple stateless sessions in
> parallel) and it looks like Drools, and specifically the Eclipse jdt
> compiler, is seriously eating up memory. The code calling the is fairly
> simple; one of the initial facts is an accumulator that I refer to later:
>
>         StatelessSession session = ruleBase.newStatelessSession();
>         session.execute(initialFact, accumulator);
>
>         accumulator.doSomething();
>
> where ruleBase is a shared instance, and initialFact is a base fact that is
> expanded during rules processing. Is there something I should be doing to
> dispose the session after use to release the objects created by the drools
> compiler after use? I'm using a shared RuleBase, and I'm wondering whether
> it is somehow keeping references around. Are these sorts of object counts to
> be expected?
>
> Thanks,
>
> Kris
> Instance Counts for All Classes (excluding platform) 104827 instances<http://carrot.gaiam.com:7000/instances/0x2aaacf5646f8>of class
> net.jxta.impl.document.LiteXMLElement$charRange<http://carrot.gaiam.com:7000/class/0x2aaacf5646f8>
> 26806 instances <http://carrot.gaiam.com:7000/instances/0x2aaacf5631e8> of
> class net.jxta.impl.document.LiteXMLElement$tagRange<http://carrot.gaiam.com:7000/class/0x2aaacf5631e8>
> 26733 instances <http://carrot.gaiam.com:7000/instances/0x2aaad66ea7f0> of
> class org.eclipse.jdt.internal.compiler.lookup.MethodBinding<http://carrot.gaiam.com:7000/class/0x2aaad66ea7f0>
> 17366 instances <http://carrot.gaiam.com:7000/instances/0x2aaad66e3c88> of
> class [Lorg.eclipse.jdt.internal.compiler.lookup.TypeBinding;<http://carrot.gaiam.com:7000/class/0x2aaad66e3c88>
> 12412 instances <http://carrot.gaiam.com:7000/instances/0x2aaacf032560> of
> class com.sun.enterprise.loader.EJBClassLoader$SentinelInputStream<http://carrot.gaiam.com:7000/class/0x2aaacf032560>
> 10974 instances <http://carrot.gaiam.com:7000/instances/0x2aaad5504450> of
> class org.apache.commons.collections.SequencedHashMap$Entry<http://carrot.gaiam.com:7000/class/0x2aaad5504450>
> 8683 instances <http://carrot.gaiam.com:7000/instances/0x2aaad68c3840> of class
> org.eclipse.jdt.internal.compiler.codegen.CachedIndexEntry<http://carrot.gaiam.com:7000/class/0x2aaad68c3840>
> 7708 instances <http://carrot.gaiam.com:7000/instances/0x2aaacf55e9d8> of class
> net.jxta.impl.document.LiteXMLElement<http://carrot.gaiam.com:7000/class/0x2aaacf55e9d8>
> 7450 instances <http://carrot.gaiam.com:7000/instances/0x2aaad5c4b6c0> of class
> org.hibernate.engine.CollectionKey<http://carrot.gaiam.com:7000/class/0x2aaad5c4b6c0>
> 6836 instances <http://carrot.gaiam.com:7000/instances/0x2aaaced3c3f8> of class
> org.netbeans.modules.schema2beans.AttrProp<http://carrot.gaiam.com:7000/class/0x2aaaced3c3f8>
> 6271 instances <http://carrot.gaiam.com:7000/instances/0x2aaad6642d18> of class
> org.eclipse.jdt.internal.compiler.lookup.FieldBinding<http://carrot.gaiam.com:7000/class/0x2aaad6642d18>
> 5643 instances <http://carrot.gaiam.com:7000/instances/0x2aaad6796890> of class
> org.eclipse.jdt.internal.compiler.ast.MessageSend<http://carrot.gaiam.com:7000/class/0x2aaad6796890>
> 4928 instances <http://carrot.gaiam.com:7000/instances/0x2aaad68a6018> of class
> org.eclipse.jdt.internal.compiler.util.HashtableOfObject<http://carrot.gaiam.com:7000/class/0x2aaad68a6018>
> 4895 instances <http://carrot.gaiam.com:7000/instances/0x2aaad66e3fa8> of class
> [Lorg.eclipse.jdt.internal.compiler.lookup.ReferenceBinding;<http://carrot.gaiam.com:7000/class/0x2aaad66e3fa8>
> 4546 instances <http://carrot.gaiam.com:7000/instances/0x2aaad669f968> of class
> org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding<http://carrot.gaiam.com:7000/class/0x2aaad669f968>
> 4472 instances <http://carrot.gaiam.com:7000/instances/0x2aaad687a0a8> of class
> [Lorg.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding;<http://carrot.gaiam.com:7000/class/0x2aaad687a0a8>
> 4128 instances <http://carrot.gaiam.com:7000/instances/0x2aaad6103ff0> of class
> org.drools.rule.Pattern<http://carrot.gaiam.com:7000/class/0x2aaad6103ff0>
> 3899 instances <http://carrot.gaiam.com:7000/instances/0x2aaacf493c90> of class
> net.jxta.impl.id.UUID.UUID<http://carrot.gaiam.com:7000/class/0x2aaacf493c90>
> 3867 instances <http://carrot.gaiam.com:7000/instances/0x2aaad5c416c0> of class
> org.hibernate.engine.EntityEntry<http://carrot.gaiam.com:7000/class/0x2aaad5c416c0>
> 3731 instances <http://carrot.gaiam.com:7000/instances/0x2aaad5c54d88> of class
> org.hibernate.collection.PersistentSet<http://carrot.gaiam.com:7000/class/0x2aaad5c54d88>
> 3685 instances <http://carrot.gaiam.com:7000/instances/0x2aaad66ca420> of class
> org.eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding<http://carrot.gaiam.com:7000/class/0x2aaad66ca420>
> 3360 instances <http://carrot.gaiam.com:7000/instances/0x2aaad6c12770> of class
> org.drools.reteoo.SingleTupleSinkAdapter<http://carrot.gaiam.com:7000/class/0x2aaad6c12770>
> 3266 instances <http://carrot.gaiam.com:7000/instances/0x2aaacf543dc0> of class
> net.jxta.document.MimeMediaType<http://carrot.gaiam.com:7000/class/0x2aaacf543dc0>
> 3264 instances <http://carrot.gaiam.com:7000/instances/0x2aaad6370288> of class
> org.drools.spi.PatternExtractor<http://carrot.gaiam.com:7000/class/0x2aaad6370288>
> 3163 instances <http://carrot.gaiam.com:7000/instances/0x2aaad5f8b990> of class
> org.apache.axis.encoding.TypeMappingImpl$Pair<http://carrot.gaiam.com:7000/class/0x2aaad5f8b990>
> 3137 instances <http://carrot.gaiam.com:7000/instances/0x2aaad5caad98> of class
> org.hibernate.collection.PersistentBag<http://carrot.gaiam.com:7000/class/0x2aaad5caad98>
> 2881 instances <http://carrot.gaiam.com:7000/instances/0x2aaad681b000> of class
> org.eclipse.jdt.internal.compiler.lookup.MethodScope<http://carrot.gaiam.com:7000/class/0x2aaad681b000>
> 2688 instances <http://carrot.gaiam.com:7000/instances/0x2aaad6161860> of class
> org.drools.base.ClassFieldExtractor<http://carrot.gaiam.com:7000/class/0x2aaad6161860>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>


-- 
 Edson Tirelli
 JBoss Drools Core Development
 JBoss, a division of Red Hat @ www.jboss.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20081126/b8bb35f7/attachment.html 


More information about the rules-users mailing list