Regression in performances of `flushParameterValuesToValueTree()` between 5.3 and 5.4



I have a plugin with a pretty big number of parameters stored in an AudioProcessorValueTreeState.
I just tried upgrading from juce 5.3 to juce 5.4 and noticed an important lag that wasn’t there before.

From the profiler, it seems that now every call to flushParameterValuesToValueTree() (so 10 times a second), when iterating through the parameters, asks for the subtree through the new getChildValueTree() method which parses the tree for a corresponding String ID.

This results in a metric ton of String comparisons that really hit the performances hard on such a type of parameters-rich plugin.

Would there be a way of reverting the comparison to the old method which was more efficient?


Have you tested this with the tip of the develop branch? There have been a number of improvements since 5.4.