Hi Jess experts,

We use Jess in a multi-threaded environment and have experienced some
performance degradation when going from a single thread to multiple
threads.
Our implementation uses the Slot Specific feature. 

Using a Java profiler, HashCodeComputer.isValueObject() stood out as one
of the main contributing factors, if not the most likely,  to the
degradation.
This method is synchronized using the static List m_nonValueClasses
member. The averege time of this method execution is
0,2022 microsec for one thread and 1,2192 microsec for two threads.
Basically, 0.2 microsec for one threads and 1 microsec for 2 and 4
threads.
There are hundreds of thousands of these calls for a single Rete.run.

Is it possible that HashCodeComputer.isValueObject() has such an effect
on scalability and performance?
If so, what can be done about it?

I am looking forward to hearing any feedback.

Son Nguyen

Reply via email to