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