xterm.js icon indicating copy to clipboard operation
xterm.js copied to clipboard

Search is very slow when there is a lot of content and many wrapped lines

Open Tyriar opened this issue 1 year ago • 7 comments

Repro:

Run the following script in powershell and try search:

for($i=0; $i -lt 10000; $i++) { Write-Output "klfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdfklfdjklnasdfjkladnljkasgnkljasasdjnasdfjklasdfjklnasdfjklnasdfjklbnasdfjklbnsdfjklbsdfjklbsdfjklbasdfjklbsdfjklbdsfjklbdfasjkbsdfjkladfjklbasdfjsdfjklbjklbsdfjklbsdfjklsdfjklbdfsjklbsdfjklbsdfjklbsdfjklbajklsdfbjklbdfjklbdfljkbdfjklbdfsjklbdfslbjksdfjklbsdf" }

Tyriar avatar Dec 07 '23 17:12 Tyriar

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?

jerch avatar Dec 07 '23 18:12 jerch

https://github.com/xtermjs/xterm.js/blob/fb2c39cb5748e071e0a1ed49824590aafd45e65e/addons/addon-search/src/SearchAddon.ts#L507

This cost is not small either.

tisilent avatar Dec 08 '23 08:12 tisilent

@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.

jerch avatar Dec 08 '23 13:12 jerch

Full scrollback with long non-wrapped lines seemed fine on my machine, only when I wrapped them did it slow down.

Tyriar avatar Dec 08 '23 15:12 Tyriar

Normal on xterm demo, slightly lagging in vscode.

tisilent avatar Dec 14 '23 03:12 tisilent

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

PerBothner avatar Dec 29 '23 01:12 PerBothner

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.

PerBothner avatar Dec 29 '23 01:12 PerBothner