A significant portion of the time was wasted in getting the project's applied rule list (g_pACTracks.Get()) over and over, plus each rule item (+ gradients) doing a linear-time lookup in that list.
Also when loading a project or Ctrl+A the auto-coloring was applied thrice. Twice when renaming a track. Before = 3*4s, after = 1*0.06s.
A significant portion of the time was wasted in getting the project's applied rule list (
g_pACTracks.Get()
) over and over, plus each rule item (+ gradients) doing a linear-time lookup in that list.Also when loading a project or Ctrl+A the auto-coloring was applied thrice. Twice when renaming a track. Before = 3*4s, after = 1*0.06s.