You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Doing some performance optimizations in the ndwidget branch.
lighting objects are only present in a PlotArea.scene when 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.
optimize Axes update. I added an Axes._get_state() which returns a tuple[camera_matrix, viewport_rect, viewport_logical_size, scale]. The axes update only if this state changes. Went from 50 -> ~65fps !
we're probably doing a bunch of copies all over the place, use astype(copy=False) when necessary
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.