Bug 161562 - Sluggish scrolling after saving and changing text color in large(ish) spreadsheets
Summary: Sluggish scrolling after saving and changing text color in large(ish) spreads...
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: LibreOffice (show other bugs)
Version:
(earliest affected)
24.2.0.0 alpha0+
Hardware: x86-64 (AMD64) All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords: haveBacktrace, perf
Depends on:
Blocks:
 
Reported: 2024-06-14 07:01 UTC by Brian P
Modified: 2024-08-23 06:23 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:


Attachments
example of sluggish ods file (181.37 KB, application/vnd.oasis.opendocument.spreadsheet)
2024-06-14 07:03 UTC, Brian P
Details
Perf flamegraph of changing text colour of a row and scrolling down (265.66 KB, image/svg+xml)
2024-08-23 05:49 UTC, Buovjaga
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Brian P 2024-06-14 07:01:28 UTC
Description:
I have previously reported (couple of years ago?) this and was given a workaround of ctrl-M. I could then apply my formatting and it wpould be OK for a while. Now as soon as I start formatting again the sluggish behaviour is immediate.

Background: I proofread/verify files which come to me in csv format. I load them into ods format and then format them by changing font to courier new, resize columns, freeze the first two rows. Then as I check blocks of rows I change font colour to green to bookmark my progress. The files can contain 3500 to 6500 rows.

Usually the sluggishness sets in around 1000 rows in, obvious because scrolling is not smooth and a Save takes a minute or more to complete. Auto save is ON which might be relavent to the scrolling? But it is now happening almost as soon as I start formatting away from the default font and layout. Behaviour is better if I don't change font, but I find it easier to use a sans-serif one.

I am using vn 24.2.3.2, installed in the last week, but the behaviour has been there across previous versions too (I was previously using vn 7.x.x) on Windows 11.

Steps to Reproduce:
1. open .csv in .ods format
2. change default font to courier new across all rows (click top left to select all), freeze top 2 rows, resize columns to better fit the data and show max cols on a 15" laptop screen 
3. scroll through data, select last in a group of rows change font colour to green.
4. auto save is ON, but manually save approx every 25 rows.

Actual Results:
Saving and scrolling is intially quick and smooth but quickly deteriorates.

Expected Results:
Saving and scrolling should be fast and not lumpy.


Reproducible: Always


User Profile Reset: Yes

Additional Info:
[Information automatically included from LibreOffice]
Locale: en-US
Module: SpreadsheetDocument
[Information guessed from browser]
OS: Windows (11)
OS is 64bit: yes

Version: 24.2.3.2 (X86_64) / LibreOffice Community
Build ID: 433d9c2ded56988e8a90e6b2e771ee4e6a5ab2ba
CPU threads: 8; OS: Windows 10.0 Build 22631; UI render: Skia/Raster; VCL: win
Locale: en-GB (en_GB); UI: en-US
Calc: threaded
Comment 1 Brian P 2024-06-14 07:03:13 UTC
Created attachment 194723 [details]
example of sluggish ods file
Comment 2 m_a_riosv 2024-06-14 22:30:03 UTC
I think you are setting the font incorrectly, applying a direct format that is not the default.

If you want to set the default font, you need to edit 'Default style' and change the font there. This style is the root of all styles in the spreadsheet.

Also remember that you can modify the templates, to set default parameters when you create a new file.
https://help.libreoffice.org/latest/en-US/text/shared/guide/template_manager.html?&DbPAR=WRITER&System=WIN
Comment 3 Brian P 2024-06-15 07:14:44 UTC
Thank you for this.
I have created a template based on the formatting I need, and saved it as the Default template.
If I create a new spreadsheet the formatting is there which is great.
However, when I create a new spreadsheet by double-clicking on a .csv file, or using File-Open, the template is not applied to the data in that file.
Instead the font is LiberationSans so I'm no further forward.

I have tried creating an empty spreadsheet then copying the data in but it retains the original font.

I've searched through Help but can't find anything that relates to applying a template as a file is imported in this way.

There must be a way to do what I need to. Can you advise please?

Regards,
Brian
Comment 4 m_a_riosv 2024-06-15 22:44:56 UTC
Have you set up the template as default template?
Menu/File/Templates/Manage templates
Right-click on it and set as Default.
Comment 5 Brian P 2024-06-16 20:01:15 UTC
Yes it is the default template.
Doesn't seem to apply when opening a .csv
Comment 6 m_a_riosv 2024-06-16 20:37:27 UTC Comment hidden (off-topic)
Comment 7 Brian P 2024-06-17 07:03:44 UTC
Have tried both of these but with same result. Default template is ignored.
Comment 8 Mike Kaganski 2024-07-07 18:43:34 UTC Comment hidden (obsolete)
Comment 9 Mike Kaganski 2024-07-07 18:47:50 UTC
I have set it to a duplicate of bug 86336, just because previously it was marked as a duplicate of bug 131274.

However, I don't see why this one would be a duplicate of either. The problem is a *sluggish ODS*. How could one see it as a duplicate of a *CSV* issue is beyond me.
Comment 10 Mike Kaganski 2024-07-07 19:09:38 UTC
(In reply to Brian P from comment #3)
> when I create a new spreadsheet by double-clicking on a .csv file,
> or using File-Open, the template is not applied to the data in that file.

When you double-click a CSV file, you are not "creating a new spreadsheet", but you are opening an existing file. If then you save it with a new name (and a new type), you are just creating a copy of the original document. In no stage did you create a new spreadsheet in this sequence. And as always, when you open any existing document, no external documents (like templates) are (nor should be) used to decide how this opened document will look like.

It is possible to apply a template to an existing document, using Template Changer extension [1]. However, I doubt that it would help, because changing the template would only update styles, not replace direct formatting.

Anyway, the topic of the formatting applied when opening a CSV is unrelated to the issue of the ODS being sluggish (even if the ODS was initially created from a CSV). The original idea of comment 2 is wrong: no matter what the formatting is, it is not an excuse for Calc to perform slowly because of that. This is a clear perf issue if it is reproducible - the file seems quire responsive to me, using Version: 24.2.5.1 (X86_64) / LibreOffice Community
Build ID: 2ccb78ad6bdfe3f3356a7a7f294ec388775c5816
CPU threads: 24; OS: Windows 10.0 Build 22631; UI render: Skia/Raster; VCL: win
Locale: ru-RU (ru_RU); UI: en-US
Calc: CL threaded.

[1] https://extensions.libreoffice.org/en/extensions/show/27416
Comment 11 Buovjaga 2024-08-23 05:49:40 UTC
Created attachment 195976 [details]
Perf flamegraph of changing text colour of a row and scrolling down

I observe sluggishness when scrolling after changing the text colour of a row. Not really otherwise. The biggest chunk of time seems to be spent in ScPatternAttr::IsVisibleEqual

Saving is also quite slow, 30+ secs on Windows and 20+ secs on Linux.

Arch Linux 64-bit
Version: 25.2.0.0.alpha0+ (X86_64) / LibreOffice Community
Build ID: e1a4cdb3564c38ac1b75cc076c6762369e79137c
CPU threads: 8; OS: Linux 6.10; UI render: default; VCL: kf6 (cairo+wayland)
Locale: fi-FI (fi_FI.UTF-8); UI: en-US
Calc: CL threaded
Built on 23 August 2024
Comment 12 Buovjaga 2024-08-23 05:53:08 UTC
(In reply to Buovjaga from comment #11)
> Created attachment 195976 [details]
> Perf flamegraph of changing text colour of a row and scrolling down
> 
> I observe sluggishness when scrolling after changing the text colour of a
> row. Not really otherwise. The biggest chunk of time seems to be spent in
> ScPatternAttr::IsVisibleEqual

Oh, the slowness is indeed only after saving one time.
Comment 13 Buovjaga 2024-08-23 06:23:50 UTC
Bibisected the current state with linux-64-24.2 to eb13c889c760cfe153d5b41188e218bdda797d52
Speed up scrolling through large document with lots of patterns

Optimise comparison in ScPatternAttr::IsVisibleEqual

Let's ask Noel what he thinks.

When bibisecting, I always reset to the original attachment 194723 [details] when opening as using a document saved with an older version seemed to have an effect. What I did:

1. Changed the colour of one row
2. Saved (did not reload)
3. Changed the colour of another row
4. Scrolled down