this implementation undo load-tests quite poorly

Even a 10KB file gets sluggish within the first 1k characters inserted.

We're not running out of memory, we're just overloading Lua's GC.
This commit is contained in:
Kartik K. Agaram 2022-06-02 16:29:18 -07:00
parent b4e76eac4e
commit 477216a051
1 changed files with 28 additions and 0 deletions

View File

@ -1170,6 +1170,34 @@ function test_undo_delete_text()
App.screen.check(y, 'xyz', 'F - test_undo_delete_text/screen:3')
end
function test_zzz_undo_load_test()
print('\n\nTesting a 10KB file')
-- create a large list of lines
local lines = {}
-- 10k characters, hundred lines, 2k words
for i=1,100 do
local line = ''
for c=1,20 do
line = line..'abcd '
end
end
Lines = load_array(lines)
-- perform 1000 mutations
print('are the dots printing quickly and without any pauses?')
for i=1,1000 do
if i%50 == 0 then
App.run_after_keychord('return')
else
App.run_after_textinput('a')
end
if i%10 == 0 then
io.write(i)
io.write(' ')
io.flush()
end
end
end
function Text.compute_fragments(line, line_width)
--? print('compute_fragments', line_width)
line.fragments = {}