Bug 124903 - EDITING: performance regression expanding/collapsing groups
Summary: EDITING: performance regression expanding/collapsing groups
Status: RESOLVED WORKSFORME
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Calc (show other bugs)
Version:
(earliest affected)
6.2.0.0.alpha1+
Hardware: All All
: high major
Assignee: Not Assigned
URL:
Whiteboard:
Keywords: bibisected, bisected, perf, regression
Depends on:
Blocks:
 
Reported: 2019-04-23 11:38 UTC by Xisco Faulí
Modified: 2020-01-26 22:31 UTC (History)
6 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Xisco Faulí 2019-04-23 11:38:02 UTC
Steps to reproduce:
1. Open attachment 126468 [details] from bug 101195
2. Expand/Collapse group in row 592

in

Version: 6.3.0.0.alpha0+
Build ID: b34786d2774b261be48de92f65a5d0aa3c32b289
CPU threads: 4; OS: Linux 4.15; UI render: default; VCL: gtk3; 
Locale: ca-ES (ca_ES.UTF-8); UI-Language: en-US
Calc: threaded

it takes around 1 minute.
Before https://cgit.freedesktop.org/libreoffice/core/commit/?id=4804a1474ccba8df57f0a0151bd69237e82eb618 it takes 5 seconds
Comment 1 Xisco Faulí 2019-04-23 11:40:01 UTC
Regression introduced by:

https://cgit.freedesktop.org/libreoffice/core/commit/?id=4804a1474ccba8df57f0a0151bd69237e82eb618

author	Armin Le Grand <Armin.Le.Grand@cib.de>	2018-08-01 21:47:30 +0200
committer	Armin Le Grand <Armin.Le.Grand@cib.de>	2018-08-02 10:53:47 +0200
commit 4804a1474ccba8df57f0a0151bd69237e82eb618 (patch)
tree 256b0ec8ff72983a6c00d412ab5fff022f52c03e
parent bd8320952522165ee7f5f6cbe2675ea674ec5749 (diff)
Directly prevent multiple change broadcasts

Bisected with: bibisect-linux64-6.2

Adding Cc: to Armin Le Grand
Comment 2 Xisco Faulí 2019-04-23 12:10:51 UTC
@Eike, Some of the code Armin removed in https://cgit.freedesktop.org/libreoffice/core/commit/?id=4804a1474ccba8df57f0a0151bd69237e82eb618 was added by you in https://cgit.freedesktop.org/libreoffice/core/commit/?id=451c4cccc7e3ec3f1e046d3232cb52f6fc443f59, I thought you might be interested in this issue...
Comment 3 Eike Rathke 2019-04-23 13:04:52 UTC
@Armin:
May it be that setLock() only suppresses reformat/redraw of the objects, but does not prevent the unnecessary multiple broadcasts that SdrDelayBroadcastObjectChange() did? If so, I suggest to revert commit 4804a1474ccba8df57f0a0151bd69237e82eb618.

Otherwise, it might be that maNoteData.m_pCaption->getSdrModelFromSdrObject().setLock(false) in ScPostIt::CreateCaptionFromInitData() clears the lock set in ScDrawLayer::RecalcPos() if the postit was somehow called from there, so instead of false the previous state obtained with isLocked() before setLock() should set again, which would be good anyway..
Comment 4 m_a_riosv 2019-04-23 13:57:33 UTC
All groups open/close instantly for me with
Version: 6.3.0.0.alpha0+ (x64)
Build ID: 3083fe569f96bf0289da1e9d0ef7da15ab22e2f6
CPU threads: 4; OS: Windows 10.0; UI render: default; VCL: win; 
TinderBox: Win-x86_64@42, Branch:master, Time: 2019-04-16_03:05:57
Locale: es-ES (es_ES); UI-Language: en-US
Calc: CL
Comment 5 b. 2019-04-25 14:20:09 UTC
file opens with expanded groups in 4.1.6.2, 

group in row 592 opens and closes with 

Version: 6.3.0.0.alpha0+ (x64)
Build ID: 35d9a2618dc0116378ab795a7b9277d248c5afd4
CPU threads: 8; OS: Windows 6.1; UI render: default; VCL: win; 
TinderBox: Win-x86_64@42, Branch:master, Time: 2019-04-05_04:55:04
Locale: de-DE (de_DE); UI-Language: en-US
Calc: *unthreaded*

as well saved from 4.1.6.2 expanded or collapsed, 

no crashes, 

thus 'nopro' for me ...
Comment 6 b. 2020-01-26 22:31:48 UTC
no delays with 6.4.0.1, nor with: 

Version: 7.0.0.0.alpha0+ (x64)
Build ID: 07b1159b79135857dd9a450c3bb9ae0a944ebcf9
CPU threads: 8; OS: Windows 6.1 Service Pack 1 Build 7601; UI render: default; VCL: win; 
Locale: de-DE (de_DE); UI-Language: en-US
Calc: 

also responsive with 'threaded' and 'CL', thus wfm, please reopen if anybody finds delays.