-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Performance needs to be improved #143
Comments
In First, I'd like to switch over to using EDIT: Ok, this full redraw now only happens when the length of the representations changes. Would still be better to do it with an event though... |
This is largely resolved in #152, which plugged a memory leak with more and more widgets getting added in the background as you worked with the graph. There are some less serious outstanding issues:
|
Note: Placing a node with default values seems to trigger the update function for each input value, and not once for all at once. The update function is pretty lightweight so I would be surprised if this makes a huge difference, but it's an issue that correlates well with the larger nodes taking longer to place. |
I suspect the biggest issue right now is that calls to draw ports check the port status (either dtype and or otype). Neither is prohibitively expensive, but checking the ontological type can really take many ms. This can probably be fixed with some sort of event-system so that the port validity is only updated on connections/updates (i.e. a model event), instead of on a draw call (a UI event). Depending what further improvements we can get in pyiron_ontology, a worst-case fallback position is also to set ontological typing as an activated ability with a special button rather than something that happens automatically. I'd prefer to fully exhaust automated possibilities first though. |
So there were two big issues:
The ontological update status is still pretty slow, and scales poorly with the size of number of ontologically typed ports in the graph. However, the lags are quite livable so I started a separate issue for that (#182) and will close this. |
Selecting nodes with lots of ports takes a long time, I believe the holdup is generating the node controller interface. This needs to be made more performant.
The text was updated successfully, but these errors were encountered: