bugGoatee - Bugs: bug #43973, Extraneous copying when modifying...

 
 

You are not allowed to post comments on this tracker with your current authentication level.

bug #43973: Extraneous copying when modifying deep nodes

Submitter:  Bryan Gardiner <khumba>
Submitted:  Sun 11 Jan 2015 12:58:06 AM UTC
   
 
Category:  Library Severity:  4 - Important
Item Group:  Bug Status:  Fixed
Privacy:  Public Assigned to:  khumba
Open/Closed:  Closed Release:  0.1.0
Fixed Release:  0.3.0

Wed 14 Jan 2015 02:30:25 AM UTC, comment #1: 
Bryan Gardiner <khumba>
Group administrator
Sun 11 Jan 2015 12:58:06 AM UTC, original submission:  

cursorModifyNode is used to edit a node, usually from within a Go monad (modifyProperties, etc.).  cursorModifyNode creates a new cursor by recursively updating the cursor's parent node to contain the modified current node, and returning a cursor that is a child of the modified parent.  This leads to walking right up to the root of the tree when we modify a node.  In the UI, because we usually want to show the result of such a mutation, this forces evaluation of the whole new tree (can be seen by tracing cursorModifyNode).

It would be much better to store mutations temporarily in the current cursor/node, and only propagate those into the parent when we move up the tree.

This is like bug #42673 (Modifying game info from a deep node is slow) and has a similar, noticeable performance hit, but the fix will require slightly different code to handle the propagation.  Fixing one won't automatically fix the other.

Bryan Gardiner <khumba>
Group administrator

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by khumba (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

     

    Follow 3 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2015-03-20 khumba Open/ClosedOpen Closed
        Fixed ReleaseNone 0.3.0
    2015-01-14 khumba StatusNone Fixed

    Back to the top

    Powered by Savane 3.13-d3ae.
    Corresponding source code