Download it now!
Bug 120014 - macOS: Lots of unresponsiveness (beachballs) when enabling automatic spell checking in a large document
Summary: macOS: Lots of unresponsiveness (beachballs) when enabling automatic spell ch...
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Writer (show other bugs)
(earliest affected)
Hardware: All Mac OS X (All)
: high major
Assignee: Not Assigned
Keywords: bibisectRequest, perf, regression
Depends on:
Blocks: Spell-Checking
  Show dependency treegraph
Reported: 2018-09-20 17:22 UTC by Telesto
Modified: 2020-11-05 11:00 UTC (History)
0 users

See Also:
Crash report or crash signature:

Screenshot of Time Profile Analysis using Apple Instruments (261.72 KB, image/png)
2019-04-26 07:48 UTC, Alex Thurgood

Note You need to log in before you can comment on or make changes to this bug.
Description Telesto 2018-09-20 17:22:58 UTC
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)

Actual Results:
Laggy response; beachballs etc

Expected Results:
More usability

Reproducible: Always

User Profile Reset: No

Additional Info:
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
Comment 1 Alex Thurgood 2018-09-24 16:26:04 UTC
Confirming with

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.
Comment 2 Alex Thurgood 2018-09-24 16:30:16 UTC
Compared with 

LibreOffice 3.3.0 
OOO330m19 (Build:6)
tag libreoffice-

where scrolling through a large document after/before spellcheck is not brilliant, but still a hundred times more responsive than current master.
Comment 3 Telesto 2018-09-24 17:29:40 UTC
Not much to complain with
Build ID: 8a35821d8636a03b8bf4e15b48f59794652c68ba
Comment 4 Alex Thurgood 2019-04-26 07:47:51 UTC
I had a look at this with, 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)

which calls

SwDashedLine::Paint(OutputDevice&, tools::Rectangle const&)

I am enclosing a screenshot of the 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.
Comment 5 Alex Thurgood 2019-04-26 07:48:43 UTC
Created attachment 151021 [details]
Screenshot of Time Profile Analysis using Apple Instruments