Thanks. That’s interesting.
On May 15, 2017, at 10:04 AM, Tomaž Cerar
<tomaz.cerar(a)gmail.com> wrote:
On Mon, May 15, 2017 at 4:13 PM, Brian Stansberry <brian.stansberry(a)redhat.com>
wrote:
So why does adding two more make such a big difference?
Main reason is that this two threads load most of later required classes which can later
be quickly loaded from multiple parallel threads.
Currently concurrency causes that 8 -16 threads (on 4-8 logical core systems) try to load
same classes at same time.
this leads to lots of contention as result. "preloading" some of this classes
reduces contention.
Looking at the list in the current "hack impl" there are lots of classes that
don't need to be there, stuff like subsystem parsers which are only loaded once in any
case.
Main pressure is on classes from jboss-modules, controller, server & xml parsers
modules, all others are not as problematic.
This is also reason why lots of contention is happening on JDK classes as well as those
are shared between all parts of server code.
--
Brian Stansberry
Manager, Senior Principal Software Engineer
JBoss by Red Hat