speed up display by caching formatter_helpstr #2830
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
formatter_helpstr
is slow, and runs once per command, including all movements likego-down
. On my system it adds an average delay of about 7 ms. Every so often it adds 20-30 ms.The code that calls this is
drawRightStatus()
. The use offormatter_helpstr
was already being cached, but the cache is cleared between commands. This PR caches the result permanently, once per sheet.The 7 ms delay is in the creation of
HelpSheet
. I don't know why the delays are irregular, spiking up to 20-30ms about 2% of the time. I suspect it's due to thevd.sync()
call invd.sync(self.helpsheet.ensureLoaded())
.In my testing, the net effect of this PR is about a 40% speedup for
draw_all()
.