Just FYI, the array list is created once and reused with incremental
addition/removal of elements.

   The problem is that the engine does not know when you are done inserting
all the Post facts, so each post inserted is propagated down the network
with the cancellation and reactivation of the rule.

   This is one of those situations where a use of a control fact might be
recommended, if you are inserting Post facts in batches. E.g.:

rule X
when
     exists( AllPostsInserted() )
     $a : ArrayList(size > 0) from collect(Post());
then
...
end

   Edson


2012/2/13 Wolfgang Laun <wolfgang.l...@gmail.com>

> Repeatedly creating this ArrayList is bound to be O(n2).
>
> Why do you want the Post facts as a List? There may be better ways for
> achieving your goal.
>
> -W
>
>
>
> On 13 February 2012 20:49, Shur, Bob <robert.s...@hp.com> wrote:
>
>> I have a simple class Post { int id; ... }. I insert some number of them
>> as facts and then call ksession.execute(facts);
>>
>> The whole drl file (except for package and import statements) is:
>>
>> rule "collect"
>> when
>>        $a : ArrayList(size > 0) from collect(Post());
>> then
>>        System.out.println("Number of posts: " + $a.size());
>>        System.out.println("DONE");
>> end
>>
>> The time it takes to run is n-squared in the number of posts. For 4000,
>> 8000, 16000, 32000, 64000 posts the time is (in 1/10 seconds):
>>
>> 4, 14, 56, 220, 852
>>
>> Is this expected? Is there a better way for me to do the collect?
>>
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users@lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>


-- 
  Edson Tirelli
  JBoss Drools Core Development
  JBoss by Red Hat @ www.jboss.com
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to