[Okular-devel] Dt. 4th August - status

Jaydeep Solanki jaydp17 at gmail.com
Sun Aug 4 18:01:02 UTC 2013


Hi,

Regarding the TextDocument threaded rendering issue, I implemented a clone
method to return an EpubDocument. QTextDocument::clone() is not a virtual
method, so either we'll have to make it virtual or change the signature of
clone method in EpubDocument.
I made QTextDocument::clone() virtual.

It worked fine, but despite of all the optimizations I can do, it takes
around 400 to 500 ms to clone & 600 - 700 ms to draw, which is huge! I
checked QTextDocument::clone() it is a bit faster (because it has direct
access to the private classes), but won't make any difference.

To make it even faster I tried it without cloning ( kept mutex locking ),
it takes around 200 to 500ms, still bad. Finally, to get an estimate about
what it takes without threading, I tried the non-threaded version, & to my
surprise it broke all records 0 to 100ms depending on the content.

Here I learnt one thing, drawing from a just cloned QTextDocument takes
more time, and I guess that's because of the cachedResources.

I even tried QAtomicPointer, but it breaks at several places.

I tried a lot to make it work faster, because I know you have announced it
in Acadamy that Okular will be getting threaded rendering for
QTextDocument, but may be for now it is better to leave it single threaded.

Note: I used QElapsedTimer to get the estimated time.

Cheers,
Jaydeep
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/okular-devel/attachments/20130804/10880152/attachment.html>


More information about the Okular-devel mailing list