Merged
Conversation
Use requestAnimationFrame in addition to a queue to refresh every animation frame but only when a refresh is needed. Fixes xtermjs#280 Fixes xtermjs#290
eae19a2 to
97feb33
Compare
This was referenced Dec 31, 2016
This allows the refresh public API to still function
Member
|
Yeah the frame updates happen more often, making it feeling snappier (for the price of some more paints). IMHO this can only be improved any further by separating the websocket communication and terminal handling into a separate thread. See #150 (comment) and #150 (comment) for a comparison on my local computer with webworker. The second one with the webworker basically removes the websocket time (grey in the pie) and the terminal status updates (most of the yellow scripting time) from the main thread and adds some smaller scripting time for syncing between the threads. (Well it was based on the old code from July, might not work anymore with the new changes). |
This was referenced Jan 3, 2017
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Use requestAnimationFrame in addition to a queue to refresh every animation
frame but only when a refresh is needed.
Fixes #280
This change results in a slight degredation in performance in terms of raw numbers but improves by being far more responsive by losing minimal frames and not locking up the web page while processing the output.
requestAnimationFramewill only fire once the callback has completed so it will drop frames when necessary.Below tests were running
ls -lR /usr/lib, notice the increased rendering, paint and scripting time on the after timeline.Before:
After: