On Apr 2, 2008, at 2:25 PM, Knut Forkalsrud wrote:
> This was with version 3.1.4, I haven't tried 3.1.5 yet.
3.1.5 is interesting, since it should handle the null classes faster
(basically, 3.1.5 pre-analyzes all the jars). The locking in 3.1.5 is
the same as 3.1.4.
I've updated the locking for the next snapshot, since it was a little
too broad. It would be interesting to see if there's a performance
difference for your app.
> 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,
>> default Hibernate configuration no longer uses it).
>> - Beanshell. We had a lot of beanshell interpreters running in
>> the system.
>> The common denominator for these two was that they do a lot of
>> (Class.forName()) on names that are not actual class names. We ended
>> up (among other counter measures) writing our own class loader to
>> all sorts of class lookups, blatantly violating all sorts of class
>> loading rules.
>> We will probably never be able to reload our app cleanly, but
>> improved at least 10x.
> resin-interest mailing list
resin-interest mailing list