microsoft / microsoft/terminal

vim slower to open/close in conhost v2 compared to v1

Open
#3,950 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Area-Performance Help Wanted Issue-Task Needs-Repro Product-Conhost
Dominant language
C++
Stars
105k
Forks
9.6k
Avg merge
3d 17h
Merged PRs (30d)
29

Description

Environment

Windows build number: 17763
Windows Terminal version (if applicable): N/A, conhost only

Any other software? Vim for Windows, tested with 7.4-8.1

Steps to reproduce

Open a CMD window with a shortcut that specifies a large window buffer. The default in RS5 appears to be 9000, which is sufficient. Use the command line vim to open a random text file and observe startup time. Quit vim and observe exit time.

(Note that vim has a startup time debugging facility - run "vim --startuptime logfile filetoopen" and it will report the time spent in various phases of startup to the log file.)

Expected behavior

Expecting performance of open/close to be more in line with the legacy console. Note that the change to default to 9000 lines of history is also causal.

Actual behavior

Vim appears to take around a second or two to start and a second or two to exit, which appears to be saving and restoring the console screen buffer, when using conhost v2. This does not occur with v1, and can be mitigated by reducing the screen buffer size.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source file or test is named. Reproduce the delay in conhost v2 with Vim, compare it with v1, and use Vim's --startuptime logfile filetoopen facility while varying the screen buffer size; done means identifying and correcting the v2 performance difference without the buffer-size mitigation.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, vim
Domain
cli, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.