microsoft / microsoft/terminal
Unbuffered output speed regression
- Dominant language
- C++
- Stars
- 105k
- Forks
- 9.6k
- Avg merge
- 3d 17h
- Merged PRs (30d)
- 29
Description
### Windows Terminal version
1.22.10731.0
### Windows build number
10.0.19045.5737
### Other Software
Bat (the cat(1) clone with wings)
Any GNU util that doesn't ignore the -u flag (cat(1) ignores nowadays, bat is always unbuffered)
... Don't have more easily accessible examples on hand
### Steps to reproduce
Run any command that produces half a screen or more of unbuffered output, e.g. tab autocompletions in bash (git, msys2, but not WSL)
### Expected Behavior
(reasonably) fast printing of output
### Actual Behavior
through WSL, exactly the thing I expect. When unbuffered, I can see every line being printed separately. When paging is involved, I can see line by line output happening. When coloration is involved, scrolling lines in paged output becomes extremely slow.
On the bright side, this does help pinpoint what utils have room for improvement. On the not-so-bright side I'm sometimes actively waiting for output to finish. This is something that's changed in the last couple of updates (I'm on the manual track and am not very frequent with checking, sorry)
Contributor guide
Research direction
Start by reproducing the regression in Windows Terminal 1.22.10731.0 with half a screen or more of unbuffered output, such as bash tab completion or Bat, and compare buffered, unbuffered, paged, colored, and WSL output. No source file or test is named in the report, so trace the output and paging path before identifying the recent change responsible. Done means unbuffered output is reasonably fast without regressing the reported cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- cli, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100