Doing some performance optimizations in the ndwidget branch.
Here's a flamegraph with pyinstrument on some NDWidget stuff with 7 subplots:
I think the only way to bump up the performance more (other than IO and NDWidget-specific stuff) is reactive rendering, I will make a dedicate issue about that.
Doing some performance optimizations in the
ndwidgetbranch.PlotArea.scenewhen a mesh is added to it. This buys us a lot of fps when using lots of subplots, went from 40 -> 50 with an NDWidget viz with 7 subplots.Axes._get_state()which returns atuple[camera_matrix, viewport_rect, viewport_logical_size, scale]. The axes update only if this state changes. Went from 50 -> ~65fps !TextureArray#1033Here's a flamegraph with
pyinstrumenton someNDWidgetstuff with 7 subplots:I think the only way to bump up the performance more (other than IO and NDWidget-specific stuff) is reactive rendering, I will make a dedicate issue about that.