[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 

Daniel Bankston

More information about the LibreOffice mailing list