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

Add benchmark with realistic escape sequence frequency #40

Closed
chrisduerr opened this issue Dec 14, 2024 · 0 comments · Fixed by #41
Closed

Add benchmark with realistic escape sequence frequency #40

chrisduerr opened this issue Dec 14, 2024 · 0 comments · Fixed by #41

Comments

@chrisduerr
Copy link
Member

chrisduerr commented Dec 14, 2024

Currently we have only extremely focused benchmarks. dense_cells tests a scenario where every single cell takes a huge escape sequence, while light_cells tests for scenarios where pretty much no escape sequences are present.

When it comes to improving performance with something like alacritty/alacritty#8347, it's not always possible to improve every individual component of the parser. Since the "medium workload" in between dense_cells and light_cells is likely the best representation of what users would encounter in the real world, it should make sense to add this extra benchmark as a hint at real-world performance.

Generally speaking this is likely best simulated by an escape sequence heavy application, that doesn't just focus on generating graphical effects (like mpv -vo tct). The best choice that comes to my mind would be vim with a workflow that includes both local edits, complete buffer jumps, and popups like fuzzy finders.

chrisduerr added a commit to chrisduerr/vtebench that referenced this issue Dec 20, 2024
This patch adds a new benchmark which aims at filling a gap between the
`dense_cells` and the `light_cells` benchmarks, providing a more
realistic example of escape sequence density in a normal terminal
workflow.

The new benchmark is an Alacritty ref test recording of a short NeoVim
session, which includes several small and large buffer movements,
different styles of underlines, and window-in-window using a fuzzy
finder and tiled buffers.

This new test intentionally uses a workflow that is pretty escape
sequence heavy, while still being realistic, since workflows without
heavy escape sequence use are already reasonably well covered by the
`light_cells` benchmark.

Closes alacritty#40.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging a pull request may close this issue.

1 participant