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