I have a ruleset that looks like this:
(deftemplate MAIN::R 
   (slot _r (type OBJECT)) 
   (slot a (type STRING)))
(defrule rule-0 (R (a "a0") (_r ?o)) => (?o a 0))
..
(defrule rule-499999 (R (a "a499999") (_r ?o)) => (?o a 499999))

The fact that the numeric part of the rule name and the int argument
in the method call are the same is not a coincidence, but the particular
value of the "a" slot that I'm matching on is because of the data I
generated the ruleset from, not because the rules will always look like
this.

I seem to be spending a lot of time asserting facts, the main time cost
of which I assume to be in pattern matching. When I have 5,000 rules,
it takes about 32 seconds to assert 100,000 facts. When I have 20,000
rules, it takes about 160 seconds. This worse-than-linear degradation
continues as I add rules approaching my target of 500,000 rules (which
I haven't been able to run successfully yet).

Is there anything I can do to my ruleset to improve performance?
------------------------------------------------------------------------
<John S. Adair><[EMAIL PROTECTED]><It's turtles all the way down.>
------------------------------------------------------------------------


--------------------------------------------------------------------
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