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

Test terminal performance and Windows support improvements #19071

Closed
3 tasks done
Tyriar opened this issue Jan 23, 2017 · 2 comments
Closed
3 tasks done

Test terminal performance and Windows support improvements #19071

Tyriar opened this issue Jan 23, 2017 · 2 comments

Comments

@Tyriar
Copy link
Member

Tyriar commented Jan 23, 2017

Testing #13625, #17875

Complexity: 4 (ideally someone fairly familiar with terminals and curses apps)

Much of the terminal frontend xterm.js was rewritten for performance this version, here is a summary of what happened:

  • The parser was rewritten for performance
  • A catch up mechanism was added which utilizes XOFF/XON signals to tell the pty process to stop while the parser and renderer catch up
  • Rendering is now done asynchronously in an animation frame callback
  • Additional frame skipping was added to prevent printing to the viewport when the result would change 20ms later anyway
  • A circular list is now used to manage the buffer, promoting memory reuse, reducing GCs and automatically handling trimming of the buffer to conform with the scrollback value (amount of lines kept in the buffer)
  • General rendering performance improvements

Additionally on Windows the library used to simulate pseudoterminals has been upgraded several versions and cleaned up which was a huge change that should fix many bugs such as:

As a result a fairly broad test would be ideal. Here are some areas to focus on:

  • Running commands that generate a lot of output, I used ls -lR extensively to test during development
  • Applications such as less, vim, nano, git, etc. act as expected
  • The scroll bar accurately represents the current viewport
  • The terminal behaves when the terminal buffer is not full (new terminal) and full (buffer length = scrollback)
  • Test with different shells
    • Linux/OSX: bash, zsh
    • Windows: cmd, powershell, Git Bash, Bash on Windows (may require Windows Insiders)
@dbaeumer
Copy link
Member

Tested with PowerShell & cmd.exe. I tested it with Bash from the Windows Subsystem started from a PowerShell command prompt. Couldn't get it to work using bash natively.

@dbaeumer
Copy link
Member

Did get bash to work using "terminal.integrated.shell.windows": "C:\\WINDOWS\\Sysnative\\bash.exe"

@dbaeumer dbaeumer removed their assignment Jan 24, 2017
@roblourens roblourens removed their assignment Jan 25, 2017
@vscodebot vscodebot bot locked and limited conversation to collaborators Nov 18, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants