I did run some tests as this seems to affect my drawing performance a lot. Of course this is mainly a problem on Windows as the CoreGraphics renderer doesn’t go through that code. The complex paths I draw are sample overviews and frequency plots and both are affected and seem to be a common thing to draw with Juce. When I draw sample waveforms, the edge count per line goes over 300 sometimes. With the current implementation that means reallocating and copying the table about 10 times.
The default value is 32 edges per line
const int juce_edgeTableDefaultEdgesPerLine = 32;
and then the count gets increased by 32 everytime the max is surpassed.
In my humble opinion paths to draw fall into two categories. Simple ones where 32 is enough and complex ones that can reach quite high numbers, so at least for me the best approach would be to increase the edge count a lot in case the limit is reached. So I changed my local copy to quadruple the count once the limit is breached.
roeland, why did you use *3/2 ? I would at least use *2.