On 29 July 2011 23:02, Ryan R. <ryanrolland@gmail.com> wrote:

As a follow up question, do you think Drools and Rules Engines in general
are the way to go for operations that distort object field values one object
at a time? Would an embedded scripting language better fit this usecase?


The first Chapter of the "Expert" manual has the sections "Why (not) to use a rule engine", and that's probably the best one can do for a remote diagnosis.

 
I also did some additional benchmarking with virtually the same stateful
session setup.

The below plot shows execution time of the rules engine for Java POJO
(static) and MessagePack (Dynamic) Messages from 1000 - 200K messages in
step sizes of 1000 messages. I was surprised to see the discrete jumps of 1
second in execution time. I was also surprised to see that on the low end
execution time for a few thousand messages was 1 second? That seemed slow
and why the discrete jumps?

I'd suspect that the 1 second for 1k is some basic initialization that's included in the measured interval. But I don't see how the time can remain constant over wide ranges. (I take it that you were timing the overall execution time for doing n*1000 messages.)

If MessagePack requires more memory than Pojo, the earlier jump to 2sec may be due to garbage collection.

How did you obtain these times?
-W

 

Sorry no label on plot:

Y Axis is Exec time in seconds
X Axis is Number of Messages (Step Size 1K messages)

http://drools.46999.n3.nabble.com/file/n3210745/WithPayloadNoFieldRemoval.jpg

Ryan R.

--
View this message in context: http://drools.46999.n3.nabble.com/Stateful-vs-Stateless-Session-Performance-tp3208057p3210745.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users