You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Thanks for an interesting project. Trying it out since I'm looking for a way to publish the chaos operating system on the web, to make it easy for people who want to play around with it.
However, the performance is not very great in my use case which makes things less than ideal.
This is the command line I'm trying:
$ ttyd -m10 docker run -it chaosdev/chaos
(For the curious, we build a Docker image for each push to master using this Dockerfile)
When connecting from "Firefox on Windows" -> "ttyd inside a Linux VM", the experience is unfortunately quite sluggish and a bit sub-par. Typing characters on the keyboard shows a significant input lag. However, when swapping Docker container to instead use a plain debian image for example, it works great and the performance is awesome:
$ ttyd -m10 docker run -it debian
The chaos image uses a custom background, so there is a bit of painting to do for each scroll/etc, but even general typing at the command (when not very much scrolling is done in the underlying console system in the OS) is very sluggish. It's a huge difference from running the same container right in a Linux terminal - it is much more responsive.
Even the GRUB bootloader (used by chaos before the actual OS is loaded) is quite slow/lagging in terms of keyboard input, and it doesn't use any custom background or anything so maybe it's just the QEMU curses support that generates an extreme amount of terminal output that the Xterm.js layer needs to parse or...? I really don't know; any ideas would be extremely helpful here.
(Similar to #136, but perhaps a different root cause.)
Additional info: inspecting network traffic when running the app over SSH instead of ttyd
I tried running the same Docker container via ssh localhost, and the performance is noticeably better than via ttyd. Here is a tcpdump of a single keypress - 36 bytes for the keypress, and 84 bytes for the response. So the payloads do not seem to be very large; something else is likely the root cause here.
Hi,
Thanks for an interesting project. Trying it out since I'm looking for a way to publish the chaos operating system on the web, to make it easy for people who want to play around with it.
However, the performance is not very great in my use case which makes things less than ideal.
This is the command line I'm trying:
(For the curious, we build a Docker image for each push to
master
using this Dockerfile)When connecting from "Firefox on Windows" -> "
ttyd
inside a Linux VM", the experience is unfortunately quite sluggish and a bit sub-par. Typing characters on the keyboard shows a significant input lag. However, when swapping Docker container to instead use a plaindebian
image for example, it works great and the performance is awesome:The
chaos
image uses a custom background, so there is a bit of painting to do for each scroll/etc, but even general typing at the command (when not very much scrolling is done in the underlying console system in the OS) is very sluggish. It's a huge difference from running the same container right in a Linux terminal - it is much more responsive.Even the GRUB bootloader (used by chaos before the actual OS is loaded) is quite slow/lagging in terms of keyboard input, and it doesn't use any custom background or anything so maybe it's just the QEMU curses support that generates an extreme amount of terminal output that the Xterm.js layer needs to parse or...? I really don't know; any ideas would be extremely helpful here.
(Similar to #136, but perhaps a different root cause.)
Additional info: inspecting network traffic when running the app over SSH instead of ttyd
I tried running the same Docker container via
ssh localhost
, and the performance is noticeably better than via ttyd. Here is a tcpdump of a single keypress - 36 bytes for the keypress, and 84 bytes for the response. So the payloads do not seem to be very large; something else is likely the root cause here.The text was updated successfully, but these errors were encountered: