[GSOC] ODS Styles Import Performance Work Update
Daniel Bankston
daniel.dev.libreoffice at gmail.com
Fri Aug 17 19:09:14 PDT 2012
On 08/17/2012 07:20 PM, Kohei Yoshida wrote:
> Interesting thing is, we used to have similar performance problem with
> styles import with Excel files. And I did take a very similar approach
> to what you just tried. The difference is that, I set the styles
> directly to ScDocument using the same data structure that's used in
> ScAttrArray to store the styles attributes, to avoid unnecessary
> conversation of data, and also unnecessary broadcasting etc that it
> would normally do when modifying its internal content. That resulted
> in a pretty big performance improvement. You can take a look at
> ScDocument::SetAttrEntries and its call chain all the way down to
> ScAttrArray. So, the approach I would aim for is to change the XML
> import code to use ScDocument::SetAttrEntries to set the styles
> directly, then see if that would improve the performance. I'm pretty
> sure that, as long as we keep using the UNO layer to set properties
> there isn't much we can do to improve performance further. We need to
> break that layer first. I wonder if the biggest problem now for a file
I'm not sure if it would apply as much to this particular file, but I
could be wrong. Even so, your words give me hope.
My ultimate goal was to remove the UNO and ScDocFunc layers, but I first
wanted to try my concept without removing them in order to make sure it
would work and to minimize the amount of code I was initially changing.
I think I got lost in the forest during the process and forgot about the
possibility that complete removal of the UNO/ScDocFunc layer here in
addition to what I had already done would have a much more significant
effect on performance (as you said, because of avoiding the data
conversion and broadcasts.) I feel kind of silly now but hopeful. I'll
take a look at the suggested code and reevaluate.
Thanks, Kohei!
--Daniel
More information about the LibreOffice
mailing list