[GSOC] Fix for performance loss due to recalc of volatile cells
Daniel Bankston
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?
Respectfully,
Daniel Bankston
-------------- next part --------------
A non-text attachment was scrubbed...
Name: matrix_import_improvement.diff
Type: text/x-patch
Size: 4420 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/libreoffice/attachments/20120712/71c29e34/attachment.bin>
More information about the LibreOffice
mailing list