xterm.js
xterm.js copied to clipboard
Search is very slow when there is a lot of content and many wrapped lines
Repro:
Run the following script in powershell and try search:
for($i=0; $i -lt 10000; $i++) { Write-Output "klfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdf" }
Does the perf only degrade for wrapped lines? So the same amount of data on wrapped lines is just fine? Hard to say whats going on, did you have a chance to spot a possible culprit in the profiler?
https://github.com/xtermjs/xterm.js/blob/fb2c39cb5748e071e0a1ed49824590aafd45e65e/addons/addon-search/src/SearchAddon.ts#L507
This cost is not small either.
@tisilent My first guess here is, that overlong lines take really long during the regexp matching, at least this was in the past a big issue. If its caused by that, than we prolly cant do much about it beside using really big guns like non-blocking search within a separate worker thread.
Full scrollback with long non-wrapped lines seemed fine on my machine, only when I wrapped them did it slow down.
Normal on xterm demo, slightly lagging in vscode.
Here is a Bash version:
for ((i = 0; i < 10000; ++i)); do
echo "klfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdf"
done
For a generic Posix shell replace the first line with the following (tested with zsh):
i=-1; while [ "$((i+=1))" -lt 10000 ] ; do
Without having looked too deeply into the issue, it seems plausible that #4928 may help, as the LineBuffer data structure represents logical (unwrapped) lines. Of course some API tweaks may be needed.