On Tue, May 11, 2010 at 2:55 PM, djb <dbrownell83@hotmail.com> wrote:

Hi Wolfgang,

I use one thread per StatefulKnowledgeSession... My machine has 2 cores, but
it will eventually be running on an 8 core beast, so i reckon this was a
good improvement.  I was just worried that I wouldn't be able to
simultaneously process multiple K-Sessions, but apparently, Drools doesn't
mind.  I'm pretty sure any machine with multiple cores supports parallel
java threads, no?

This is a Q for a Java guru (which I'm not), and may depend on the JVM and what not. Care
to provide details? Probably there's people on this list who might know. (Otherwise,
I have a good contact.)

 
-----
Regarding my Utilities method, eg.  isWithinTimePeriod("20100308",
"20090405", 1, "Y")

I can get about 5ms off by commenting out the eval, so it's not going to be
a big jump even if I fix it, but, well, I am using yyyyMMdd Strings, which
in the method, I sub-stringed, converted to ints, instantiated DateMidnight
objects, and compared using Joda-time daysBetween/monthsBetween/yearsBetween
methods.

My thought was that pre-converting to ints would help, so that each
ClaimLine has year/month/day int variables, and pass them in instead. (i.e.,
Saves 3 String.substring()'s, and 3 Integer.parseInt()).  but that actually
slowed it down a few milliseconds. (Maybe passing 6 params instead of 2?!)

You can treat 20100510 as an integer defining one date; all relations between
such numbers would hold as for the "true" dates - you just can't compute
durations (days between dates) by simple substraction.
 
I'm comparing two dates by an arbitrary period, like "2 days" or "1 month",
and need the framework of the Gregorian Calendar.  So, I don't think I can
do anything about this.  2 months is never guaranteed to be a set number of
milliseconds.  It all depends on the claim date, which is fact data, and
therefore variable.


I'm not sure how the other arguments in the call ("Y", 99) are related to rules
or facts, but a repeated test whether one date dx is between d1 and d2 where
d2 depends on d1 and a duration would certainly gain from computing d2
once.

-W