myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Leonardo Uribe <lu4...@gmail.com>
Subject Re: [jira] [Created] (MYFACES-3815) Lazy instantiation of Renderer classes
Date Sat, 02 Nov 2013 17:00:48 GMT
Hi Mike

I have been doing some profiling with YourKit profiler, and I have seen
that with the patch already applied in trunk we avoid load around 400
classes at startup in the hello world application, which is about 20
renderers.

The solution will not have any side effects, because it is automatically
disabled if the environment requires to do so.

I'm doing some tests with Google Application Engine, to see how
far can we reduce the cold start time. It is hard, because JSF is quite
big and complex, but the idea is find ways to reduce the startup
time, and the patch seems to help a bit.

regards,

Leonardo Uribe


2013/11/2 Mike Kienenberger <mkienenb@gmail.com>

> I'm guessing this isn't that big a deal if you're only using the
> standard JSF libraries.   How many renderers are we talking about?
>
> I suppose it might be an issue if you have a project that include
> bunch of JSF libraries.
>
> On Fri, Nov 1, 2013 at 9:38 PM, Leonardo Uribe (JIRA)
> <dev@myfaces.apache.org> wrote:
> > Leonardo Uribe created MYFACES-3815:
> > ---------------------------------------
> >
> >              Summary: Lazy instantiation of Renderer classes
> >                  Key: MYFACES-3815
> >                  URL: https://issues.apache.org/jira/browse/MYFACES-3815
> >              Project: MyFaces Core
> >           Issue Type: Improvement
> >           Components: JSR-344
> >             Reporter: Leonardo Uribe
> >             Assignee: Leonardo Uribe
> >
> >
> > The initialization algorithm create all Renderer instances at startup
> time. The side effect is a lot of classes are loaded into permgen memory
> without need.
> >
> > With a clever trick we can avoid that, providing a custom interfaces
> LazyRenderKit and making html basic renderkit implements it. Then, in the
> init code we check for that interface and if is present, we use it to
> register the Renderer in a lazy way, otherwise we use the standard form.
> Add the required method to RenderKit looks like a good idea for include it
> in the spec.
> >
> >
> >
> > --
> > This message was sent by Atlassian JIRA
> > (v6.1#6144)
>

Mime
View raw message