Hi Seth,

Thanks for the pointer to YourKit. While profiling hasn't provided any
direct answers, it has helped rule out some things such as gc
configuration (not a problem, with each service request taking on
average 10ms in gc). What is happening is that some parts of the jess
codebase, related to comparing values while evaluating the LHS of rules
and updating facts, take longer to execute on linux (with faster
hardware) than they do on windows, and it seems to be related to the jvm
itself. Our best guess is that it's related to this bug:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6329104

Even though our server performance seems to be related to a jvm bug, I
believe profiling also showed that we're getting a lot of partial
matches. As we (should) all know, eliminating those can make a big
difference and I will be spending some effort there.

In answer to your questions about our system: it runs stateful with lazy
fetching of needed facts from a database via backward chaining. For
nearly all service requests the db is not accessed during the request
and performance testing is done in this context.

thanks,

dave 

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Seth Ladd
Sent: Friday, March 03, 2006 6:16 PM
To: [email protected]
Subject: Re: JESS: performance diff win vs linux

On 3/3/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]>
wrote:
> I'm getting significantly different performance on windows, where I do

> development, compared to linux, where we deploy. On linux, it's taking

> significantly longer for my rules to run than it does on windows.
> Details are:

Just a thought, but are you sure it's Jess?  Have you profiled it,
determining that the slowness is in fact Jess's fault?  To be sure, I
recommend using YourKit.  It's a very good profiler, and works well with
Tomcat.  It will very quickly tell you where the slowness is inside the
Java app.

What other differences are there between production and development? 
Different database driver?  Missing index on the database?  Firewall
rules?  DNS issues?

Hope that helps, it sounds like it might be something external to your
app.  Actually, have you tried zipping up your development Tomcat and
running it in production?

Good luck!
Seth


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


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

Reply via email to