Terminal: Determine how best to measure perceived input latency (character input to screen)

Created on 27 Apr 2020  路  8Comments  路  Source: microsoft/terminal

@DHowett-MSFT> We should figure out how best to measure input perf. This may require #4001.

original content

I'm trying out the new release of WT. Previously I've used wsltty to ssh into a server.

Immediately after switching to WT it feels that characters appear on screen a bit slower than in wsltty. Not sure how to measure / debug / confirm properly.

Area-Performance Help Wanted Issue-Task Product-Terminal

All 8 comments

When I step on a very long line in vim and just press key "Right", WT glitches noticeably, sometimes even hanging for what looks like ~100ms. I don't know if it's cursor/character rendering that's slow or underlying controls being slow or sth else...

This may sometimes be the consequence of slow SSH / internet, but in this time it's not the case I think. wsltty renders cursor / characters a bit faster

So, the software I usually use to measure things like this is called "typometer". It's an old piece of Java software that injects input and waits for the output to be rendered on the screen.

We've gotten a number of improvements in rendering speed since 0.11 landed, so I'm inclined to say that your issues are going to be largely addressed.

If you have VS 2019, I welcome you to try out a Release build from master :smile:

So, the software I usually use to measure things like this is called "typometer". It's an old piece of Java software that injects input and waits for the output to be rendered on the screen.

Spooky! :) Looks like it's a valid "testing infra" feature request? (installing Java for end-user input on this can be quite a heavy dependency) :) Cursor rendering speed should also be supported for measurement

If you have VS 2019, I welcome you to try out a Release build from master 馃槃

Good news it's improved, but it's too heavy-lifting for me for now. I wish there were *.msixbundle artefacts in some nightly builds?

I'll repurpose this one into the Task for "determine a good way to measure performance". :smile:

This will require #4001.

a related request (also by me) on time-to-rendering measurements and loading: https://github.com/microsoft/terminal/issues/6409

As a stopgap you can use an app called "Is It Snappy?" with a modern iPhone (those supporting Slow-Mo videos).
At 240 FPS recording speed you can get decently accurate end-to-end latency measurements that way.

Was this page helpful?
0 / 5 - 0 ratings