<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman";}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{color:blue;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-reply;
font-family:Arial;
color:navy;}
@page Section1
{size:595.3pt 841.9pt;
margin:2.0cm 42.5pt 2.0cm 3.0cm;}
div.Section1
{page:Section1;}
-->
</style>
</head>
<body lang=RU link=blue vlink=blue>
<div class=Section1>
<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-US
style='font-size:10.0pt;font-family:Arial;color:navy'>Jay,<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-US
style='font-size:10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-US
style='font-size:10.0pt;font-family:Arial;color:navy'>That’s good news
for us that one lock is gone. Please keep me posted about further findings.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-US
style='font-size:10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<div>
<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-US
style='font-size:10.0pt;font-family:Arial;color:navy'>Best regards,</span></font><font
color=navy><span lang=EN-US style='color:navy'><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-US
style='font-size:10.0pt;font-family:Arial;color:navy'> Nick Belaevski</span></font><span
lang=EN-US><o:p></o:p></span></p>
</div>
<div style='border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt'>
<div>
<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span lang=EN-US style='font-size:12.0pt'>
<hr size=2 width="100%" align=center tabindex=-1>
</span></font></div>
<p class=MsoNormal><b><font size=2 face=Tahoma><span lang=EN-US
style='font-size:10.0pt;font-family:Tahoma;font-weight:bold'>From:</span></font></b><font
size=2 face=Tahoma><span lang=EN-US style='font-size:10.0pt;font-family:Tahoma'>
Jay Balunas [mailto:tech4j@gmail.com] <br>
<b><span style='font-weight:bold'>Sent:</span></b> Wednesday, October 01, 2008
4:19 PM<br>
<b><span style='font-weight:bold'>To:</span></b> Jay Balunas<br>
<b><span style='font-weight:bold'>Cc:</span></b> Nick Belaevski; Max Rydahl
Andersen; richfaces-exadel@redhat.com; seam-dev@lists.jboss.org Development
List<br>
<b><span style='font-weight:bold'>Subject:</span></b> Re: [Richfaces-exadel]
Fwd: [seam-dev] Some profiling of blockingthreads</span></font><span
lang=EN-US><o:p></o:p></span></p>
</div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>I was able to update and build with RichFaces 3.3.0-SNAPSHOT and saw
your changes.<br>
<br>
The good news is that I no longer see any blocking threads in the
"org.ajax4jsf.application.<o:p></o:p></span></font></p>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>AjaxViewHandler" - none at all which is great.<br>
<br>
The bad news is that the performance has not increased in any meaningful or
repeatable way. <br>
<br>
During my profiling I noticed a definite increase in the blocked threads
performing JNDI lookups. My theory is that the AjaxViewHandler was acting
as a gate and effectively slowing down concurrent requests into Seam
proper. These threads now fly straight through and into Seam
processing. They the end up blocked with the other threads performing the
lookups.<br>
<br>
I will continue to look at the lookup issues, and let you all know what I find.<br>
<br>
-Jay<o:p></o:p></span></font></p>
</div>
<p class=MsoNormal style='margin-bottom:12.0pt'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'><o:p> </o:p></span></font></p>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>On Tue, Sep 30, 2008 at 2:05 PM, Jay Balunas <<a
href="mailto:jbalunas@redhat.com">jbalunas@redhat.com</a>> wrote:<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>Excellent - I will build from sources and test the changes.<br>
<br>
I'll post the findings up on seam-dev.<br>
<font color="#888888"><span style='color:#888888'><br>
-Jay</span></font><o:p></o:p></span></font></p>
<div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>----- "Nick Belaevski" <<a
href="mailto:nbelaevski@exadel.com">nbelaevski@exadel.com</a>> wrote:<br>
<br>
> All,<br>
><br>
> I've created JIRA issue for this optimization:<br>
> <a href="https://jira.jboss.org/jira/browse/RF-4554" target="_blank">https://jira.jboss.org/jira/browse/RF-4554</a>
and have just fixed it.<br>
><br>
> As from now ViewHandlerWrapper#fillChain method is not synchronized<br>
> anymore.<br>
><br>
> Best regards,<br>
> Nick Belaevski<br>
><br>
> > -----Original Message-----<br>
> > From: <a href="mailto:richfaces-exadel-bounces@redhat.com">richfaces-exadel-bounces@redhat.com</a>
[mailto:<a href="mailto:richfaces-exadel-">richfaces-exadel-</a><br>
> > <a href="mailto:bounces@redhat.com">bounces@redhat.com</a>] On Behalf
Of Max Rydahl Andersen<br>
> > Sent: Tuesday, September 30, 2008 10:32 AM<br>
> > To: Jay Balunas; <a href="mailto:richfaces-exadel@redhat.com">richfaces-exadel@redhat.com</a><br>
> > Subject: Re: [Richfaces-exadel] Fwd: [seam-dev] Some profiling of<br>
> > blockingthreads<br>
> ><br>
> > Sergey/Nik ? Any news on this one ?<br>
> ><br>
> > /max<br>
> ><br>
> > > Hi Guys,<br>
> > ><br>
> > > I have been doing some performance testing on seam applications<br>
> and have<br>
> > > been able to post some of the results. One of the areas
that I<br>
> have<br>
> > > investigated so far was blocking/waiting threads.<br>
> > ><br>
> > > In my example I am running 25 concurrent users and hitting the<br>
> seam wiki<br>
> > > example. I am seeing blocked threads waiting on<br>
> > > "org.ajax4jsf.application.AjaxViewHandler".<br>
> > > I have investigated it a bit (see below), and have included some<br>
> of the<br>
> > > discussions on the seam-dev list.<br>
> > ><br>
> > > I would like to get an opinion of the synchronized fillChain<br>
> method, and<br>
> > > see<br>
> > > if there is another way to handle this.<br>
> > ><br>
> > > Thoughts?<br>
> > ><br>
> > > Thanks,<br>
> > > Jay<br>
> > ><br>
> > > ---------- Forwarded message ----------<br>
> > > From: Emmanuel Bernard <<a
href="mailto:emmanuel@hibernate.org">emmanuel@hibernate.org</a>><br>
> > > Date: Thu, Sep 25, 2008 at 10:01 AM<br>
> > > Subject: Re: [seam-dev] Some profiling of blocking threads<br>
> > > To: Jay Balunas <<a href="mailto:tech4j@gmail.com">tech4j@gmail.com</a>><br>
> > > Cc: Pete Muir <<a href="mailto:pmuir@redhat.com">pmuir@redhat.com</a>>,
"<a href="mailto:seam-dev@lists.jboss.org">seam-dev@lists.jboss.org</a>"
<<br>
> > > <a href="mailto:seam-dev@lists.jboss.org">seam-dev@lists.jboss.org</a>><br>
> > ><br>
> > ><br>
> > ><br>
> > > On Sep 25, 2008, at 09:17, Jay Balunas wrote:<br>
> > ><br>
> > > org.ajax4jsf.application.AjaxViewHandler<br>
> > >> --------------------------------------------<br>
> > >> - This was not a large % of the blocked threads but
caught my<br>
> eye as a<br>
> > >> potential trouble spot because it seemed directly related to<br>
> ajax<br>
> > calls.<br>
> > >> - This was easier to track down and the root cause is
in the<br>
> > >> org.ajax4jsf.application.ViewHandlerWrapper class.<br>
> > >> - see<br>
> > >><br>
> ><br>
> <a
href="http://anonsvn.jboss.org/repos/richfaces/trunk/framework/api/src/main/java"
target="_blank">http://anonsvn.jboss.org/repos/richfaces/trunk/framework/api/src/main/java</a><br>
> > /org/ajax4jsf/application/ViewHandlerWrapper.java<br>
> > >> - The problem is all the calls to
"fillChain" which is a<br>
> synchronized<br>
> > >> method in the class.<br>
> > >> - We need to find out how often the
"_initialized" field is<br>
> false - is<br>
> > >> this once a request, once for each component, etc...<br>
> > >> - it appears to be called many times - I will look
further into<br>
> this.<br>
> > >><br>
> > >><br>
> > > I will raise this the richfaces dev guys, and see what can be<br>
> done.<br>
> > ><br>
> > ><br>
> > > Using the double check lock pattern with a volatile should make<br>
> things<br>
> > > better. It has to be done right though :)<br>
> > ><br>
> > ><br>
> > ><br>
> ><br>
> ><br>
> ><br>
> > --<br>
> > /max<br>
> ><br>
> > _______________________________________________<br>
> > Richfaces-exadel mailing list<br>
> > <a href="mailto:Richfaces-exadel@redhat.com">Richfaces-exadel@redhat.com</a><br>
> > <a href="https://www.redhat.com/mailman/listinfo/richfaces-exadel"
target="_blank">https://www.redhat.com/mailman/listinfo/richfaces-exadel</a><br>
><br>
> _______________________________________________<br>
> Richfaces-exadel mailing list<br>
> <a href="mailto:Richfaces-exadel@redhat.com">Richfaces-exadel@redhat.com</a><br>
> <a href="https://www.redhat.com/mailman/listinfo/richfaces-exadel"
target="_blank">https://www.redhat.com/mailman/listinfo/richfaces-exadel</a><o:p></o:p></span></font></p>
</div>
</div>
</div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><br>
<br clear=all>
<br>
-- <br>
blog: <a href="http://in.relation.to/Bloggers/Jay">http://in.relation.to/Bloggers/Jay</a><o:p></o:p></span></font></p>
</div>
</div>
</div>
</body>
</html>