With conditional formatting in large ranges, and heavy calculations, becomes really unusable, with an intensive use of the processor.
Allow conditional formatting works without autocalculate enable, would be very useful, specially with heavy spreadsheets or slow computers.
Normally conditional formatting should be independent from autocalculation. Everything else is a bug and would need a test document showing the issue.
Data Bars and Color scale are except for the formula case surely independent from autocalculation so the only remaining problem might be our use of ScFormulaCell::Interpret in the conditional format code. But we can surely fix this problem in some way.
Can you please also open a bug report for the slow conditional formats with a test document. I would like to see such a problem to be able to fix the underlying issues.
Created attachment 69784 [details]
Sample intensive use of conditional formatting
Attached a file sample.
Changing the value in column A from 1 to 6, must change the format of cells in the row, but this not happen without autocalculate enabled, (F9 or Ctrl+Shif+F9).
Also is very slow saving the file after change any value with autocalculate enable. I have observed that sometimes save file is quick minimizing the window.
I don't know, only my speculation, but it seems an intensive screen refresh.
Seems this is not the reason for the performance regression. The performance problem seems to be related to the pure formula handling and has nothing to do with the cond format code.
While the conditional format code might benefit from some performance improvements it seem to count for less than 1% of the time spend updating the document.
Now I have no longer a clue what might be the problem here. Have to spend more time trying to find a pattern in these calls.
Please Markus, can you take a look to this bug:
there is a file sample, where is very perceptible the difference, in my computer, calculate time is reduced from more than two minute to a second, to enter o delete a cell, when conditional format is deleted.
On other hand, what about CF working with recalc or hard recalc?