This was with version 3.1.4, I haven't tried 3.1.5 yet.
Knut Forkalsrud wrote:
Just a comment on this, we found similar problems not too long ago.
Performance under load turned out to be limited by the synchronized
lock in EnvironmentClassloader. So our fancy new 8 core systems
suddenly were reduced to single thread performance. Some profiling
highlighted two major offenders.
- Hibernate's "classic" HQL query parser (which is a legacy thing, the
default Hibernate configuration no longer uses it).
- Beanshell. We had a lot of beanshell interpreters running in the
The common denominator for these two was that they do a lot of lookups
(Class.forName()) on names that are not actual class names. We ended
up (among other counter measures) writing our own class loader to cache
all sorts of class lookups, blatantly violating all sorts of class
We will probably never be able to reload our app cleanly, but performance
improved at least 10x.
resin-interest mailing list