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