Hi,

I want to throw this for discussion. I wrote a bad rule and tried to assert
facts which generate huge number of matches. I assumed the performance would
be similar or atleast jess would outperform clips for large number of facts.
So i used the following deffunction to assert the facts and the defrule to
get them in to rete. (The benchmark here is only for asserting)

(deffunction assert-facts1 (?n)
        (printout t "asserting " ?n " facts" crlf )
        (while (> ?n 0) (assert (x ?n) (y ?n) (z ?n)) (bind ?n (- ?n 1)))
        (printout t "asserting facts Done" crlf)
)

(defrule foo1 (x ?x) (y ?y) (z ?z) => (printout t "I am done"))

Its done on a dual processor linux machine with 256MB RAM. Quite
surprisingly the performance difference is large.

N=50, CLIPS = 2-3 secs, Jess = 140 secs 
N=100, CLIPS = 6 secs, Jess = 17+ mins (almost million+ matches generated
here with  N=100)

When N=150 CLIPS returned in 30 secs.

Does it mean that N=150 still small N even if its generating huge number of
matches and as we know assertion is a computational intensive task? 

retracting all those facts or even a reset is taking considerably more time
than asserting.

Like to hear experts opinions/views on this.

Thanks in Advance
Satish.

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