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