El Divendres, 29 de juny de 2012, a les 08:38:03, Adam Reichold va escriure: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > - -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > On 29.06.2012 08:23, Adam Reichold wrote: > > On 29.06.2012 01:49, Albert Astals Cid wrote: > >> El Dijous, 28 de juny de 2012, a les 17:53:45, Adam Reichold va > >> escriure: Hello, > >> > >> If I remember correctly, some time ago someone proposed caching > >> the TextOuputDev/TextPage used in Poppler::Page::search to > >> improve performance. Instead, I would propose to add another > >> search method to Poppler::Page which searches the whole page at > >> once and returns a list of all occurrences. > >> > >> Applications using the qt4 frontend and this method could then > >> decide whether to cache this information or not. The > >> implementation of the current search method would not change. > >> > >> The appended patch does this. But the two search methods share > >> some duplicate code. I am not sure what the best way to avoid > >> this is. > >> > >>> First concern, QRectF uses float (instead of double) in some > >>> architectures, like ARM, so you are actually losing precision > >>> (that's why the double variant of search() exists). I'm not > >>> sure we should worry about that, but we probably should. > >>> Imagine you get the list of matches with the search() that > >>> returns the list and then try to use it with the ::search() > >>> that accepts a QRectF (though actually doesn't make much > >>> sense) to get the "next" item. That will cause the > >>> float->double to go wrong and you might always end up in the > >>> same item because of the truncation. > >>> > >>> On the other hand using a list of QRectF is much more > >>> convinient and probably has enough precision for painting, so > >>> maybe we can just document that you should not use the results > >>> of the ::search() that returns a list as input for the other > >>> > >>> ::search() variants? > >>> > >>> Opinions? > > > > Personally, I think that it would be nicer doing it that way. > > Especially since you will still get a deprecation warning if you > > call ::search with a QRectF as an argument. > > > > Regards, Adam. > > Updated the patch to include the warning.
Pushed to master with a refactor so that most of the "setup" code is shared. To be honest I have not tried it works but it should and i'll let you confirm that it really does ;-) Cheers, Albert > > >>> Albert > >> > >> Testing this with some sample files shows large improvements > >> (above 100% as measured by runtime) for searching the whole > >> document and especially for short phrases that occur often. > >> > >> Thanks for any comments and advice. Best regards, Adam. > >> _______________________________________________ poppler mailing > >> list [email protected] > >> http://lists.freedesktop.org/mailman/listinfo/poppler > > > > _______________________________________________ poppler mailing > > list [email protected] > > http://lists.freedesktop.org/mailman/listinfo/poppler > > - -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2.0.19 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ > > iQEcBAEBAgAGBQJP7U0bAAoJEPSSjE3STU34UtIIALWeAsaSQ8KsDhaiJrpV13xB > O7Lj682VH3abzv7RkrMR07NBMu/cHOFSAfaS5LxLxDD/Wervoqfm1UZ2LwsCSwO3 > TodC0TU5pf5Im1xoyz92rNfkBqPRVvlFLw10BSVVWBaIvhLKOQgHj7s1U6LdqoOa > PnT65/Gu1yJZO3yvSJN22t5ST5gtSYikkpjqaQ3Ts+D2XJQXJuRllZGaniR+fjel > FS+V5Gj1Zi3Fjg8aLESGdTn0KosV3R8aUaacGKXhO6klxwZMI1vv+nyGsFdNTMGL > u6c5zjD0QtKGEYx/XNhKQAf1BqnpH9qbwnSHm9xgFzVV/TC7z3DbPYT1ahttGpY= > =VHDH > - -----END PGP SIGNATURE----- > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2.0.19 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ > > iQEcBAEBAgAGBQJP7U1LAAoJEPSSjE3STU34YNAH/iA6FZJ6Y25h7Y08Zjxbcb3t > ca16sbW8LFJ4A/ZNYP9D49wHIfhxADd2+HZ4g+jkKtNRgxv1PoqJKXH6BwQKH5lx > RAccyeykkZVVZlXBY0vRJ91N/xwxjgmyIodSqx0xqYpbnwm7AL2hDhF1pKfx6dr2 > pHCqzJlkJyz4PVMHsUG8qrxz1Bot2/Vqr/CNdKpveqTLegBzFVCRE2MKhzkVC3Qm > x8bm8mNRKVoFz5aaq8ZJhaWzXN9INdKLhf1y7ZO0lapr+IMp9v3+Vbxmkz0Iznr6 > QWAJ2stQ256EEbpJZoDjDnXjw8FISTIUk/f7Fh0P4E/bmzK/4sPdatUVlGcOXAQ= > =Idbg > -----END PGP SIGNATURE----- _______________________________________________ poppler mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/poppler
