Skip to content

A few select performance improvements for selections

This patch series contains some optimizations on code paths used while selecting text.

Attached is a test using xdotool which tries to select many lines while scrolling (using the AutoScrollHandler behavior, which sends synthetic mouse events when dragging outside the display area, to allow extending the selection). Below are the results for 5 runs at each stage of applying the series.

The numbers are, in order: "Top line at start of test" "Top line at end of test" "Number of scrolled lines"

6138b547 Sync docs with the command line help (proposal by Michael Butler)
9040 6984       2056
9040 6980       2060
9040 6992       2048
9040 6976       2064
9040 6988       2052

7cebee1a Don't check profile for every selected character
9040 6917       2123
9040 6910       2130
9040 6911       2129
9040 6911       2129
9040 6913       2127

c9641f58 Don't create a QString for every char in decodeLine
9040 6635       2405
9040 6627       2413
9040 6626       2414
9040 6629       2411
9040 6640       2400

711e77a9 Avoid moving memory around in copyLineToStream
9040 6637       2403
9040 6626       2414
9040 6628       2412
9040 6635       2405
9040 6622       2418

cbbcb562 Don't get the selection to check if it is empty
9040 3234       5806
9040 3230       5810
9040 3234       5806
9040 3234       5806
9040 3232       5808

See also: !431 (comment 286344)

selection_performance_test.sh selection_performance_test_stage2.sh

Merge request reports