https://bugs.documentfoundation.org/show_bug.cgi?id=114384
Xisco Faulí <xiscofa...@libreoffice.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |bibisected, bisected,
| |regression
Status|UNCONFIRMED |NEW
CC| |qui...@gmail.com,
| |xiscofa...@libreoffice.org
Ever confirmed|0 |1
--- Comment #2 from Xisco Faulí <xiscofa...@libreoffice.org> ---
Regression introduced by:
author Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> 2017-12-02 01:17:15
+0900
committer Tomaž Vajngerl <qui...@gmail.com> 2017-12-04 08:07:24
+0100
commit 5684e53b931eaaac658bc3246ae1c3249e252fdb (patch)
tree 68163cd76212a5367c115a959f0602e41e88f6c2
parent 75702b13961e545809ce1f2b5a45787f42ffcbc6 (diff)
Calculate print page ranges only when needed, cache in print state
When printing or exporting PDF, we need to calculate the page
print (cell) ranges for the current zoom level (document size).
This is quite a expensive thing to do as you need to inspect
the properties of individual cells.
The calculation ideally needs to be done only once per printing
request, but because of the rendering UNO API, this was done
everytime ScPrintFunc was instantiated, which is for every page
twice (once getRenderer is called and then when render is called).
To fix this performance issue, the print page ranges need to be
carried from one call to ScPrintFunc to the other. There already
is a print state (ScPrintState) which is used for exactly that,
but it didn't do this for print page ranges.
With this, PDF export time in a test case decreased from 17 sec to
around 3 sec.
Bisected with: bibisect-linux64-6.1
Adding Cc: to Tomaž Vajngerl
--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Libreoffice-bugs mailing list
Libreoffice-bugs@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs