-
Notifications
You must be signed in to change notification settings - Fork 174
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
[Enhancement] Speed up initial module imports #416
Conversation
As of f30c1da: This pr is passing all tests on non-raspi as well as pi2. Same when integrated with on-deck PRs #380, #410, and #394 I have already been thru many screens, I'll continue to do so over time... this is my temporary "dev" branch that I'll test everything on until merged. Performance improvement is VERY impressive, it's not a trade-off, it's a noticeable net-gain.
Still to do:
Nicely done! |
Concept ACK. Did some testings and everything worked without issue. I need to review the code changes. pytest now prints the module load time making it much less readable output. |
Yes, @newtonick I'll be removing all the debugging noise as it gets closer to being ready to merge. Once I update this branch with the latest in |
Once conflicting files are resolved I'd love to review and merge. |
Testing this branch in a custom SeedSigner OS build seems to work as expected. The background thread is not yet complete if you immediately select a menu option. Worst-case scenario seems to be about a 2-sec delay while it finishes loading. If you don't immediately click and let the thread complete, the next screen loads without a delay as expected. The onscreen rendering rate definitely looks choppier while all the background processing is going on, but then the other rendering improvements in |
as of 260d282 ACK tested. I've been watching it for some time; big changes and big improvements in this pr. |
ACK Tested |
Builds off of branch by @jdlcdl.
Prevent long delays on the initial Main Menu screen as well as further delays when clicking into any of the initial menu options.
import *
approach toseedsigner.models
in its init.py.Controller.storage
to account for access during test suite runs.Controller.screensaver
to discourage direct access when possible.