ICEfaces
  1. ICEfaces
  2. ICE-3300

Framework algorithm improvements in passThroughAttribute and DOMSerialization areas

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.7.1
    • Fix Version/s: 1.7.2
    • Component/s: Framework, ICE-Components
    • Labels:
      None
    • Environment:
      ICEfaces

      Description

      Rendering performance in applications is always a concern, but a clients Facelets application illustrated particularly poor rendering performance.

      https://www.icesoft.ca:4443/supportilla/show_bug.cgi?id=4903

      First notably were two methods on top of the profiling time lists. The serialize method of the DOMSerilizer class, and the renderNonBooleanAttributes method of the PassThroughAtrributeRenderer both have some questionable code. It might be justifiable but it seems very expensive.

      This bug should be used to track any changes made to the framework and components with respect to this application.

        Issue Links

          Activity

          Hide
          Greg Dick added a comment -

          I've attached two files that have improvements to their short term algorithms. They appear to help, offering about a 12.5% improvement in the customer testcase, but the changes also appear to have regressions in some unidentified form.

          Show
          Greg Dick added a comment - I've attached two files that have improvements to their short term algorithms. They appear to help, offering about a 12.5% improvement in the customer testcase, but the changes also appear to have regressions in some unidentified form.
          Hide
          Greg Dick added a comment -

          The renderer implementation now avoids removing attributes from the targetNode since, in a clean DOM rendering situation, there wont be any pre-existing attributes.

          Show
          Greg Dick added a comment - The renderer implementation now avoids removing attributes from the targetNode since, in a clean DOM rendering situation, there wont be any pre-existing attributes.
          Hide
          Greg Dick added a comment -

          The serialize method in this method attempts to reduce the extreme number of calls to isAncestor for large Node counts.

          Show
          Greg Dick added a comment - The serialize method in this method attempts to reduce the extreme number of calls to isAncestor for large Node counts.
          Hide
          Greg Dick added a comment -

          Following issues were seen with comp-showcase ( latest 1.7 branch ) on
          tomcat6.0 & tomcat5 (FF2 & IE7)

          • Autocomplete not working (most of the times no list is shown)
          • Menubar not working reliably (sometimes does not show child menus
            on mouse over or even onclick)
          • Drag and Drop not working reliably (sometimes the item is not
            getting added to the cart after drag and drop also, sticky drag
            and drop)
          • Panel popup not working reliable ( not able to drag it sometimes)
          Show
          Greg Dick added a comment - Following issues were seen with comp-showcase ( latest 1.7 branch ) on tomcat6.0 & tomcat5 (FF2 & IE7) Autocomplete not working (most of the times no list is shown) Menubar not working reliably (sometimes does not show child menus on mouse over or even onclick) Drag and Drop not working reliably (sometimes the item is not getting added to the cart after drag and drop also, sticky drag and drop) Panel popup not working reliable ( not able to drag it sometimes)
          Hide
          Ken Fyten added a comment -

          Also see related fixes in ICE-3322.

          Show
          Ken Fyten added a comment - Also see related fixes in ICE-3322.
          Hide
          Greg Dick added a comment -

          Changes have been commited correcting the reported issues with this fix.

          Show
          Greg Dick added a comment - Changes have been commited correcting the reported issues with this fix.
          Hide
          Deryk Sinotte added a comment -

          Re-assigning to Greg for further comment or resolution.

          Show
          Deryk Sinotte added a comment - Re-assigning to Greg for further comment or resolution.
          Hide
          Greg Dick added a comment -

          The serialize method no longer show up on the top of the profiling lists, and for the clients application in question, this results in a large reduction in the number of method calls. This doesn't necessarily result in a large realtime improvement (roughly 10% in the app in question, eg. 1/10's of seconds on my development machine) but the change will definitely effect scalability in this type of application with large, changing, data sets.

          Much more improvement in rendering speed occurs with changes to the pass through attribute rendering http://jira.icefaces.org/browse/ICE-3346

          Show
          Greg Dick added a comment - The serialize method no longer show up on the top of the profiling lists, and for the clients application in question, this results in a large reduction in the number of method calls. This doesn't necessarily result in a large realtime improvement (roughly 10% in the app in question, eg. 1/10's of seconds on my development machine) but the change will definitely effect scalability in this type of application with large, changing, data sets. Much more improvement in rendering speed occurs with changes to the pass through attribute rendering http://jira.icefaces.org/browse/ICE-3346

            People

            • Assignee:
              Unassigned
              Reporter:
              Greg Dick
            • Votes:
              2 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: