After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 671192 - Deleting sheets in computational intensive workbooks
Deleting sheets in computational intensive workbooks
Status: RESOLVED FIXED
Product: Gnumeric
Classification: Applications
Component: General
1.10.x
Other Linux
: Normal normal
: ---
Assigned To: Jody Goldberg
Jody Goldberg
Depends on:
Blocks:
 
 
Reported: 2012-03-02 07:19 UTC by S
Modified: 2012-03-02 14:57 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Testfile (99.89 KB, application/x-gnumeric)
2012-03-02 07:19 UTC, S
Details

Description S 2012-03-02 07:19:43 UTC
Created attachment 208839 [details]
Testfile

Using version 1.10.17 on latest Ubuntu.
Comment 1 S 2012-03-02 07:30:38 UTC
The testfile contains just rand() and array functions for demonstration purposes.

Please
1) Open the file. Takes about 5,5 seconds on Intel 3,07 GHz CPU.
2) Delete one of the empty single sheets. Takes 5,5 seconds.
3) Undo. Use worksheet manager and delete two empty single sheets. Takes about 11 seconds.
4) Undo. Set recomputation to manual. Repeat 2 and 3. No difference.

That should not happen. Three general issues:
a) Deleting an _empty_ sheet takes quite some time. If I understand correctly this is caused by Gnumeric recalculating the entire workbook. Which it won't do when duplicating a sheet.
b) Manual recomputation setting is ignored, workbook gets recalculated anyway.
c) When deleting two empty sheets, Gnumeric recalculates the workbook twice instead of once.

If you need more details, please say.

Regards
Soeren
Comment 2 Morten Welinder 2012-03-02 14:57:37 UTC
Deleting a sheet from a workbook now just marks all cells dirty.  It does
not do the recalculation there and then.  The effect of that is to respect
manual recalculation mode.

(a) We will still do this, although in manual recalculation mode you will
    not notice it.  Tracking dependencies from a whole sheet is in general
    (i.e., when there is actual contents on the sheet) more expensive and
    certainly less predictable than simply marking everything dirty.

(b) That got fixed.

(c) That got fixed too.  (We mark dirty twice, but that takes only a few
    milliseconds.)


This problem has been fixed in the development version. The fix will be available in the next major software release. Thank you for your bug report.