* Nicholas Marriott had this to say on [10 Aug 2009, 08:17:00 +0100]: > Hi > > I haven't tested but I suspect this is probably the reason tmux is faster > (from > tty_redraw_region in tty.c): > > /* > * If region is >= 50% of the screen, just schedule a window redraw. > In > * most cases, this is likely to be followed by some more scrolling - > * without this, the entire pane ends up being redrawn many times > which > * can be much more data. > */ > if (ctx->orupper - ctx->orlower >= screen_size_y(s) / 2) { > wp->flags |= PANE_REDRAW; > return; > } > > Because entire pane redraws happen once after all buffered data has been > consumed, this has the effect of redrawing the entire pane once for however > many lines were scrolled in that read(2), rather than once for each line. > > This works well over a short link but is obviously fairly naive, something > speculative or based on a timer might be more effective over a longer > link. Higher network latency will mean less scrolling buffered so more redraws > and (visibly) slower scrolling. > [snip]
Hi. FYI: http://lists.gnu.org/archive/html/screen-users/2009-12/msg00013.html The fix is somewhat similar, i.e. refresh the region once at the end, rather than once for each character/line. It seems to work fairly OK so far too! If there's some caveat I am missing, please feel free to point it out! :-) Cheers, Sadrul _______________________________________________ screen-users mailing list screen-users@gnu.org http://lists.gnu.org/mailman/listinfo/screen-users