[richfaces-issues] [JBoss JIRA] Updated: (RF-11000) Hit miss for class loader cost performance problem in Richfaces 4.1.0.

Brian Leathem (JIRA) jira-events at lists.jboss.org
Mon Sep 26 12:11:26 EDT 2011


     [ https://issues.jboss.org/browse/RF-11000?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Brian Leathem updated RF-11000:
-------------------------------

    Description: 
There are scenarios when resources are retrieved during no partial
request processing:
# JSF html renderer (such as ScriptRenderer from faces) require to
know resources names to include them to html/head,
# Resources content request.

We have two types of resources: dynamic and static. Predefined dynamic
resources (such as StateHolderResource) are read using class loader as
they are java classes. Static resources are kept in resources folder
as part of richfaces release jars (jquery.js, richfaces.js, etc).
There is a special case with compiled css that is consider as dynamic
resources but is not important in our case.

The problem appears when we try to load static resources using dynamic
loader. This make unnecessary lookup in java class loader space which
cost time and of course we miss the call as static resources not
exists there.

Statistics that shows class loader hits for every richfaces/ajax4jsf no partial request that will be eliminated after patch:
{code}
Resource::jquery.js                  ::loading::timens:: 558000 ns::timems::0.558 ms::all::1.561496 sec
Resource::richfaces.js               ::loading::timens:: 490000 ns::timems::0.490 ms::all::1.561986 sec
Resource::richfaces-base-component.js::loading::timens:: 593000 ns::timems::0.593 ms::all::1.563672 sec
Resource::richfaces-queue.js         ::loading::timens:: 672000 ns::timems::0.672 ms::all::1.564350 sec
Resource::richfaces-event.js         ::loading::timens::3292000 ns::timems::3.292 ms::all::1.569386 sec
{code}

  was:
There are scenarios when resources are retrieved during no partial
request processing:
  1) JSF html renderer (such as ScriptRenderer from faces) require to
know resources names to include them to html/head,
  2) Resources content request.

We have two types of resources: dynamic and static. Predefined dynamic
resources (such as StateHolderResource) are read using class loader as
they are java classes. Static resources are kept in resources folder
as part of richfaces release jars (jquery.js, richfaces.js, etc).
There is a special case with compiled css that is consider as dynamic
resources but is not important in our case.

The problem appears when we try to load static resources using dynamic
loader. This make unnecessary lookup in java class loader space which
cost time and of course we miss the call as static resources not
exists there.

Statistics that shows class loader hits for every richfaces/ajax4jsf no partial request that will be eliminated after patch:
Resource::jquery.js::loading::timens::558000 ns::timems::0.558
ms::all::1.561496 sec
Resource::richfaces.js::loading::timens::490000 ns::timems::0.49
ms::all::1.561986 sec
Resource::richfaces-base-component.js::loading::timens::593000
ns::timems::0.593 ms::all::1.563672 sec
Resource::richfaces-queue.js::loading::timens::672000
ns::timems::0.672 ms::all::1.56435 sec
Resource::richfaces-event.js::loading::timens::3292000
ns::timems::3.292 ms::all::1.569386 sec



> Hit miss for class loader cost performance problem in Richfaces 4.1.0.
> ----------------------------------------------------------------------
>
>                 Key: RF-11000
>                 URL: https://issues.jboss.org/browse/RF-11000
>             Project: RichFaces
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: core
>    Affects Versions: 4.1.0.Milestone1
>         Environment: Linux, Java 6
>            Reporter: Pawel J.
>            Assignee: Brian Leathem
>            Priority: Trivial
>              Labels: patch_proposed
>             Fix For: 4.1.0.Milestone3
>
>         Attachments: ResourceFactoryImpl-patch.txt
>
>   Original Estimate: 1 hour
>  Remaining Estimate: 1 hour
>
> There are scenarios when resources are retrieved during no partial
> request processing:
> # JSF html renderer (such as ScriptRenderer from faces) require to
> know resources names to include them to html/head,
> # Resources content request.
> We have two types of resources: dynamic and static. Predefined dynamic
> resources (such as StateHolderResource) are read using class loader as
> they are java classes. Static resources are kept in resources folder
> as part of richfaces release jars (jquery.js, richfaces.js, etc).
> There is a special case with compiled css that is consider as dynamic
> resources but is not important in our case.
> The problem appears when we try to load static resources using dynamic
> loader. This make unnecessary lookup in java class loader space which
> cost time and of course we miss the call as static resources not
> exists there.
> Statistics that shows class loader hits for every richfaces/ajax4jsf no partial request that will be eliminated after patch:
> {code}
> Resource::jquery.js                  ::loading::timens:: 558000 ns::timems::0.558 ms::all::1.561496 sec
> Resource::richfaces.js               ::loading::timens:: 490000 ns::timems::0.490 ms::all::1.561986 sec
> Resource::richfaces-base-component.js::loading::timens:: 593000 ns::timems::0.593 ms::all::1.563672 sec
> Resource::richfaces-queue.js         ::loading::timens:: 672000 ns::timems::0.672 ms::all::1.564350 sec
> Resource::richfaces-event.js         ::loading::timens::3292000 ns::timems::3.292 ms::all::1.569386 sec
> {code}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the richfaces-issues mailing list