-
Notifications
You must be signed in to change notification settings - Fork 10
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 vs other terminals #88
Comments
Definitely a hot discussed topic. And fairly difficult to do it right. |
It probably can't.
The rendering is still pretty naive. There are many performance improvements we can do even in GL 2.1:
|
Wow, after reading all of this and the links provided, Ive gained a whole new look on terminals. Terminal rendering is a dang magic, its own art even. It also made me realize how unimportant it is that a terminal can render the "ls" output command faster than another terminal. My personal reason for using wayst is minimalism, and small dependencies. It looks beautiful, and performs on par with other GPU accelerated terminals IMO. Most users wont notice the seconds difference in these benchmarks, and are unrealistic to actual terminal use. Knowing this, wayst begins to truly shine. It it literally, the GPU accelerated version of st. Thats how I always thought of this project, and with how minimal it is, who could not think this. Its nothing but a complement. |
While Alacritty's renderer and parser may live in separate threads (do they? I'm not sure), I'm fairly sure the grid is locked. I.e. only one of them can access it at a time. However, Alacritty has a separate PTY reader thread, with a fairly large input buffer. This allows it to consume (but not parse) a large amount of client output while e.g. rendering. As for foot, it should be seen as a single-threaded application. The renderer and parser both lives in the main thread. Now, the renderer will offload rendering tasks to threads, but nothing else in foot executes while this is happening. I.e. compared to Alacritty, foot cannot consume any client output while it's rendering. |
So I've been a little busy and managed to upload a vtebench-git package to the AUR. Anyone on Arch can give vtebench-git a try. I had vtebench confused with another program I maintain on the AUR, vttest, which wasn't the program I was looking for to benchmark. https://aur.archlinux.org/packages/vtebench-git/ I also uploaded a git version of notcurses if anyone on Arch is interested. https://aur.archlinux.org/packages/notcurses-git/ Using vtebench, I ran the "dense_cells" benchmark on the three terminals. wayst:
foot:
alacritty:
I totally forgot to mention my specs this whole time. This is on my poopy laptop. |
This isnt the best way to benchmark terminal performance, but it will suffice. When I find a more reliable method, I'll post the results later. For now, this method uses:
time find / -xdev
You must first launch this command once before starting the benchmarks. The first run seems to cache alot of the files, so all runs thereafter will be accurate as long as your not stressing your IO somehow.
wayst:
0:09.04elapsed
0:08.97elapsed
0:09.07elapsed
foot:
0:05.51elapsed
0:05.09elapsed
0:05.10elapsed
alacritty:
0:03.25elapsed
0:03.22elapsed
0:03.22elapsed
So the question here is how can wayst be up to par with alacritty?
The text was updated successfully, but these errors were encountered: