MacOS: Lots of unresponsiveness (beachballs) when enabling the spell checker
Steps to Reproduce:
1. Open Writer & disable the spell checker
2. Open attachment 145051 [details]
3. Enable the automatic spell checker (of no dutch dictionary available; change the document language to something else; French, German (english seems to work better; but maybe a wrong impression).
4. Scroll the document/ press Tools (or any other menu item)
Laggy response; beachballs etc
User Profile Reset: No
Build ID: 76bf3939b0583212a56c317c85aea110f8ac6fee
CPU threads: 4; OS: Mac OS X 10.12.6; UI render: default;
TinderBox: MacOSX-x86_64@49-TDF, Branch:master, Time: 2018-07-27_06:01:47
Locale: nl-NL (nl_NL.UTF-8); Calc: group threaded
Build ID: 030181b37d2b7edd7cab20ceb7736e575186f99b
CPU threads: 4; OS: Mac OS X 10.13.6; UI render: default;
Locale: fr-FR (fr_FR.UTF-8); Calc: threaded
As things go, the performance of this set of steps is pretty bad. The user gets the impression that LO is not responding.
where scrolling through a large document after/before spellcheck is not brilliant, but still a hundred times more responsive than current master.
Not much to complain with
Build ID: 8a35821d8636a03b8bf4e15b48f59794652c68ba
I had a look at this with Instruments.app, the Apple provided developer tool and carried out a time profile using an older version of the Writer Guide ODT as a test document in a non-debug, production release version of LO 6152.
A fairly significant amount of time, when scrolling either with the vertical document scrollbar or the mouse wheel scroll function, comes from :
+0x160 callq "PaintHelper::DoPaint(vcl::Region const*)"
which is called several hundred times in certain cases, leading to a time occupation of several hundred milliseconds.
That call is linked to :
vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags)
SwDashedLine::Paint(OutputDevice&, tools::Rectangle const&)
I am enclosing a screenshot of the Instruments.app output zoomed in on an area of the trace where the processing time caused a noticeable slowdown/lag in cursor scrolling.
Analysing the functions called in this area of the trace points to the calls I indicated above.
Created attachment 151021 [details]
Screenshot of Time Profile Analysis using Apple Instruments