Application of changes by the ChangeManager is extremely slow
-------------------------------------------------------------

                 Key: TRINIDAD-1356
                 URL: https://issues.apache.org/jira/browse/TRINIDAD-1356
             Project: MyFaces Trinidad
          Issue Type: Improvement
    Affects Versions: 1.2.10-core
         Environment: All
            Reporter: Blake Sullivan


Now that the SessionChangeManager applies all of the changes at the end of the 
RichDocument's tag processing, change application is extremely slow.  This is 
because the ChangeManager needs to call invokeOnComponent for each change and 
there is no removal of duplicate changes.  Since many components add a new 
attribute change every time the component is manipulated--splitters, disclosure 
components, tables, etc.  The SessionChangeManager overhead becomes higher and 
higher the more time that the user spends interacting with the page.  The 
solution is to collapse the most common changes--attribute changes--together to 
decrease the number of changes that need to be applied on each request.  
(Another fix would be avoiding application of changes where the component state 
already includes the change).  The complicating factor in collapsing changes is 
that the MoveChildComponentChange can cause the clientId of a component to be 
modified so that the current clientId of the component doesn't match the 
clientId that an earlier change was recorded against.  The solution to this 
problem is to track the MoveChildComponentChanges and build a mapping table to 
Map current clientIds to earlier clientIds as we iterate through the change 
list looking for matches.

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

Reply via email to