From e3e2907b2f9b43b2afaa12d227a5534fc50eb2f4 Mon Sep 17 00:00:00 2001 From: Florrie Date: Tue, 4 Dec 2018 23:16:00 -0400 Subject: Stress test stuff Just to see if I can optimize tui-lib's ansi diffing. --- index.js | 22 ++++++++++++++++++++++ stress-test.txt | 4 ++++ tui-lib | 2 +- 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 stress-test.txt diff --git a/index.js b/index.js index 9682e95..d6dbcee 100755 --- a/index.js +++ b/index.js @@ -80,6 +80,28 @@ async function main() { root.fixAllLayout() }) + if (process.argv.includes('--stress-test')) { + const w = 80 + const h = 40 + flushable.resizeScreen({lines: w, cols: h}) + root.w = w + root.h = h + root.fixAllLayout() + const start = Date.now() + let n = 0 + while (Date.now() < start + 1000) { + root.renderTo(flushable) + flushable.flush() + n++ + } + + console.log(ansi.clearScreen() + ansi.cleanCursor()) + console.log('# of times ran:', n) + process.exit(0) + + return + } + setInterval(() => { root.renderTo(flushable) flushable.flush() diff --git a/stress-test.txt b/stress-test.txt new file mode 100644 index 0000000..bc4b2e8 --- /dev/null +++ b/stress-test.txt @@ -0,0 +1,4 @@ +# of times ran +- With cached getCursorIndex(): 900 +- With (broken) less objects: ...still 900 [REMOVED] +- With less attributes.slice(): 1000 diff --git a/tui-lib b/tui-lib index 09e1dae..754f834 160000 --- a/tui-lib +++ b/tui-lib @@ -1 +1 @@ -Subproject commit 09e1daec696ac8cb41c45029d298135340fc6edd +Subproject commit 754f834035271279b279a13514c8031069dc4f76 -- cgit 1.3.0-6-gf8a5