假设我有一个 ncurses 应用程序,它以亚秒的间隔(比方说,每毫秒循环一次)更新我的终端窗口。
while(true)
write_some_value_to_terminal();
sleep_for_1_millisecond();
如果我通过 SSH 远程连接到我的机器并运行该程序,这是否意味着 SSH 需要每毫秒执行一次往返以更新我的(远程)窗口?
编辑第二个问题,对于我正在编写的代码的实际应用是,我如何确定最佳睡眠值?瞄准亚秒级计时是否有意义?
由于Nagle 的算法,您很可能根本看不到 1 毫秒间隔的更新。更不用说您的延迟很可能会高于 1 毫秒(除非您在同一个本地网络上),在这种情况下,更新将被常规 TCP ACKing 行为合并。
几乎。写入需要一些时间,之后它将休眠一毫秒,然后再次写入。