[GSOC] Fix for performance loss due to recalc of volatile cells
daniel.dev.libreoffice at gmail.com
Thu Jul 12 01:46:02 PDT 2012
Hi, Kohei and Markus,
Our latest changes that recalculate volatile formulas at the end of
import resulted in several seconds performance loss on a large matrix
test file with complex formulas.
When the matrix cells are put in the document, ScFormulaCell::SetDirty()
gets called. Although the cells are set clean during import after this,
SetDirty() also uses ScDocument::TrackFormulas() which puts the cells in
the formula tree. So when we call ScDocument::DoRecalc() at the end of
import, the interpreter goes through all matrix cells because they are
in the formula tree.
My changes in the attached diff prevent this from happening, which gives
us back our performance. Is this approach ok?
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 4420 bytes
Desc: not available
More information about the LibreOffice