From 2e6acd2fa179b87250affa709cddbcc0b90a824a Mon Sep 17 00:00:00 2001 From: Eugene Pankov Date: Sat, 10 Nov 2018 21:10:47 +0100 Subject: [PATCH] perf: reduced pty bufferization window --- terminus-terminal/src/bufferizedPTY.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/terminus-terminal/src/bufferizedPTY.js b/terminus-terminal/src/bufferizedPTY.js index e61f1471..837086fb 100644 --- a/terminus-terminal/src/bufferizedPTY.js +++ b/terminus-terminal/src/bufferizedPTY.js @@ -11,8 +11,11 @@ module.exports = function patchPTYModule (mod) { let lastFlush = 0 let nextTimeout = 0 - const maxWindow = 250 - const minWindow = 50 + // Minimum prebuffering window (ms) if the input is non-stop flowing + const minWindow = 10 + + // Maximum buffering time (ms) until output must be flushed unconditionally + const maxWindow = 100 function flush () { if (buffer) { @@ -36,9 +39,11 @@ module.exports = function patchPTYModule (mod) { terminal.on('data', data => { buffer += data if (Date.now() - lastFlush > maxWindow) { + // Taking too much time buffering, flush to keep things interactive flush() } else { - if (Date.now() > nextTimeout - (minWindow / 10)) { + if (Date.now() > nextTimeout - (maxWindow / 10)) { + // Extend the window if it's expiring reschedule() } }