can you provide your objects that you are using, and the whole rule file?
On 4/26/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>
> Dear user group:
>
> I have a queston about the performance of drools3.0.
> My only one rule is:
>
> rule "alarmdefine"
> no-loop true
> when
> #conditions
> alarm(reason:alarmreason, level:alarmlevel)
> alarmdefine(alarmreason==reason, alarmlevel!=level)
> then
> #actions
> alarm.setCounter();?
> end
>
> My eviroment: eclipse3.2M5, jdk1.4.2-03
> Testcode is :
>
> for(int i=1; i<1000; i++)
> {
> alarm malarm = new alarm();
> malarm.setAlarmreason(i);
> malarm.setAlarmlevel(1);
> malarm.setObjtype(1);
> malarm.setAlarmtype(1);
> workingMemory.assertObject( malarm );
> workingMemory.fireAllRules();
> }
>
> when alarmdefine exist 50000 record, execute time is 20s
> when alarmdefine exist 5000 recode, execute time is 2s
>
> Then I have done the same test with JESS, the rule is:
>
> (defrule alarm-cleared-all
> (alarm (alarmreason ?a) (alarmlevel ?x) )
> (alarmdef (alarmreason ?a) (alarmlevel ?y&:(<> ?y ?x)))
> =>
> (call alarm setCounter)
> )
>
> when alarmdefine exist 50000 record, execute time is only 0.2s
>
> Great difference! Why? What can I do?
>
> Thanks
> Wangwei
>