[I'm moving this to taglibs-user because I have a more general question] Thanks. I'm not quite sure why synchronization is so slow - a little test app that does nothing more than have a bunch of threads fighting over a mutex shows that JDK1.4.1_01 on Linux is about 1/15th the speed of JDK1.4.1_01 on Windows. Still it doesn't seem like it should be an issue; throughput is still tens of thousands of locks per second. Nevertheless, when I put my application under load and check a thread dump, all I see are threads waiting on monitors.
Is anyone else running a high-volume JSTL-based application (or any other application with a fair amount of synchronization) on Linux? Have you seen any thread contention issues? Jeff Schnitzer [EMAIL PROTECTED] The Sims Online > -----Original Message----- > From: Shawn Bayern [mailto:[EMAIL PROTECTED]] > Sent: Friday, January 24, 2003 8:06 AM > To: Tag Libraries Developers List > Subject: Re: JSTL synchronization bottleneck > > Hi Jeff, > > Yes, this is a relic from an earlier implementation that we can indeed > optimize. I'll look into it more closely and try to post a fix shortly. > > Shawn > > On Thu, 23 Jan 2003, Schnitzer, Jeff wrote: > > > I'm doing some performance testing on an application that makes > > extensive use of JSTL tags. The #1 bottleneck is the synchronization of > > ExpressionEvaluatorManager.getEvaluatorByName(). Here is where all my > > threads sit under load: > > > > "Ajp13Processor[8009][496]" daemon prio=1 tid=0x0x8d714c8 nid=0x2520 > > waiting for monitor entry [7eda5000..7eda6840] > > at > > org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager.getE > > valuatorByName(ExpressionEvaluatorManager.java:144) > > - waiting to lock <0x652eb1e0> (a java.lang.Class) > > at > > org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager.eval > > uate(ExpressionEvaluatorManager.java:109) > > at > > org.apache.taglibs.standard.tag.el.core.ExpressionUtil.evalNotNull(Expre > > ssionUtil.java:85) > > at > > org.apache.taglibs.standard.tag.el.core.OutTag.evaluateExpressions(OutTa > > g.java:137) > > at > > org.apache.taglibs.standard.tag.el.core.OutTag.doStartTag(OutTag.java:95 > > ) > > > > > > Considering that EVALUATOR_CLASS is a constant, can we just load it at > > startup and dispense with the map, synchronization, etc? This is a > > serious performance problem. > > > > Thanks, > > Jeff Schnitzer > > [EMAIL PROTECTED] > > The Sims Online > > > > -- > > To unsubscribe, e-mail: <mailto:taglibs-dev- > [EMAIL PROTECTED]> > > For additional commands, e-mail: <mailto:taglibs-dev- > [EMAIL PROTECTED]> > > > > > -- > To unsubscribe, e-mail: <mailto:taglibs-dev- > [EMAIL PROTECTED]> > For additional commands, e-mail: <mailto:taglibs-dev- > [EMAIL PROTECTED]> > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>