Blender Git Commit Log

Git Commits -> Revision bdbd0cf

Revision bdbd0cf by Hans Goudey (master)
December 21, 2021, 15:23 (GMT)
Nodes: Improve performance when freeing a node tree

This commit makes freeing a node tree about 25 to 30 times faster.
Freeing a node tree happens whenever it is edited. Freeing a node
tree with about 4000 nodes went from 30-50ms to about 2 ms.

This was so slow before because for every node that was freed
when freeing the node tree, `node_free_node` looped over all
other nodes to detach frames, and then looped over all links to
remove any links connected to the node. That was all pointless
work because everything else is about to be freed anyway.

Instead, move that "detaching" behavior to the dedicated function
for removing a single node, and to the "local" version of the free
function to be safe, since I know less about what that version expects.

Differential Revision: https://developer.blender.org/D13636

Commit Details:

Full Hash: bdbd0cffda697eb5d60edf307771409987f60dc4
Parent Commit: 8cf1994
Lines Changed: +10, -5

1 Modified Path:

/source/blender/blenkernel/intern/node.cc (+10, -5) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021