Ack, sorry I didn't include that. Tapestry 3.0.3.

        --- Pat

> -----Original Message-----
> From: Howard Lewis Ship [mailto:[EMAIL PROTECTED]
> Sent: Monday, November 21, 2005 7:51 PM
> To: Tapestry users
> Subject: Re: A Bit of Profiling Goodness
> 
> And again ... was this Tapestry 3 or Tapestry 4?
> 
> On 11/21/05, Patrick Casey <[EMAIL PROTECTED]> wrote:
> >
> >         A couple of things:
> >
> >         Compiled expressions make a huge difference; I have a bit of egg
> on
> > my face in this regard. 100000 runs of the same compiled ognl expression
> run
> > significantly faster than the beanutils (100 or so ms). Unfortunately,
> that
> > still doesn't help to explain where the time is being burned in
> production.
> >
> >         I definitely am not disabling the cache, but just to be
> > double-secret sure I ran the profiler again and stuck a breakpoint in
> the
> > expression initializer. The expressions get initialized on first page
> render
> > and we never stop there again, so we're definitely yanking subsequent
> page
> > renders out of the pool. Additionally, I've been profiling renders 2..6
> > typically so as not to pollute the profile with the page creation (I'm
> more
> > interested in runtime performance).
> >
> >         I can't seem to find the source code for ognl on open symphony,
> > otherwise I could dive right in and see what is going on here, but what
> I
> > can say is this:
> >
> >         To render the page 5 times, Tapestry calls
> >
> >         Ognl.getValue(<parsed expression>, <context>, <root>) 955 times.
> >         These 955 evaluations take a total of 493 ms.
> >
> >         It also calls
> >         Ognl.setValue(<parsed expression>, <context>, <root>) 1,070
> times
> >         These 1,070 evaluations take a total of 540 ms
> >
> >         So we're looking at about 0.5 ms/OGNL call on my setup.
> >
> >         Total time (CPU) to render the page (5X), from the time we hit
> the
> > Servlet's doGet method is 2,006 ms, meaning we're spending just over
> half of
> > the total page render time inside of OGNL. Prior to my ognl dot pruning,
> it
> > was more like 3.5 seconds for 5 renders, of which 2.4 second of it was
> spent
> > inside of OGNL.
> >
> >         It's not a Tapestry bug that I can see e.g. you're absolutely
> right
> > in that you are compiling the expressions, but even with the compiled
> > expressions that's still where the time is being burned.
> >
> >         So all my profiling is telling me the OGNL is the point of
> attack to
> > improve tapestry performance. Unfortunately, your pointing out that
> you're
> > *already* compiling the expressions, and my sandbox testing to the
> effect
> > that compiled ognl expressions, at least compared to the obvious
> > alternatives, are actually pretty fast, has me scratching my head.
> >
> >         Because, *if* OGNL isn't inherently slow and, instead, we're
> running
> > up against the unalterable wall of the java reflection API, *then* you
> > byte-code enhancement approach may be the only solution. After my first
> > round of sandbox testing though, I'd begun to let myself hope there
> might be
> > a silver bullet out there. Now, I'm quite a bit less confident.
> >
> >         --- Pat
> >
> > > -----Original Message-----
> > > From: Howard Lewis Ship [mailto:[EMAIL PROTECTED]
> > > Sent: Monday, November 21, 2005 3:19 PM
> > > To: Tapestry users
> > > Subject: Re: A Bit of Profiling Goodness
> > >
> > > Wondering if you could also try OGNL using compiled expressions?  That
> > > may be the problem.  Tapestry compiles the expressions with OGNL
> > > before using them (and caches the compiled expressions).
> > >
> > > Also (please forgive me) on your live app, was caching disabled?  With
> > > caching disabled, the OGNL cache will be cleared at the end of each
> > > request, forcing it to re-introspect as well.
> > >
> > <snip>
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> 
> 
> --
> Howard M. Lewis Ship
> Independent J2EE / Open-Source Java Consultant
> Creator, Jakarta Tapestry
> Creator, Jakarta HiveMind
> 
> Professional Tapestry training, mentoring, support
> and project work.  http://howardlewisship.com
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to