Skip to content
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 tweaks. #305

Merged
merged 18 commits into from
Nov 13, 2015
Merged

Performance tweaks. #305

merged 18 commits into from
Nov 13, 2015

Conversation

gavinlaking
Copy link
Owner

Fixes #302.

This allows us to then fetch the respective interface for the Char, which should
make colour/style fetching faster.

Work relating to #302.
Note: Stream will try to access Line, and Line will access the parent view.

Work relating to #302.
Compression is achieved by not repeatedly sending a position when only the x
coordinate has changed; i.e. we are on the same line, just advancing a
character.

In the test application, we have gone from sending 72260 characters to the
terminal to just 13971- approximately 80% reduction. Reported compression time
has changed from average 20.6ms to 13.2ms- a ~35% improvement.

Also, add more documentation.

Work related to #302.
In Presentation::Colour and Presentation::Styles, a check has been added for
whether we are dealing with a Vedeu::Views::Char- if so, then we can use the
'#interface' method of that class to get the colour information instead of the
slower '#parent' route.

Work relating to #302.
This class will reduce duplication throughout Vedeu where an array
of arrays at a given width and height are required.
This will allow us to access the related interface for its colours and styles which
will be used to optimise the clearing and redrawing of a view.
This will form the basis of a new way to maintain each view.
- Extract some logic to methods for readability.
- Add more documentation.
We don't need all this extra information for Editor characters.
Rather than redraw the whole screen on a document character change
we update the buffer and redraw only the document area.

Fixes #302.
gavinlaking added a commit that referenced this pull request Nov 13, 2015
@gavinlaking gavinlaking merged commit 2eed81b into master Nov 13, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant