trzsz / trzsz-go

trzsz-go is the go version of trzsz, makes all terminals that support local shell to support trzsz ( trz / tsz ).
https://trzsz.github.io/go
MIT License
889 stars 53 forks source link

请教 #21

Closed yxing-xyz closed 1 year ago

yxing-xyz commented 1 year ago

我是mac下用zssh, 发现rz非常的慢不知道为啥, 转到了trzsz-go,这个在终端下体验非常好, linux也是。 我看到你有说只要经过了windows trz就非常慢,我想请教下为啥,理论上不是亲缘进程的文件描述符传递数据么, 为啥windod就非常慢。mac的zssh我也没搞懂为啥sz很快, rz很慢

lonnywong commented 1 year ago

trz 和 rz 都是通过 pty 进行传输的,在 Windows 平台,一个进程的输出,通过管道,作为另一个进程的输入,就会非常的慢。

我还不知道原因是什么,可能与 Windows 平台标准输入的实现有关,它从设计之初就认为输入只来自于键盘,从根源上就不考虑支持高速的输入。

而 Linux 平台从设计之初就是支持管道的,标准输入看作是一个文件,速度就非常的快。

举例,在标准输入的一个字母 A ,在 Linux 平台就只是一个字节,而在 Windows 平台可能就是一个输入事件( 要区分是键盘事件、还是鼠标事件等、要有按的是哪一个键等,可能还认为键盘的输入速度不可能高于多少,为了防止重复的按键,人为的限速了)。