[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]>

Reply via email to