Uploaded image for project: 'MyFaces Core'
  1. MyFaces Core
  2. MYFACES-3150

[perf] buildView: review usage of "facelets.FACET_NAME"

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 2.1.0-SNAPSHOT
    • 2.0.13, 2.1.7
    • General
    • None
    • myfaces core trunk

    Description

      Consider 1000 components in view without any f:facet.

      During VDL.buildView Facelets call for each component ComponentHandler.getFacetName(FaceletContext, UIComponent) and that creates 3 calls of Map.get():

      1) _ComponentAttributesMap.getPropertyDescriptor(String)
      2) _ComponentAttributesMap.getUnderlyingMap().get()
      3) UIComponent.getValueExpression(String)

      3000 "empty" invocations in buildView withnout match.

      Suggestions:

      • do not use Component.attribute for that marker (comes from FacetHandler)
      • replace map.get calls with property for performance reasons
      • use a stack or property on AbstractFaceletContext if possible

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            lu4242 Leonardo Uribe
            markoc50 Martin Kočí
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment