[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