[GSOC] ODS Styles Import Performance Work Update
Daniel Bankston
daniel.dev.libreoffice at gmail.com
Wed Aug 15 19:36:13 PDT 2012
Hi, Kohei,
Just an update on improving import performance of setting style ranges
in george-ou-perf.ods...
I've been slowly stepping through code, looking at callgrind outputs,
and looking at the document xml to try to understand how this area of
code and xml work. (Actually, I'm using a very small sample of
george-ou-perf.ods right now except for my initial callgrind run to
identify where most of the time is being spent.)
What I think right now is that the main culprit is that as style ranges
are set, ScCellRangesBase::GetMarkData is called multiple times which
causes even more calls to ScMarkArray::SetMarkArea where most of the
time is spent. These multiple calls to ScCellRangesBase::GetMarkData
are happening because the data that ScCellRangesBase::GetMarkData gets
is being reset every time a style range is added. I'm trying to see if
we can stop resetting this data and just append instead.
Ideally, I will able implement a partial conversion from UNO to direct
sc to altogether avoid the ScCellRangeBase implementation family for
this case of style import.
I think a full-out styles ODS conversion from UNO to direct Sc isn't
likely before next Monday, :-) but I may be able to do a partial
conversion in this area or at least find some fix to prevent wasted time
here.
Respectfully,
Daniel Bankston
More information about the LibreOffice
mailing list