liamg / darktile

:waning_crescent_moon: Darktile is a GPU rendered terminal emulator designed for tiling window managers.
MIT License
3.04k stars 112 forks source link

Poor performance on Windows #280

Closed lietu closed 3 years ago

lietu commented 5 years ago

Describe the bug It seems aminal has pretty awful performance compared to other options out there.

I saw someone else had tried a bunch of terminal emulators, benchmarking them simply by taking the .txt representation of the RFC 3261 (http://www.ietf.org/rfc/rfc3261.txt approx. 15k lines) and dumping the file contents on the screen, so I decided to try the same.

On cmd.exe I used the timeit command from https://www.microsoft.com/en-us/download/details.aspx?id=17657 as per https://stackoverflow.com/a/752307/3989287 to get execution time. On bash under Windows Subsystem for Linux I used the time command.

It typically seems that most time is always spent on the first run, likely due to them growing the buffer to the maximum size before becoming more performant, so I ran every test 3 times in a row in the same terminal without reopening it and recorded the range rounded to two decimals.

I compared:

I set each console window to be 128x48 characters in size. I've configured ConEmu to use DejaVu Sans Monospace -font but the others are using whatever is their default.

I believe these were the defaults, but just in case:

The results I got

cmd.exe:

bash:

The absolute values I got are less relevant (especially because of configuration differences), but the point is the relative difference of everything else being measured in seconds and aminal being consistently incredibly slow compared to any other alternative. It seems aminal was 35.8x to 134.7x slower than conhost (with bash, the cmd.exe differences fall in the ~75-85x range).

To Reproduce Steps to reproduce the behavior:

  1. Download http://www.ietf.org/rfc/rfc3261.txt
  2. Launch aminal
  3. (Optional) Start bash
  4. Dump the contents of rfc3261.txt into the terminal with type or cat

Expected behavior Printing out the file contents should take a time measured in seconds, not minutes.

Environment (please complete the following information):

Additional context As additional notes aminal was the only one to keep an additional host terminal window open, was the most difficult to size to the desired size, and was the only one with issues with the clipboard (pasting multiple lines of text ended up with extra blank lines in between the lines).

image

I realize this is software in development and so on, but thought I'd mention these as well.

liamg commented 3 years ago

Closed due to complete rewrite as part of bringing the project back to life, please create a new issue if still relevant. Thank you!