Wow.  I hadn't realized that 20 renderers would require 400 classes.

On Sat, Nov 2, 2013 at 1:00 PM, Leonardo Uribe <[email protected]> wrote:
> 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 <[email protected]>
>>
>> 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)
>> <[email protected]> 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)
>
>

Reply via email to