Often memory use has nothing to do with how many facts or rules you have, but on the structure of the Rete network you've built with your rules, and in particular, how many partial matches it generates. Have a look at these links to get an idea of what to look out for:

http://www.jessrules.com/jess/FAQ.shtml#Q12
http://www.jessrules.com/jess/docs/71/rete.html#efficiency




On Sep 14, 2009, at 9:42 AM, jo wrote:

Hi

I got following error, which surprises me as I try to keep the amount of facts to a minimum.

Can I detect this condition *before* it is about to happen ? Any ideas on how to prevent this ?

30m is really not that long :(

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
       at jess.factory.FactoryImpl.newToken(FactoryImpl.java:27)
       at jess.Node2.tokenMatchesLeft(Node2.java:326)
       at jess.Node2.doRunTestsVaryRight(Node2.java:314)
       at jess.Node2.doRunTestsVaryRight(Node2.java:299)
       at jess.Node2.runTestsVaryRight(Node2.java:292)
       at jess.Node2.callNodeLeft(Node2.java:156)
       at jess.NodeJoin.passAlong(NodeJoin.java:99)
       at jess.Node2.tokenMatchesLeft(Node2.java:328)
       at jess.Node2.doRunTestsVaryRight(Node2.java:314)
       at jess.Node2.doRunTestsVaryRight(Node2.java:299)
       at jess.Node2.runTestsVaryRight(Node2.java:292)
       at jess.Node2.callNodeLeft(Node2.java:156)
       at jess.NodeJoin.passAlong(NodeJoin.java:99)
       at jess.Node2.tokenMatchesLeft(Node2.java:328)
       at jess.Node2.doRunTestsVaryRight(Node2.java:314)
       at jess.Node2.doRunTestsVaryRight(Node2.java:299)
       at jess.Node2.runTestsVaryRight(Node2.java:292)
       at jess.Node2.callNodeLeft(Node2.java:156)
       at jess.Node1RTL.passAlong(Node1RTL.java:46)
       at jess.Node1RTL.callNodeRight(Node1RTL.java:28)
       at jess.Node1.passAlong(Node1.java:49)
       at jess.Node1MTELN.callNodeRight(Node1MTELN.java:35)
       at jess.Node1.passAlong(Node1.java:49)
       at jess.Node1TECT.callNodeRight(Node1TECT.java:40)
       at jess.NodeRoot.passAlong(NodeRoot.java:39)
       at jess.NodeRoot.callNodeRight(NodeRoot.java:14)
       at jess.FactList.processToken(FactList.java:31)
       at jess.FactList._assert(FactList.java:210)
       at jess.FactList.assertFact(FactList.java:181)
       at jess.Rete.assertFact(Rete.java:548)
       at jess.FactFunctions$Assert.call(FactFunctions.java:50)
       at jess.FunctionHolder.call(FunctionHolder.java:35)

real    30m12.867s
user    27m48.316s




tx
J





--------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [email protected]'
in the BODY of a message to [email protected], NOT to the list
(use your own address!) List problems? Notify [email protected] .
--------------------------------------------------------------------

---------------------------------------------------------
Ernest Friedman-Hill
Informatics & Decision Sciences, Sandia National Laboratories
PO Box 969, MS 9012, Livermore, CA 94550
http://www.jessrules.com







--------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [email protected]'
in the BODY of a message to [email protected], NOT to the list
(use your own address!) List problems? Notify [email protected].
--------------------------------------------------------------------

Reply via email to