Words and large files

Pierre pinaraf at pinaraf.info
Mon Mar 22 13:18:32 GMT 2021


So… firing up perf record and hotspot, with OpenDocument spec 1.2 (that's what 
I found in my homedir)…

It takes about 21s to load, of which 34% is spent parsing the document (7s, 
still too much, but let's accept it so far) and 59% of the time is spent 
layouting.

14% of time is spent in KoTextRange::document() from 
KoTextRangeManager::textRangesChangingWithin. I've optimized this to remove 
this call to document, but I gained only 1s.
I've done another minor optimization and found on my way that having private 
classes embedded in std::unique_ptr kills performance, but this will deserve a 
message on its own.

Since the fastest code is the one we don't call, I've written a completely 
different way that doesn't call textRangesChangingWithin anymore. Much faster 
since I'm now down to 15s.

All this is in my work/ducroquet/perfs-words branch. Feel free to have a look, 
I'll keep digging into this in the afternoon and the next days.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/calligra-devel/attachments/20210322/000735b7/attachment.sig>


More information about the calligra-devel mailing list