You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Michael Kurz (JIRA)" <de...@myfaces.apache.org> on 2007/10/22 13:32:51 UTC

[jira] Created: (MYFACES-1749) Performance Improvements

Performance Improvements
------------------------

                 Key: MYFACES-1749
                 URL: https://issues.apache.org/jira/browse/MYFACES-1749
             Project: MyFaces Core
          Issue Type: Improvement
    Affects Versions: 1.2.1-SNAPSHOT
            Reporter: Michael Kurz
             Fix For: 1.2.1-SNAPSHOT
         Attachments: myfaces1749-patch.zip

Last week I did some JMeter testing, profiling and code checking on MyFaces to try increase the overall performance. Here are my suggestions for improvement:

*) _ComponentAttributesMap
I introduced a cache for maps with component attributes. This cache avoids rebuilding the map for every instance of the same component class. It is implemented using a WeakHashMap to allow the GC to remove entries that are not referenced in any instance.

*) UIComponentBase
Made a few changes in isIdValid as it is called quite often. The new id is now checked against the old id and if it is the same it is assumed as valid (avoids checking chars). Additionally I use isLetterOrDigit() and access string chars directly insted of fetching an array first.

*) ImplicitObjectResolver
I replaced List with Map to avoid iteration over lists.

*) HtmlResponseWriterImpl
Use new method of HTMLEncoder for char[]

*) HTMLEncoder
Improved performance of encode mthod and added a new one that takes a char[] und directly writes to a writer.

*) UnicodeEncoder
Replaced StringBuffer with StringBuilder.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (MYFACES-1749) Performance Improvements

Posted by "Martin Marinschek (JIRA)" <de...@myfaces.apache.org>.
     [ https://issues.apache.org/jira/browse/MYFACES-1749?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Marinschek updated MYFACES-1749:
---------------------------------------

    Resolution: Fixed
      Assignee: Martin Marinschek
        Status: Resolved  (was: Patch Available)

Thanks to Michael Kurz for this important patch.

regards,

Martin

> Performance Improvements
> ------------------------
>
>                 Key: MYFACES-1749
>                 URL: https://issues.apache.org/jira/browse/MYFACES-1749
>             Project: MyFaces Core
>          Issue Type: Improvement
>    Affects Versions: 1.2.1-SNAPSHOT
>            Reporter: Michael Kurz
>            Assignee: Martin Marinschek
>             Fix For: 1.2.1-SNAPSHOT
>
>         Attachments: myfaces1749-patch.zip
>
>
> Last week I did some JMeter testing, profiling and code checking on MyFaces to try increase the overall performance. Here are my suggestions for improvement:
> *) _ComponentAttributesMap
> I introduced a cache for maps with component attributes. This cache avoids rebuilding the map for every instance of the same component class. It is implemented using a WeakHashMap to allow the GC to remove entries that are not referenced in any instance.
> *) UIComponentBase
> Made a few changes in isIdValid as it is called quite often. The new id is now checked against the old id and if it is the same it is assumed as valid (avoids checking chars). Additionally I use isLetterOrDigit() and access string chars directly insted of fetching an array first.
> *) ImplicitObjectResolver
> I replaced List with Map to avoid iteration over lists.
> *) HtmlResponseWriterImpl
> Use new method of HTMLEncoder for char[]
> *) HTMLEncoder
> Improved performance of encode mthod and added a new one that takes a char[] und directly writes to a writer.
> *) UnicodeEncoder
> Replaced StringBuffer with StringBuilder.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (MYFACES-1749) Performance Improvements

Posted by "Michael Kurz (JIRA)" <de...@myfaces.apache.org>.
     [ https://issues.apache.org/jira/browse/MYFACES-1749?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Kurz updated MYFACES-1749:
----------------------------------

    Status: Patch Available  (was: Open)

> Performance Improvements
> ------------------------
>
>                 Key: MYFACES-1749
>                 URL: https://issues.apache.org/jira/browse/MYFACES-1749
>             Project: MyFaces Core
>          Issue Type: Improvement
>    Affects Versions: 1.2.1-SNAPSHOT
>            Reporter: Michael Kurz
>             Fix For: 1.2.1-SNAPSHOT
>
>         Attachments: myfaces1749-patch.zip
>
>
> Last week I did some JMeter testing, profiling and code checking on MyFaces to try increase the overall performance. Here are my suggestions for improvement:
> *) _ComponentAttributesMap
> I introduced a cache for maps with component attributes. This cache avoids rebuilding the map for every instance of the same component class. It is implemented using a WeakHashMap to allow the GC to remove entries that are not referenced in any instance.
> *) UIComponentBase
> Made a few changes in isIdValid as it is called quite often. The new id is now checked against the old id and if it is the same it is assumed as valid (avoids checking chars). Additionally I use isLetterOrDigit() and access string chars directly insted of fetching an array first.
> *) ImplicitObjectResolver
> I replaced List with Map to avoid iteration over lists.
> *) HtmlResponseWriterImpl
> Use new method of HTMLEncoder for char[]
> *) HTMLEncoder
> Improved performance of encode mthod and added a new one that takes a char[] und directly writes to a writer.
> *) UnicodeEncoder
> Replaced StringBuffer with StringBuilder.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.