3 ms·
All of the tty processing, networking, and stream processing is done in Go, so it is fast. There is obviously more performance work to do, but in some situatio
by sawka 3y ago
All of the tty processing, networking, and stream processing is done in Go, so it is fast. There is obviously more performance work to do, but in some situations our model can actually be faster than other terminals. If you cat a 1GB file in Wave, it actually runs quickly because the frontend can drop frames, while the Go backend is buffering the stream (so to answer your question, JS is not in the hot path, only Golang is).
- cassianoleal 3y ago> the frontend can drop frames, while the Go backend is buffering the stream Surely that's not great. Dropped frames are terrible for following what's happening on the screen and even worse for scrolling.
- em-bee 3y agomosh is also dropping frames if it needs to. only happens when the network speed can't keep up with the data being sent through
- cassianoleal 3y agoYeah exactly. That's meant to make a laggy remote session feel a little less stuttery, which in many cases improves the experience. It's not the same as doing that between 2 local layers.
- em-bee 3y agowell, i have had local sessions hang because they had to much output, so i kind of see the benefit locally too.
- cassianoleal 3y agoOne terminal emulator with a bad implementation of buffering and outputting text doesn't make a different bad one good.