Create a connection for simple testing Windows Terminal performance #5625

Open
opened 2026-01-31 00:17:44 +00:00 by claunia · 1 comment
Owner

Originally created by @zadjii-msft on GitHub (Dec 17, 2019).

Right now, the Windows Terminal's perf is pretty tightly bound to the perf of conpty. It might be a little hard for us to be able to really analyze the performance bottlenecks of the Terminal, if we're also hitting the bottlenecks of conpty in another thread.

To aid in debugging, I think we should add another connection implementation. This connection should only be valuable for debugging and perf testing. I'm imagining something where it can be configured to emit some number of lines of text, either in monochrome, 16 color, or 256/rgb color, and then it just times how long it takes to emit that sequence. It'll emit all that text, then just print statistics on how long it took to emit all that text.

Ideas for settings: (though I'm not sure if this is too much work)

{
    "name": "Perf test",
    "connectionType": "some guid",
    "linesToTest": 10000, // or -1 for run without stopping
    "colors": "monochrome", // or "16color", "256color"
    "style": "ascii" // or unicode for CJK/emoji
},

This way, we can get traces on just the Terminal, isolated from conpty.

Originally created by @zadjii-msft on GitHub (Dec 17, 2019). Right now, the Windows Terminal's perf is pretty tightly bound to the perf of conpty. It might be a little hard for us to be able to really analyze the performance bottlenecks of the Terminal, if we're also hitting the bottlenecks of conpty in another thread. To aid in debugging, I think we should add another connection implementation. This connection should only be valuable for debugging and perf testing. I'm imagining something where it can be configured to emit some number of lines of text, either in monochrome, 16 color, or 256/rgb color, and then it just times how long it takes to emit that sequence. It'll emit all that text, then just print statistics on how long it took to emit all that text. Ideas for settings: (though I'm not sure if this is too much work) ```jsonc { "name": "Perf test", "connectionType": "some guid", "linesToTest": 10000, // or -1 for run without stopping "colors": "monochrome", // or "16color", "256color" "style": "ascii" // or unicode for CJK/emoji }, ``` This way, we can get traces on _just_ the Terminal, isolated from conpty.
Author
Owner

@DHowett-MSFT commented on GitHub (Dec 17, 2019):

Depends on #4003.

@DHowett-MSFT commented on GitHub (Dec 17, 2019): Depends on #4003.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#5625