myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matthias Wessendorf <mat...@apache.org>
Subject Re: [Trinidad] Trinidad consuming 80-90% CPU
Date Fri, 15 Jan 2010 06:04:56 GMT
On Thu, Jan 14, 2010 at 9:45 PM, Ravi Kapoor <ravikapoor101@gmail.com> wrote:
> Matthias, I did not hear back from the company you recommended. Can you
> check with them?

he told me he would write to you back on Thursday/Friday; let me double check...

-Matthias

>
> Richard, after a painful 2 days, I was able to make the demo work on my
> machine. The results are that trinidad is still taking most of the time. It
> is consuming 4 times more CPU than java.* classes. Also from the demo
> classes (org.apache.trinidaddemo.* ), only one of them showed up, rest did
> not consume enough CPU to show up on my monitor. The only difference in
> these results is that HTML output classes are triumphing the getProperty()
> methods. This indicates that in case of demo, html is being generated by
> java classes and they consume significant resources.
>
> Here are comparitive CPU consumption:
> java.* classes - 4006
> javax.faces.* - 1847
> org.apache.myfaces.trinidad.internal.* - 17167
> org.apache.myfaces.trinidaddemo.* - 16
>
> Also, the top CPU consuming classes are below. Other than html output, my
> results are still consistent.
>
> org.apache.myfaces.trinidadinternal.io.HTMLEscapes.writeAttribute(Writer
> char[ ] String)    875
> java.io.Writer.write(int)    688
> org.apache.myfaces.trinidadinternal.io.HtmlResponseWriter._closeStartIfNecessary()
> 641
> org.apache.myfaces.trinidadinternal.io.HtmlResponseWriter.write(int)    562
> java.lang.String.charAt(int)    547
> org.apache.myfaces.trinidadinternal.io.HtmlResponseWriter._markPendingElements()
> 484
> org.apache.myfaces.trinidad.bean.FacesBeanImpl.getProperty(PropertyKey)
> 469
> org.apache.myfaces.trinidad.bean.FacesBeanImpl.getLocalPropertyImpl(PropertyKey)
> 453
> org.apache.myfaces.trinidadinternal.io.HTMLEscapes._addToBuffer(Writer char[
> ] int int char)    438
> java.io.Writer.write(String)    406
> java.util.Map.get(Object)    359
> org.apache.myfaces.trinidad.bean.PropertyMap.get(Object)    359
> org.apache.myfaces.trinidad.bean.FacesBeanImpl.getValueBinding(PropertyKey)
> 344
> org.apache.myfaces.trinidad.bean.util.FlaggedPropertyMap.get(Object)    344
> org.apache.myfaces.trinidad.bean.FacesBean.getProperty(PropertyKey)    328
> org.apache.myfaces.trinidad.bean.FacesBeanImpl._checkNotListKey(PropertyKey)
> 266
> org.apache.myfaces.trinidad.bean.FacesBeanImpl.getLocalProperty(PropertyKey)
> 266
>
>
> On Tue, Jan 12, 2010 at 7:18 PM, Richard Yee <richard.k.yee@gmail.com>wrote:
>
>> http://myfaces.apache.org/trinidad/download.html
>>
>> trinidad-1.0.11-example.zip<
>> http://www.apache.org/dyn/closer.cgi/myfaces/binaries/trinidad-1.0.11-example.zip
>> >
>>
>> I'm not sure if the 1.0.11 version has any incompatibilities with 1.0.7. If
>> you can't find one that works with 1.0.7, email me offline and I will mail
>> the one I have to you.
>>
>> -Richard
>>
>>
>>
>> On Tue, Jan 12, 2010 at 2:31 PM, Ravi Kapoor <ravikapoor101@gmail.com
>> >wrote:
>>
>> > That is an excellent suggestion Richard. Can you point me to the
>> > application
>> > you mentioned (I am on trinidad 1.0.7)
>> >
>> > Thanks
>> >
>> >
>> > On Tue, Jan 12, 2010 at 4:58 PM, Richard Yee <richard.k.yee@gmail.com
>> > >wrote:
>> >
>> > > One suggestion that I would make is to run the Trinidad example
>> > application
>> > > and examine the behavior.
>> > >
>> > > -Richard
>> > >
>> > >
>> > >
>> > > On Tue, Jan 12, 2010 at 11:00 AM, Matthias Wessendorf <
>> matzew@apache.org
>> > > >wrote:
>> > >
>> > > > I contacted Ravi already offline
>> > > >
>> > > > -M
>> > > >
>> > > > On Tue, Jan 12, 2010 at 7:59 PM, Jan-Kees van Andel
>> > > >  <jankeesvanandel@gmail.com> wrote:
>> > > > > Apache officially doesn't provide support, see:
>> > > > > http://httpd.apache.org/docs/1.3/misc/FAQ.html#support
>> > > > > But you can try to contact a commercial company that does provide
>> > > > support.
>> > > > >
>> > > > > It's an issue Apache can't really help you with.
>> > > > >
>> > > > > Depending on where you're located, it shouldn't be very hard to
>> find
>> > > > > Trinidad experience. There are a lot of followers on this list, so
>> > > > > maybe...?
>> > > > >
>> > > > > Regards,
>> > > > > Jan-Kees
>> > > > >
>> > > > >
>> > > > > 2010/1/12 Ravi Kapoor <ravikapoor101@gmail.com>:
>> > > > >> I found that link as well 10 seconds ago and was going to email
>> you
>> > > :).
>> > > > Yes
>> > > > >> you are right, I cannot run this app in tomcat, this is enterprise
>> > app
>> > > > with
>> > > > >> tons of dependency on websphere.
>> > > > >>
>> > > > >> Anyways, how can I get onsite support? Who provides such support?
>> > > > Apache?
>> > > > >> Can you send me contact info or a link?
>> > > > >>
>> > > > >> Thanks
>> > > > >> Ravi
>> > > > >>
>> > > > >> On Tue, Jan 12, 2010 at 1:28 PM, Jan-Kees van Andel <
>> > > > >> jankeesvanandel@gmail.com> wrote:
>> > > > >>
>> > > > >>> Hrm, it looks like the IBM JVM doesn't support VisualVM. See:
>> > > > >>>
>> > > >
>> > http://www.ibm.com/developerworks/forums/thread.jspa?messageID=14210263
>> > > > >>> Sorry. It would be nice if it worked.
>> > > > >>> You're probably not able to run your app on i.e. Tomcat, JBoss or
>> > > > >>> Glassfish, just for testing? If you are, things are easier.
>> > > > >>>
>> > > > >>> But I'm afraid we're not solving problems here. I think you'd
>> > better
>> > > > >>> look for on-site support...
>> > > > >>>
>> > > > >>> /JK
>> > > > >>>
>> > > > >>>
>> > > > >>> 2010/1/12 Ravi Kapoor <ravikapoor101@gmail.com>:
>> > > > >>> > Jan-Kees, thanks for this info. I got the settings in order.
>> But
>> > I
>> > > am
>> > > > >>> having
>> > > > >>> > another problem.
>> > > > >>> >
>> > > > >>> > When I launch the server from within RAD, VisualVM is not able
>> to
>> > > > detect
>> > > > >>> the
>> > > > >>> > process at all. Can you tell me what do I need to do so
>> VisualVM
>> > > can
>> > > > >>> detect
>> > > > >>> > my server so that I can get profiling information for my
>> classes?
>> > > > >>> >
>> > > > >>> >
>> > > > >>> >
>> > > > >>> > On Tue, Jan 12, 2010 at 10:02 AM, Jan-Kees van Andel <
>> > > > >>> > jankeesvanandel@gmail.com> wrote:
>> > > > >>> >
>> > > > >>> >> Hey Ravi,
>> > > > >>> >>
>> > > > >>> >> First you need to connect to your server. If that's done,
>> > > depending
>> > > > on
>> > > > >>> >> the type of connection, profiling becomes possible (AFAIK
>> local
>> > > > >>> >> applications always work, but JMX based connections don't).
>> > > > >>> >> If profiling is possible, you should see a Profiler tab. In
>> the
>> > > > >>> >> Profiler tab, on the right you can see a checkbox called
>> > > "settings".
>> > > > >>> >> Check it.
>> > > > >>> >>
>> > > > >>> >> In the first textarea, called: "Start profiling from classes",
>> > > enter
>> > > > >>> >> the following:
>> > > > >>> >> javax.faces.**
>> > > > >>> >> org.apache.myfaces.**
>> > > > >>> >> com.yourcompany.**
>> > > > >>> >>
>> > > > >>> >> The other settings should be ok, or maybe you need to apply
>> some
>> > > > >>> >> additional filter to prevent OOME's.
>> > > > >>> >>
>> > > > >>> >> When done, you can hit the Profile button and start generating
>> > > load
>> > > > on
>> > > > >>> >> your webapp. Note the small button in the Profiler tab to
>> create
>> > > > >>> >> snapshots. This is a useful one, because you have extra
>> > profiling
>> > > > >>> >> features on snapshots that aren't available on the realtime
>> > data.
>> > > > >>> >>
>> > > > >>> >> Note: It might be smart to increase the max heap size in
>> > > > >>> >> [VISUALVM_HOME]/etc/visualvm.conf. 512MB should be enough (
>> > > > -J-Xmx512m
>> > > > >>> >> ).
>> > > > >>> >>
>> > > > >>> >> I hope these steps work for you and maybe a different graph
>> > gives
>> > > > some
>> > > > >>> >> more insight...
>> > > > >>> >>
>> > > > >>> >> Regards,
>> > > > >>> >> Jan-Kees
>> > > > >>> >>
>> > > > >>> >>
>> > > > >>> >> 2010/1/12 Ravi Kapoor <ravikapoor101@gmail.com>:
>> > > > >>> >> > Oh I see what you are saying. We only create and populate
>> the
>> > > > hashmap
>> > > > >>> >> once,
>> > > > >>> >> > we never clear or delete from it. So that endless loop is
>> not
>> > > the
>> > > > >>> >> problem.
>> > > > >>> >> > Also in that case the CPU wouldnt show up for org.apache.*
>> > > > classes.
>> > > > >>> >> >
>> > > > >>> >> > I guess you are looking for how to specify packages in
>> > VisualVM.
>> > > > This
>> > > > >>> >> would
>> > > > >>> >> > give me another point of reference to validate my numbers.
>> > > > >>> >> >
>> > > > >>> >> > - Ravi
>> > > > >>> >> >
>> > > > >>> >> >
>> > > > >>> >> > On Mon, Jan 11, 2010 at 6:00 PM, Jakob Korherr <
>> > > > >>> jakob.korherr@gmail.com
>> > > > >>> >> >wrote:
>> > > > >>> >> >
>> > > > >>> >> >> Ravi,
>> > > > >>> >> >>
>> > > > >>> >> >> To your question: Can you explain little bit how lack of
>> > > > >>> synchronization
>> > > > >>> >> >> can
>> > > > >>> >> >> add to CPU?
>> > > > >>> >> >>
>> > > > >>> >> >> I don't know exactly, but maybe it is possible that the
>> > > internal
>> > > > >>> >> structure
>> > > > >>> >> >> of a Map (e.g. HashMap) can be destroyed when there are
>> > > multiple
>> > > > >>> change
>> > > > >>> >> >> operations (put, remove, clear) at the same time, because
>> of
>> > > lack
>> > > > of
>> > > > >>> >> >> synchronization. But that's really just a guess!
>> > > > >>> >> >>
>> > > > >>> >> >> Regards,
>> > > > >>> >> >> Jakob
>> > > > >>> >> >>
>> > > > >>> >> >> 2010/1/11 Ravi Kapoor <ravikapoor101@gmail.com>
>> > > > >>> >> >>
>> > > > >>> >> >> > Jakob,
>> > > > >>> >> >> >
>> > > > >>> >> >> > I did install VisualVM but it is not capturing
>> org.apache.*
>> > > > classes
>> > > > >>> or
>> > > > >>> >> >> > com.mycompany.* classes. I did not find a setting on how
>> to
>> > > > enable
>> > > > >>> >> >> > capturing
>> > > > >>> >> >> > data for all the classes I want. Can you tell me where to
>> > > > specity
>> > > > >>> the
>> > > > >>> >> >> > packages for which I want to capture CPU usage?
>> > > > >>> >> >> >
>> > > > >>> >> >> > Vinay
>> > > > >>> >> >> >
>> > > > >>> >> >> >
>> > > > >>> >> >> > On Mon, Jan 11, 2010 at 4:05 PM, Ravi Kapoor <
>> > > > >>> ravikapoor101@gmail.com
>> > > > >>> >> >> > >wrote:
>> > > > >>> >> >> >
>> > > > >>> >> >> > > Jakob,
>> > > > >>> >> >> > >
>> > > > >>> >> >> > > The beans are not big. Also these tests have been
>> > performed
>> > > > under
>> > > > >>> a
>> > > > >>> >> >> > single
>> > > > >>> >> >> > > user to measure the CPU timing. So I doubt
>> > > > >>> locking/synchronization
>> > > > >>> >> is
>> > > > >>> >> >> an
>> > > > >>> >> >> > > issue.
>> > > > >>> >> >> > >
>> > > > >>> >> >> > > I would think that if there is synchronization, then
>> the
>> > > > threads
>> > > > >>> >> could
>> > > > >>> >> >> be
>> > > > >>> >> >> > > waiting for long time, but lack of synchronization can
>> > only
>> > > > lead
>> > > > >>> to
>> > > > >>> >> >> > corrupt
>> > > > >>> >> >> > > data not to higher CPU. Can you explain little bit how
>> > lack
>> > > > of
>> > > > >>> >> >> > > synchronization can add to CPU?
>> > > > >>> >> >> > >
>> > > > >>> >> >> > > I have never used VisualVM, I can try it sometime this
>> > > week.
>> > > > I am
>> > > > >>> >> >> > assuming
>> > > > >>> >> >> > > it will work with Websphere 6.1
>> > > > >>> >> >> > >
>> > > > >>> >> >> > > Regards
>> > > > >>> >> >> > > Ravi
>> > > > >>> >> >> > >
>> > > > >>> >> >> > >
>> > > > >>> >> >> > > On Mon, Jan 11, 2010 at 3:03 PM, Jan-Kees van Andel <
>> > > > >>> >> >> > > jankeesvanandel@gmail.com> wrote:
>> > > > >>> >> >> > >
>> > > > >>> >> >> > >> Hi Ravi,
>> > > > >>> >> >> > >>
>> > > > >>> >> >> > >> Just a stupid question. Are your beans extremely big?
>> > > Since
>> > > > >>> >> FacesBean
>> > > > >>> >> >> > >> doesn't do much locking/synchronizing (none if I'm
>> > > > correctly),
>> > > > >>> the
>> > > > >>> >> >> > >> only reason I can imagine it to eat CPU cycles is
>> > because
>> > > of
>> > > > its
>> > > > >>> >> >> > >> size...
>> > > > >>> >> >> > >>
>> > > > >>> >> >> > >> Also, is it possible for you to do a profiling run
>> using
>> > > > >>> VisualVM?
>> > > > >>> >> >> > >> I've been profiling Trinidad with VisualVM myself and
>> > > maybe
>> > > > we
>> > > > >>> can
>> > > > >>> >> >> > >> compare numbers... Using the same tool might make it
>> > > easier
>> > > > to
>> > > > >>> >> >> > >> compare...
>> > > > >>> >> >> > >>
>> > > > >>> >> >> > >> /JK
>> > > > >>> >> >> > >>
>> > > > >>> >> >> > >>
>> > > > >>> >> >> > >> 2010/1/11 Ravi Kapoor <ravikapoor101@gmail.com>:
>> > > > >>> >> >> > >> > I am thinking if that was the case, I would see high
>> > CPU
>> > > > in
>> > > > >>> >> >> > >> > java.util.HashMap instead of org.apache.faces.*
>> > > > >>> >> >> > >> >
>> > > > >>> >> >> > >> > If you disagree, please explain and I can try using
>> > > > HashTable
>> > > > >>> to
>> > > > >>> >> >> store
>> > > > >>> >> >> > >> data
>> > > > >>> >> >> > >> > and get fresh numbers.
>> > > > >>> >> >> > >> >
>> > > > >>> >> >> > >> >
>> > > > >>> >> >> > >> > On Mon, Jan 11, 2010 at 10:00 AM, Jakob Korherr <
>> > > > >>> >> >> > >> jakob.korherr@gmail.com>wrote:
>> > > > >>> >> >> > >> >
>> > > > >>> >> >> > >> >> Maybe it happens when accessing the value from the
>> > Map
>> > > > with
>> > > > >>> >> >> > >> >> "#{bean.get['memid']}", because the Map is not
>> > properly
>> > > > >>> >> >> synchronized,
>> > > > >>> >> >> > >> thus
>> > > > >>> >> >> > >> >> its internal structure is broken and thus it is
>> > running
>> > > > in
>> > > > >>> >> infinite
>> > > > >>> >> >> > >> loops.
>> > > > >>> >> >> > >> >>
>> > > > >>> >> >> > >> >> Are your resources properly synchronized?
>> > > > >>> >> >> > >> >>
>> > > > >>> >> >> > >> >> Just a guess in the blue...
>> > > > >>> >> >> > >> >>
>> > > > >>> >> >> > >> >> Regards,
>> > > > >>> >> >> > >> >> Jakob Korherr
>> > > > >>> >> >> > >> >>
>> > > > >>> >> >> > >> >> 2010/1/11 Ravi Kapoor <ravikapoor101@gmail.com>
>> > > > >>> >> >> > >> >>
>> > > > >>> >> >> > >> >> > Another thing, most of our EL expressions are one
>> > of
>> > > > the
>> > > > >>> >> >> following
>> > > > >>> >> >> > >> types
>> > > > >>> >> >> > >> >> >
>> > > > >>> >> >> > >> >> > "#{bean.active}"
>> > > > >>> >> >> > >> >> > or
>> > > > >>> >> >> > >> >> > "#{bean.get['memid']}"
>> > > > >>> >> >> > >> >> >
>> > > > >>> >> >> > >> >> > Parsing of these expressions probably happens
>> > within
>> > > > >>> >> >> > >> org.apache.myfaces.*
>> > > > >>> >> >> > >> >> > classes. These are fairly basic EL expressions
>> and
>> > > > should
>> > > > >>> not
>> > > > >>> >> be
>> > > > >>> >> >> > >> taking
>> > > > >>> >> >> > >> >> > much
>> > > > >>> >> >> > >> >> > time. We know, the final getter method is not
>> > taking
>> > > > much
>> > > > >>> >> time.
>> > > > >>> >> >> > >> >> >
>> > > > >>> >> >> > >> >> > Do you know if the page (and EL expressions) are
>> > > parsed
>> > > > >>> each
>> > > > >>> >> time
>> > > > >>> >> >> a
>> > > > >>> >> >> > >> page
>> > > > >>> >> >> > >> >> is
>> > > > >>> >> >> > >> >> > rendered? If pages are parsed only once, then the
>> > > > parsing
>> > > > >>> time
>> > > > >>> >> >> > should
>> > > > >>> >> >> > >> >> also
>> > > > >>> >> >> > >> >> > be almost negligible.
>> > > > >>> >> >> > >> >> >
>> > > > >>> >> >> > >> >> > - Ravi
>> > > > >>> >> >> > >> >> >
>> > > > >>> >> >> > >> >> > On Mon, Jan 11, 2010 at 8:28 AM, Ravi <
>> > > > >>> >> ravikapoor101@gmail.com>
>> > > > >>> >> >> > >> wrote:
>> > > > >>> >> >> > >> >> >
>> > > > >>> >> >> > >> >> > >
>> > > > >>> >> >> > >> >> > > Matthias,
>> > > > >>> >> >> > >> >> > >
>> > > > >>> >> >> > >> >> > > If the issue is in bean, it should show up in
>> my
>> > > > >>> analysis.
>> > > > >>> >> Also
>> > > > >>> >> >> > >> >> > getProperty
>> > > > >>> >> >> > >> >> > > is only 40% CPU, there is additional 45% cpu
>> > > consumed
>> > > > by
>> > > > >>> >> rest
>> > > > >>> >> >> of
>> > > > >>> >> >> > >> the
>> > > > >>> >> >> > >> >> > > trinidad classes totaling 85% total CPU, all
>> > within
>> > > > >>> >> >> > >> >> org.apache.myfaces.*
>> > > > >>> >> >> > >> >> > > classes
>> > > > >>> >> >> > >> >> > >
>> > > > >>> >> >> > >> >> > > Ravi
>> > > > >>> >> >> > >> >> > >
>> > > > >>> >> >> > >> >> > >
>> > > > >>> >> >> > >> >> > >
>> > > > >>> >> >> > >> >> > > Matthias Wessendorf wrote:
>> > > > >>> >> >> > >> >> > >
>> > > > >>> >> >> > >> >> > >> Ravi,
>> > > > >>> >> >> > >> >> > >>
>> > > > >>> >> >> > >> >> > >> spoke to a guy that does performance
>> > > > testing/improvement
>> > > > >>> >> for
>> > > > >>> >> >> > >> Oracle
>> > > > >>> >> >> > >> >> > >> Applications. He said that there is some % CPU
>> > in
>> > > > >>> Trindad
>> > > > >>> >> but
>> > > > >>> >> >> I
>> > > > >>> >> >> > >> would
>> > > > >>> >> >> > >> >> > >> not give it more them 20%. The heavy hitters
>> is
>> > > > >>> getClientId
>> > > > >>> >> >> > (Blake
>> > > > >>> >> >> > >> -
>> > > > >>> >> >> > >> >> > >> see dev@ thread - is doing some optimization
>> > > > there).
>> > > > >>> >> >> > >> >> > >>
>> > > > >>> >> >> > >> >> > >> Now if getProperty is some el expression and
>> > > > expression
>> > > > >>> is
>> > > > >>> >> >> > >> expensive
>> > > > >>> >> >> > >> >> > >> the problem is in expression not in Trinidad
>> > > > (perhaps
>> > > > >>> that
>> > > > >>> >> is
>> > > > >>> >> >> > the
>> > > > >>> >> >> > >> case
>> > > > >>> >> >> > >> >> > >> where you have el epression but beans behind
>> it
>> > > are
>> > > > not
>> > > > >>> >> that
>> > > > >>> >> >> > >> good).
>> > > > >>> >> >> > >> >> > >>
>> > > > >>> >> >> > >> >> > >> -Matthias
>> > > > >>> >> >> > >> >> > >>
>> > > > >>> >> >> > >> >> > >> On Mon, Jan 11, 2010 at 6:45 AM, Ravi Kapoor <
>> > > > >>> >> >> > >> ravikapoor101@gmail.com
>> > > > >>> >> >> > >> >> >
>> > > > >>> >> >> > >> >> > >> wrote:
>> > > > >>> >> >> > >> >> > >>
>> > > > >>> >> >> > >> >> > >>> Hi Jan-Kees,
>> > > > >>> >> >> > >> >> > >>>
>> > > > >>> >> >> > >> >> > >>> You are right, the getProperty method is only
>> > > > taking 2K
>> > > > >>> >> >> units.
>> > > > >>> >> >> > >> >> However
>> > > > >>> >> >> > >> >> > if
>> > > > >>> >> >> > >> >> > >>> I
>> > > > >>> >> >> > >> >> > >>> dig deeper, I find that most of the
>> cumulative
>> > > time
>> > > > is
>> > > > >>> >> being
>> > > > >>> >> >> > >> spent
>> > > > >>> >> >> > >> >> > within
>> > > > >>> >> >> > >> >> > >>> Trinidad classes. The final call to java
>> > getters
>> > > > >>> consumes
>> > > > >>> >> >> > >> negligible
>> > > > >>> >> >> > >> >> > >>> time.
>> > > > >>> >> >> > >> >> > >>>
>> > > > >>> >> >> > >> >> > >>> I was unable to create thread structure like
>> > you
>> > > > showed
>> > > > >>> >> >> (JProbe
>> > > > >>> >> >> > >> keeps
>> > > > >>> >> >> > >> >> > >>> getting crashed). But I took another
>> screenshot
>> > > > that
>> > > > >>> shows
>> > > > >>> >> >> > almost
>> > > > >>> >> >> > >> >> > similar
>> > > > >>> >> >> > >> >> > >>> details you are looking for. It highlights
>> the
>> > > > classes
>> > > > >>> >> that
>> > > > >>> >> >> are
>> > > > >>> >> >> > >> >> taking
>> > > > >>> >> >> > >> >> > >>> maximum time (cumulative time again) but as
>> you
>> > > can
>> > > > >>> see,
>> > > > >>> >> all
>> > > > >>> >> >> > the
>> > > > >>> >> >> > >> >> > classes
>> > > > >>> >> >> > >> >> > >>> are
>> > > > >>> >> >> > >> >> > >>> just trinidad classes.
>> > > > >>> >> >> > >> >> > >>>
>> > > > >>> >> >> > >> >> > >>>
>> > > > >>> >> >> > >> >> >
>> > > > >>> >> >> > >> >>
>> > > > >>> >> >> > >>
>> > > > >>> >> >> >
>> > > > >>> >> >>
>> > > > >>> >>
>> > > > >>>
>> > > >
>> > >
>> >
>> http://docs.google.com/Doc?docid=0AbuQsSDG0X9_ZGhraHFwejJfNGRjcGNiN2hk&hl=en
>> > > > >>> >> >> > >> >> > >>>
>> > > > >>> >> >> > >> >> > >>> Regards,
>> > > > >>> >> >> > >> >> > >>> Ravi
>> > > > >>> >> >> > >> >> > >>>
>> > > > >>> >> >> > >> >> > >>> On Sun, Jan 10, 2010 at 12:54 PM, Jan-Kees
>> van
>> > > > Andel <
>> > > > >>> >> >> > >> >> > >>> jankeesvanandel@gmail.com> wrote:
>> > > > >>> >> >> > >> >> > >>>
>> > > > >>> >> >> > >> >> > >>>  Hey Ravi,
>> > > > >>> >> >> > >> >> > >>>>
>> > > > >>> >> >> > >> >> > >>>> Looking at your JProbe screenshots for the
>> > > second
>> > > > >>> time, I
>> > > > >>> >> >> > think
>> > > > >>> >> >> > >> >> you're
>> > > > >>> >> >> > >> >> > >>>> misinterpreting the graphs (but I haven't
>> used
>> > > > JProbe
>> > > > >>> >> >> before,
>> > > > >>> >> >> > so
>> > > > >>> >> >> > >> I
>> > > > >>> >> >> > >> >> > >>>> might be mistaking ;-) ).
>> > > > >>> >> >> > >> >> > >>>>
>> > > > >>> >> >> > >> >> > >>>> In your first screenshot (upper left corner)
>> > you
>> > > > can
>> > > > >>> see
>> > > > >>> >> the
>> > > > >>> >> >> > >> total
>> > > > >>> >> >> > >> >> > >>>> time the getProperty method takes.
>> > > > >>> >> >> > >> >> > >>>> This includes its self time and the time
>> taken
>> > > by
>> > > > its
>> > > > >>> >> >> > children.
>> > > > >>> >> >> > >> Its
>> > > > >>> >> >> > >> >> > >>>> self time is 2781 and the child time is
>> 29609.
>> > > > >>> >> >> > >> >> > >>>> A large portion (around 85%) comes from the
>> > > > >>> >> getLocalProperty
>> > > > >>> >> >> > and
>> > > > >>> >> >> > >> >> > >>>> ValueBinding.getValue methods.
>> > > > >>> >> >> > >> >> > >>>>
>> > > > >>> >> >> > >> >> > >>>> However, these two methods don't do much,
>> > since
>> > > > they
>> > > > >>> >> >> delegate
>> > > > >>> >> >> > to
>> > > > >>> >> >> > >> >> other
>> > > > >>> >> >> > >> >> > >>>> methods to do the real work. Maybe even
>> > invoking
>> > > > >>> >> application
>> > > > >>> >> >> > >> code,
>> > > > >>> >> >> > >> >> > >>>> like managed beans.
>> > > > >>> >> >> > >> >> > >>>>
>> > > > >>> >> >> > >> >> > >>>> Can you provide a more detailed call tree
>> with
>> > > > more
>> > > > >>> info
>> > > > >>> >> >> about
>> > > > >>> >> >> > >> the
>> > > > >>> >> >> > >> >> > >>>> child methods that are invoked? I'm
>> especially
>> > > > >>> interested
>> > > > >>> >> in
>> > > > >>> >> >> > the
>> > > > >>> >> >> > >> >> > >>>> methods that are called by getLocalProperty
>> > and
>> > > > >>> >> >> > >> >> ValueBinding.getValue
>> > > > >>> >> >> > >> >> > >>>> and their children. I'm not that familiar
>> with
>> > > > JProbe,
>> > > > >>> >> but
>> > > > >>> >> >> I'm
>> > > > >>> >> >> > >> sure
>> > > > >>> >> >> > >> >> it
>> > > > >>> >> >> > >> >> > >>>> supports something like a call tree
>> > > > >>> >> >> > >> >> > >>>> (
>> > > > >>> >> >> > >> >> > >>>>
>> > > > >>> >> >> > >> >> > >>>>
>> > > > >>> >> >> > >> >> >
>> > > > >>> >> >> > >> >>
>> > > > >>> >> >> > >>
>> > > > >>> >> >> >
>> > > > >>> >> >>
>> > > > >>> >>
>> > > > >>>
>> > > >
>> > >
>> >
>> http://www.ej-technologies.com/products/jprofiler/images/whatsnew/exceptional_methods_calltree.png
>> > > > >>> >> >> > >> >> > >>>> ),
>> > > > >>> >> >> > >> >> > >>>> so you can see the problematic method.
>> > > > >>> >> >> > >> >> > >>>>
>> > > > >>> >> >> > >> >> > >>>> Regards,
>> > > > >>> >> >> > >> >> > >>>> Jan-Kees
>> > > > >>> >> >> > >> >> > >>>>
>> > > > >>> >> >> > >> >> > >>>>
>> > > > >>> >> >> > >> >> > >>>> 2010/1/10 Ravi <ravikapoor101@gmail.com>:
>> > > > >>> >> >> > >> >> > >>>>
>> > > > >>> >> >> > >> >> > >>>>> Matthias, I think websphere 6.1 does not
>> > > support
>> > > > JSF
>> > > > >>> >> 1.2. I
>> > > > >>> >> >> > >> will
>> > > > >>> >> >> > >> >> > >>>>> doublecheck, let me know if this is
>> > incorrect.
>> > > > This
>> > > > >>> mans
>> > > > >>> >> I
>> > > > >>> >> >> > >> cannot
>> > > > >>> >> >> > >> >> try
>> > > > >>> >> >> > >> >> > >>>>> trinidad version 1.2.12
>> > > > >>> >> >> > >> >> > >>>>>
>> > > > >>> >> >> > >> >> > >>>>> I will try out 1.0.11 release, but that is
>> a
>> > > > minor
>> > > > >>> >> release
>> > > > >>> >> >> > >> update
>> > > > >>> >> >> > >> >> and
>> > > > >>> >> >> > >> >> > I
>> > > > >>> >> >> > >> >> > >>>>> seriously doubt if it will fix such a
>> > > performance
>> > > > >>> issue.
>> > > > >>> >> >> > >> >> > >>>>>
>> > > > >>> >> >> > >> >> > >>>>> What other options do we have? Is there a
>> way
>> > > we
>> > > > can
>> > > > >>> get
>> > > > >>> >> >> > >> somebody
>> > > > >>> >> >> > >> >> > >>>>>
>> > > > >>> >> >> > >> >> > >>>> familiar
>> > > > >>> >> >> > >> >> > >>>>
>> > > > >>> >> >> > >> >> > >>>>> with trinidad architecture/code to look at
>> > this
>> > > > >>> issue?
>> > > > >>> >> This
>> > > > >>> >> >> > can
>> > > > >>> >> >> > >> >> even
>> > > > >>> >> >> > >> >> > be
>> > > > >>> >> >> > >> >> > >>>>> a
>> > > > >>> >> >> > >> >> > >>>>> paid assignment.
>> > > > >>> >> >> > >> >> > >>>>>
>> > > > >>> >> >> > >> >> > >>>>> Regards
>> > > > >>> >> >> > >> >> > >>>>> Ravi
>> > > > >>> >> >> > >> >> > >>>>>
>> > > > >>> >> >> > >> >> > >>>>>
>> > > > >>> >> >> > >> >> > >>>>> Matthias Wessendorf wrote:
>> > > > >>> >> >> > >> >> > >>>>>
>> > > > >>> >> >> > >> >> > >>>>>> Hello Ravi,
>> > > > >>> >> >> > >> >> > >>>>>>
>> > > > >>> >> >> > >> >> > >>>>>> I wonder what our last release for JSF 1.1
>> > > > (1.0.11)
>> > > > >>> >> does?
>> > > > >>> >> >> > >> >> > >>>>>>
>> > > > >>> >> >> > >> >> > >>>>>> Not sure, perhaps you may also try the JSF
>> > 1.2
>> > > > >>> version
>> > > > >>> >> ?
>> > > > >>> >> >> > >> (1.2.12)
>> > > > >>> >> >> > >> >> > >>>>>> The JSF 1.2 version is the one that is
>> best
>> > > > >>> supported,
>> > > > >>> >> >> these
>> > > > >>> >> >> > >> days.
>> > > > >>> >> >> > >> >> > >>>>>>
>> > > > >>> >> >> > >> >> > >>>>>> Trinidad 2.0 is now in alpha stage, and I
>> > can
>> > > > >>> >> understand
>> > > > >>> >> >> > that
>> > > > >>> >> >> > >> you
>> > > > >>> >> >> > >> >> > >>>>>> don't want to update on that version, now
>> > > > >>> >> >> > >> >> > >>>>>>
>> > > > >>> >> >> > >> >> > >>>>>> -Matthias
>> > > > >>> >> >> > >> >> > >>>>>>
>> > > > >>> >> >> > >> >> > >>>>>> On Sun, Jan 10, 2010 at 4:56 AM, Ravi <
>> > > > >>> >> >> > >> ravikapoor101@gmail.com>
>> > > > >>> >> >> > >> >> > >>>>>> wrote:
>> > > > >>> >> >> > >> >> > >>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>> Scott, we do not have CPUs available. The
>> > > time
>> > > > >>> >> trinidad
>> > > > >>> >> >> is
>> > > > >>> >> >> > >> >> > consuming
>> > > > >>> >> >> > >> >> > >>>>>>> is
>> > > > >>> >> >> > >> >> > >>>>>>> supposed to be doing some other work.
>> Hence
>> > > > this is
>> > > > >>> >> >> costing
>> > > > >>> >> >> > >> us
>> > > > >>> >> >> > >> >> real
>> > > > >>> >> >> > >> >> > >>>>>>> dollars
>> > > > >>> >> >> > >> >> > >>>>>>> and hence our time and effort to resolve
>> > > this.
>> > > > >>> >> >> > >> >> > >>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>> This is not initial hit of page. I always
>> > > > ignore
>> > > > >>> the
>> > > > >>> >> >> first
>> > > > >>> >> >> > >> hit on
>> > > > >>> >> >> > >> >> > all
>> > > > >>> >> >> > >> >> > >>>>>>> pages,
>> > > > >>> >> >> > >> >> > >>>>>>> I am only measuring CPU from 2nd hit
>> > onwards.
>> > > > >>> >> >> > >> >> > >>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>> Ravi
>> > > > >>> >> >> > >> >> > >>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>> Scott O'Bryan wrote:
>> > > > >>> >> >> > >> >> > >>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>> I don't know.  I'm of the camp that if
>> the
>> > > CPU
>> > > > >>> time
>> > > > >>> >> is
>> > > > >>> >> >> > >> >> available,
>> > > > >>> >> >> > >> >> > >>>>>>>> use
>> > > > >>> >> >> > >> >> > >>>>>>>> it.  That said, is this load consistant
>> or
>> > > are
>> > > > you
>> > > > >>> >> just
>> > > > >>> >> >> > >> testing
>> > > > >>> >> >> > >> >> an
>> > > > >>> >> >> > >> >> > >>>>>>>> initial hit of each page.
>> > > > >>> >> >> > >> >> > >>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>> Sent from my iPhone
>> > > > >>> >> >> > >> >> > >>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>> On Jan 8, 2010, at 11:25 PM, Ravi <
>> > > > >>> >> >> > ravikapoor101@gmail.com>
>> > > > >>> >> >> > >> >> > wrote:
>> > > > >>> >> >> > >> >> > >>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>  Hi Jan-Kees,
>> > > > >>> >> >> > >> >> > >>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>> Now that I am reading your message
>> again,
>> > I
>> > > > do
>> > > > >>> want
>> > > > >>> >> to
>> > > > >>> >> >> > >> answer
>> > > > >>> >> >> > >> >> > your
>> > > > >>> >> >> > >> >> > >>>>>>>>> questions in detail. First I agree
>> > > reflection
>> > > > is
>> > > > >>> >> cheap,
>> > > > >>> >> >> > >> that is
>> > > > >>> >> >> > >> >> > why
>> > > > >>> >> >> > >> >> > >>>>>>>>> reflection is not my concern. Time
>> being
>> > > > spent in
>> > > > >>> >> >> > >> reflection is
>> > > > >>> >> >> > >> >> > >>>>>>>>> almost negligible compared to time
>> being
>> > > > spent in
>> > > > >>> >> >> > trinidad
>> > > > >>> >> >> > >> >> > classes.
>> > > > >>> >> >> > >> >> > >>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>> Secondly IO and locking etc contribute
>> to
>> > > > clock
>> > > > >>> time
>> > > > >>> >> >> but
>> > > > >>> >> >> > >> not to
>> > > > >>> >> >> > >> >> > CPU
>> > > > >>> >> >> > >> >> > >>>>>>>>> time. e.g. for IO, the thread may be in
>> a
>> > > > wait
>> > > > >>> state
>> > > > >>> >> >> > >> waiting
>> > > > >>> >> >> > >> >> for
>> > > > >>> >> >> > >> >> > >>>>>>>>> data to arrive. In this case, the clock
>> > > keeps
>> > > > >>> >> ticking
>> > > > >>> >> >> but
>> > > > >>> >> >> > >> such
>> > > > >>> >> >> > >> >> a
>> > > > >>> >> >> > >> >> > >>>>>>>>> wait does not need CPU. My numbers are
>> > > > >>> specifically
>> > > > >>> >> CPU
>> > > > >>> >> >> > >> time.
>> > > > >>> >> >> > >> >> > Which
>> > > > >>> >> >> > >> >> > >>>>>>>>> means trinidad is not waiting but
>> > executing
>> > > > CPU
>> > > > >>> >> >> > >> instructions.
>> > > > >>> >> >> > >> >> > >>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>> This is why the user load is also
>> > > irrelevant
>> > > > >>> (high
>> > > > >>> >> load
>> > > > >>> >> >> > >> leads
>> > > > >>> >> >> > >> >> to
>> > > > >>> >> >> > >> >> > >>>>>>>>> adding clock time but not to CPU time).
>> > But
>> > > > since
>> > > > >>> >> you
>> > > > >>> >> >> > >> asked, to
>> > > > >>> >> >> > >> >> > get
>> > > > >>> >> >> > >> >> > >>>>>>>>> these numbers, I am not doing a load
>> > > testing.
>> > > > I
>> > > > >>> am
>> > > > >>> >> >> simply
>> > > > >>> >> >> > >> >> loading
>> > > > >>> >> >> > >> >> > 4
>> > > > >>> >> >> > >> >> > >>>>>>>>> screens 4 times in order (total 16
>> > > screens).
>> > > > >>> >> >> > >> >> > >>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>> Regards
>> > > > >>> >> >> > >> >> > >>>>>>>>> Ravi
>> > > > >>> >> >> > >> >> > >>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>> Jan-Kees van Andel wrote:
>> > > > >>> >> >> > >> >> > >>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>> I'm not sure, but I doubt the mailing
>> > list
>> > > > >>> supports
>> > > > >>> >> >> > >> >> attachments.
>> > > > >>> >> >> > >> >> > >>>>>>>>>> Maybe you could provide a link to some
>> > > image
>> > > > >>> >> hosting
>> > > > >>> >> >> > site?
>> > > > >>> >> >> > >> >> > >>>>>>>>>> My first thought, reflection is darn
>> > > cheap,
>> > > > >>> >> especially
>> > > > >>> >> >> > >> since
>> > > > >>> >> >> > >> >> > Java
>> > > > >>> >> >> > >> >> > >>>>>>>>>> 5
>> > > > >>> >> >> > >> >> > >>>>>>>>>> and even more since Java 6. I'm no IBM
>> > JVM
>> > > > >>> >> specialist,
>> > > > >>> >> >> > but
>> > > > >>> >> >> > >> I
>> > > > >>> >> >> > >> >> > don't
>> > > > >>> >> >> > >> >> > >>>>>>>>>> think there are major differences with
>> > > > >>> HotSpot...
>> > > > >>> >> >> > Compared
>> > > > >>> >> >> > >> >> with
>> > > > >>> >> >> > >> >> > >>>>>>>>>> SQL
>> > > > >>> >> >> > >> >> > >>>>>>>>>> queries, backend transactions, web
>> > service
>> > > > >>> calls,
>> > > > >>> >> etc.
>> > > > >>> >> >> > >> >> > reflective
>> > > > >>> >> >> > >> >> > >>>>>>>>>> method invocations really don't make a
>> > > > >>> difference.
>> > > > >>> >> >> > >> >> > >>>>>>>>>> Having said that, what kind of
>> > application
>> > > > are
>> > > > >>> you
>> > > > >>> >> >> > >> testing?
>> > > > >>> >> >> > >> >> Does
>> > > > >>> >> >> > >> >> > >>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>> this
>> > > > >>> >> >> > >> >> > >>>>
>> > > > >>> >> >> > >> >> > >>>>> application have any I/O, locking or other
>> > > > expensive
>> > > > >>> >> things
>> > > > >>> >> >> > >> that
>> > > > >>> >> >> > >> >> may
>> > > > >>> >> >> > >> >> > >>>>>>>>>> be the cause of the CPU-time
>> imbalance?
>> > > > >>> >> >> > >> >> > >>>>>>>>>> Also, what kind of load are you
>> > simulating
>> > > > on
>> > > > >>> your
>> > > > >>> >> >> > >> >> application?
>> > > > >>> >> >> > >> >> > >>>>>>>>>> Long
>> > > > >>> >> >> > >> >> > >>>>>>>>>> sessions with not much users? Lots of
>> > > short
>> > > > >>> >> sessions?
>> > > > >>> >> >> > >> >> > Hyperactive
>> > > > >>> >> >> > >> >> > >>>>>>>>>> users without any pauses?
>> > > > >>> >> >> > >> >> > >>>>>>>>>> /JK
>> > > > >>> >> >> > >> >> > >>>>>>>>>> Ps. How did you configure your
>> profiler?
>> > > > >>> Sampling
>> > > > >>> >> or
>> > > > >>> >> >> > >> >> > >>>>>>>>>> tracing/instrumentation? Although I
>> > don't
>> > > > think
>> > > > >>> it
>> > > > >>> >> >> makes
>> > > > >>> >> >> > a
>> > > > >>> >> >> > >> >> > >>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>> difference
>> > > > >>> >> >> > >> >> > >>>>
>> > > > >>> >> >> > >> >> > >>>>> in this case, sampling is less accurate...
>> > > > >>> >> >> > >> >> > >>>>>>>>>> 2010/1/8 Ravi Kapoor <
>> > > > ravikapoor101@gmail.com>:
>> > > > >>> >> >> > >> >> > >>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>> The actual call to getter method is
>> > only
>> > > > using
>> > > > >>> 2%
>> > > > >>> >> >> CPU.
>> > > > >>> >> >> > >> Rest
>> > > > >>> >> >> > >> >> 38%
>> > > > >>> >> >> > >> >> > >>>>>>>>>>> is
>> > > > >>> >> >> > >> >> > >>>>>>>>>>> being
>> > > > >>> >> >> > >> >> > >>>>>>>>>>> used within trinidad classes.
>> > > > >>> >> >> > >> >> > >>>>>>>>>>> I am attaching two screenshots to
>> give
>> > > you
>> > > > more
>> > > > >>> >> >> > details.
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>> In first screenshot, you can see at
>> the
>> > > top
>> > > > >>> left
>> > > > >>> >> >> > corner,
>> > > > >>> >> >> > >> >> total
>> > > > >>> >> >> > >> >> > >>>>>>>>>>> CPU
>> > > > >>> >> >> > >> >> > >>>>>>>>>>> units
>> > > > >>> >> >> > >> >> > >>>>>>>>>>> taken by getProperty are 32391
>> > > > >>> >> >> > >> >> > >>>>>>>>>>> getProperty calls
>> > > > >>> >> >> javax.faces.el.ValueBinding.getValue
>> > > > >>> >> >> > >> which
>> > > > >>> >> >> > >> >> > >>>>>>>>>>> calls
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>
>> > > > >>> >> org.apache.myfaces.el.PropertyResolverImpl.getValue
>> > > > >>> >> >> > which
>> > > > >>> >> >> > >> >> calls
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>
>> > > > >>> >> >> org.apache.myfaces.el.PropertyResolverImpl.getProperty
>> > > > >>> >> >> > >> which
>> > > > >>> >> >> > >> >> > >>>>>>>>>>> calls
>> > > > >>> >> >> > >> >> > >>>>>>>>>>> java.lang.reflect.Method.invoke.
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>> In second screenshot you can see that
>> > > > >>> >> Method.invoke
>> > > > >>> >> >> is
>> > > > >>> >> >> > >> using
>> > > > >>> >> >> > >> >> > only
>> > > > >>> >> >> > >> >> > >>>>>>>>>>> 1781 units
>> > > > >>> >> >> > >> >> > >>>>>>>>>>> of CPU. Rest of the time is being
>> spent
>> > > > within
>> > > > >>> >> >> trinidad
>> > > > >>> >> >> > >> >> > classes.
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>> Does this help? Also the rest of
>> > trinidad
>> > > > using
>> > > > >>> >> 45%
>> > > > >>> >> >> CPU
>> > > > >>> >> >> > >> usage
>> > > > >>> >> >> > >> >> > is
>> > > > >>> >> >> > >> >> > >>>>>>>>>>> also highly
>> > > > >>> >> >> > >> >> > >>>>>>>>>>> concerning.
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>> Thanks
>> > > > >>> >> >> > >> >> > >>>>>>>>>>> Ravi
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>> On Fri, Jan 8, 2010 at 1:47 PM,
>> > Jan-Kees
>> > > > van
>> > > > >>> Andel
>> > > > >>> >> >> > >> >> > >>>>>>>>>>> <jankeesvanandel@gmail.com> wrote:
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>> Hey,
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>> Is it possible that the getProperty
>> > > > indirectly
>> > > > >>> >> >> invokes
>> > > > >>> >> >> > >> some
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>> expensive
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>> computation? For example, do you
>> have
>> > > lots
>> > > > of
>> > > > >>> >> logic
>> > > > >>> >> >> > >> inside
>> > > > >>> >> >> > >> >> > your
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>> getters?
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>> Regards,
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>> Jan-Kees
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>> 2010/1/8 Ravi Kapoor <
>> > > > ravikapoor101@gmail.com
>> > > > >>> >:
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>> Hi Matthias,
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>> Here are the details:
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>> Server: Websphere 6.1
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>> Trinidad version: 1.0.7  (We cant
>> > > upgrade
>> > > > to
>> > > > >>> 2.0
>> > > > >>> >> >> > until
>> > > > >>> >> >> > >> we
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>> upgrade
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>> websphere
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>> which will happen in due course.
>> Even
>> > > > then if
>> > > > >>> >> this
>> > > > >>> >> >> > >> issue
>> > > > >>> >> >> > >> >> has
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>> not
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>> been
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>> addressed, the problem may exist in
>> > 2.0
>> > > > as
>> > > > >>> >> well.)
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>> OS: Windows (Even though I am
>> > measuring
>> > > > >>> numbers
>> > > > >>> >> on
>> > > > >>> >> >> > >> windows
>> > > > >>> >> >> > >> >> > but
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>> I
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>> do not
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>> think this is OS specific)
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>> Let me know if you need to know
>> > > anything
>> > > > >>> else.
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>> Regards
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>> Ravi
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>> On Fri, Jan 8, 2010 at 1:09 AM,
>> > > Matthias
>> > > > >>> >> Wessendorf
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>> <matzew@apache.org>wrote:
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>  Hello Ravi,
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>> some more background would be
>> good,
>> > > e.g.
>> > > > >>> what
>> > > > >>> >> >> > version
>> > > > >>> >> >> > >> of
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>> Trinidad etc.
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>> -Matthias
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>> On Thu, Jan 7, 2010 at 11:25 PM,
>> > Ravi
>> > > > Kapoor
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>> <ravikapoor101@gmail.com
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>> wrote:
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>> Has anybody done performance
>> tests
>> > on
>> > > > >>> trinidad
>> > > > >>> >> >> > >> >> application.
>> > > > >>> >> >> > >> >> > I
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>> have an
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>> application and it appears that
>> it
>> > is
>> > > > >>> taking
>> > > > >>> >> >> 80-90%
>> > > > >>> >> >> > >> of
>> > > > >>> >> >> > >> >> CPU
>> > > > >>> >> >> > >> >> > in
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>> my
>> > > > >>> >> >> > >> >> > >>>>
>> > > > >>> >> >> > >> >> > >>>>> application, thus killing performance.
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>> We ran load tests and our CPU
>> went
>> > to
>> > > > 100%
>> > > > >>> >> usage.
>> > > > >>> >> >> > At
>> > > > >>> >> >> > >> this
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>> point we
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>> measured
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>> how much time was being taken by
>> > each
>> > > > >>> >> >> class/method.
>> > > > >>> >> >> > >> Here
>> > > > >>> >> >> > >> >> > are
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>> some
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>> interesting figures:
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>> CPU usage by all Trinidad +
>> myfaces
>> > > > classes
>> > > > >>> =
>> > > > >>> >> >> > 80-90%
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>> Myfaces CPU usage (without
>> > trinidad)
>> > > =
>> > > > 8%
>> > > > >>> >> (which
>> > > > >>> >> >> > >> implies
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>> trinidad is
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>> taking
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>> 70-80% of CPU)
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>> Total time taken by one method
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> >
>> > > > >>> (org.apache.myfaces.trinidad.bean.FacesBeanImpl.getProperty)
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>> =
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>> 40%
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>> Can anybody confirm that they
>> have
>> > > seen
>> > > > >>> this
>> > > > >>> >> >> > >> behavior?
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>> Or if somebody can confirm that
>> > this
>> > > > does
>> > > > >>> not
>> > > > >>> >> >> > happen
>> > > > >>> >> >> > >> in
>> > > > >>> >> >> > >> >> > their
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>> performance
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>> tests, that should help too.
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>> Thanks
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>> Ravi
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>>  --
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>> Matthias Wessendorf
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>> blog:
>> > > > >>> http://matthiaswessendorf.wordpress.com/
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>> sessions:
>> > > > >>> >> http://www.slideshare.net/mwessendorf
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>> twitter:
>> > > http://twitter.com/mwessendorf
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>>>>>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>
>> > > > >>> >> >> > >> >> > >>>>>>
>> > > > >>> >> >> > >> >> > >>>>>
>> > > > >>> >> >> > >> >> > >>
>> > > > >>> >> >> > >> >> > >>
>> > > > >>> >> >> > >> >> > >>
>> > > > >>> >> >> > >> >> > >
>> > > > >>> >> >> > >> >> >
>> > > > >>> >> >> > >> >>
>> > > > >>> >> >> > >> >
>> > > > >>> >> >> > >>
>> > > > >>> >> >> > >
>> > > > >>> >> >> > >
>> > > > >>> >> >> >
>> > > > >>> >> >>
>> > > > >>> >> >
>> > > > >>> >>
>> > > > >>> >
>> > > > >>>
>> > > > >>
>> > > > >
>> > > >
>> > > >
>> > > >
>> > > > --
>> > > >  Matthias Wessendorf
>> > > >
>> > > > blog: http://matthiaswessendorf.wordpress.com/
>> > > > sessions: http://www.slideshare.net/mwessendorf
>> > > > twitter: http://twitter.com/mwessendorf
>> > > >
>> > >
>> >
>>
>



-- 
Matthias Wessendorf

blog: http://matthiaswessendorf.wordpress.com/
sessions: http://www.slideshare.net/mwessendorf
twitter: http://twitter.com/mwessendorf

Mime
View raw message