State:Closed|icon_bug|icon_katana|database:public|Resolution:Fixed|TargetRelease:4.0v1|BugID:438904|
Problem summary:
Node names that are driven by an expression parameter are re-evaluated for every node graph parameter change (outside of a node graph parsing context). Where the number of such nodes is significant, performance can be significantly degraded, particularly in batch (scripted) operations, as well as when loading nodes whose name is synchronised back to their 'name' parameter, such as Shading Nodes (since the synchronisation parameter change event is handled after exiting the node graph parsing context).
Steps to reproduce:
Reproduction A (all Katana versions):
Run Katana with the attached script ('time_creation_of_nodes_with_parameter_driven_names.py') which creates a variable number of Render nodes with an expressioned 'passName' parameter. Observe that execution time scales quadratically with the number of nodes created. In Katana 3.6, creating 200 nodes takes around 5 seconds (around 3 seconds in Katana 3.1).
Reproduction B (Katana 3.5v2+):
It doesn't take many copies before a single paste operation takes an unreasonable amount of time (several seconds).
Workaround:
No known workaround.
Tested versions/platforms:
We're sorry to hear that
Please tell us why